Closed krisnova closed 4 years ago
Success:
Clear documentation, error messages, and always providing the user a next-step when building form the binary packages.
Right now even as a Falco maintainer I was a bit confused with what was next.
/kind user-exerpience
The S3 link has been fixed and the fix will be released in 0.23.0
The fix is already present on development releases (the falco-driver-loader
shipped into falcosecurity/falco:master
already have this fix, for example).
Totally agree that falco-driver-loader
should give more clear messages and steps to the users.
Also, it should check in advance the presence of dkms
.
I do not think we should ever attempt to download pre-compiled modules without validating them somehow.
What do you mean with validating in this specific case? Could you please make an example of validation?
Do you mean download it only if we are sure a prebuilt for the specific kernel exists?
If this is what you mean we can implement it easily and cleanly with a HEAD
request.
We should validate the md5 or sha just like we do with all of our downloads. Just to ensure it's what we expect it to be.
Check out this tarball I just made that shows what I am thinking for user experience for downloading the tar.gz
's from bintray
Basically - it should be very clear and obvious that the user needs to make a choice to either build something or download it or try to download it from the internet.
I think we should remove any assumptions or "magic".
Do you want to TRY to download a kernel module from the internet or build it? Pick one.
I would suggest downloading the ZFS 8.0.3 release and check out the user experience here with loading the module and configuring systemd.
https://github.com/openzfs/zfs/releases/tag/zfs-0.8.3
The architecture of ZFS is almost identical to that of Falco - and their tarballs are very nice :nerd_face:
If someone can show me where I could make changes to the build to make a PR I will open one up.
I believe there are distinct issues here. I try to summarize my thoughts:
falco-driver-loader
falco/driverloader
image that can be used as initcontainer) and not really for end-usersAnyway, I believe we can do a lot of improvements here, and I would like to help with this, let me know!
This is coming along nicely with the recent changes.
Thanks for your help @leogr
Is binary
still the best name for this?
As per this proposal, I think binary
is the best name because it is NOT intended to build Falco from source.
Also note that:
0.23.0
, falco-driver-loader
was modularized and you can type falco-driver-loader --help
now.That being said, we still miss INSTALL
and Makefile
files inside the package. So we should keep this issue open until it's fixed.
Also, we want to add source packages too, as per this proposal, but it's a different issue IMHO.
Related to #1265 if we are making changes to the packages
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Issues labeled "cncf", "roadmap" and "help wanted" will not be automatically closed. Please refer to a maintainer to get such label added if you think this should be kept open.
Describe the bug
After downloading the
tar.gz
I was unable to successfully load a Falco driver and start the Falco daemon.How to reproduce it
Download the latest binary package for
0.22.1
.See #1179 for detail on how I discovered this URL
Expected behaviour
So as an arch Linux user I come to expect certain things from tarballs for packages being downloaded from a projects archive.
Documentation
Usually, there is a
README
or anINSTALL
file I can read to explain the directory structure. If there isn't documentation there is typically a./configure
or aninit.sh
style script that gives users an intuitive way to start the process.Kernel Module
Going to
usr/bin
yields two filesfalco
andfalco-probe-loader
.This failed for me.
and I strongly disagree with what that script was trying to do.
I do not think we should ever attempt to download pre-compiled modules without validating them somehow. Furthermore I do not think we should be trying to download the modules from a Sysdig managed S3 account. This needs be fixed immediately.
If you look at
openzfs
you can see how they manage downloading a system that requires a userspace component and a kernel module. I would very much like it if Falco followed this paradigm. See latest release and try to build from source for an example. We can keep the pre-built modules so long that we are validating them, but if the script fails.we need to give users a clear next-step. Which is:
The source to build the kernel module is in
usr/src/falco-*/
and can be compiled. Then a user can runmake install
and we usedepmod
to install thefalco_probe.ko
file and it will persist on reboot.Userspace program
The Falco binary has a linked dependency on having
libyaml
installed.Also on
lua
We should be cleaning this up and have our Makefiles check for these types of concerns and give clear error messages for next steps.
Screenshots
Environment
Additional context