falcosecurity / plugins

Falco plugins registry
Apache License 2.0
82 stars 75 forks source link

Document the required glibc version for wide compatibilty #70

Open leogr opened 2 years ago

leogr commented 2 years ago

What to document

Plugins authors must build their plugins using the same glibs version we use in Falco. We have to document that.

/cc @jasondellaluce

alban commented 2 years ago

Thanks! FYI, I use the following Dockerfile to ensure that I have the same glibc as the one in Falco:

# Use the same base image as falco to ensure compatibility with glibc version
FROM golang:buster as builder

# Cache go modules so they won't be downloaded at each build
COPY go.mod go.sum /src/
RUN cd /src && go mod download

COPY ./ /src
RUN cd /src && make -C falco-plugin

# Use the following command to get the built files:
# DOCKER_BUILDKIT=1 docker build -f falco-plugin/Dockerfile --output=falco-plugin/ .
FROM scratch AS deploy-source
COPY --from=builder /src/falco-plugin/*.so /
leogr commented 2 years ago

Btw, to build and publish our plugins, we currently use this :point_down: https://github.com/falcosecurity/test-infra/blob/master/images/build-plugins/Dockerfile#L6

poiana commented 2 years ago

Issues go stale after 90d of inactivity.

Mark the issue as fresh with /remove-lifecycle stale.

Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Provide feedback via https://github.com/falcosecurity/community.

/lifecycle stale

jasondellaluce commented 2 years ago

/remove-lifecycle stale

poiana commented 2 years ago

Issues go stale after 90d of inactivity.

Mark the issue as fresh with /remove-lifecycle stale.

Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Provide feedback via https://github.com/falcosecurity/community.

/lifecycle stale

leogr commented 2 years ago

/remove-lifecycle stale

@falcosecurity/falco-maintainers Shall we do the same for Falco?

poiana commented 1 year ago

Issues go stale after 90d of inactivity.

Mark the issue as fresh with /remove-lifecycle stale.

Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Provide feedback via https://github.com/falcosecurity/community.

/lifecycle stale

leogr commented 1 year ago

/remove-lifecycle stal

leogr commented 1 year ago

cc @vjjmiras

poiana commented 1 year ago

Stale issues rot after 30d of inactivity.

Mark the issue as fresh with /remove-lifecycle rotten.

Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Provide feedback via https://github.com/falcosecurity/community.

/lifecycle rotten

vjjmiras commented 1 year ago

/remove-lifecycle rotten

vjjmiras commented 1 year ago

cc @vjjmiras

I wasn't aware of this issue. I'll take care of it.

poiana commented 1 year ago

Issues go stale after 90d of inactivity.

Mark the issue as fresh with /remove-lifecycle stale.

Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Provide feedback via https://github.com/falcosecurity/community.

/lifecycle stale

FedeDP commented 1 year ago

/remove-lifecycle stale

leogr commented 1 year ago

/help

cc @therealbobo @Andreagit97

poiana commented 1 year ago

@leogr: This request has been marked as needing help from a contributor.

Please ensure the request meets the requirements listed here.

If this request no longer meets these requirements, the label can be removed by commenting with the /remove-help command.

In response to [this](https://github.com/falcosecurity/plugins/issues/70): >/help > >cc @therealbobo @Andreagit97 Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
poiana commented 1 year ago

Issues go stale after 90d of inactivity.

Mark the issue as fresh with /remove-lifecycle stale.

Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Provide feedback via https://github.com/falcosecurity/community.

/lifecycle stale

poiana commented 1 year ago

Stale issues rot after 30d of inactivity.

Mark the issue as fresh with /remove-lifecycle rotten.

Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Provide feedback via https://github.com/falcosecurity/community.

/lifecycle rotten

Andreagit97 commented 1 year ago

/remove-lifecycle rotten

poiana commented 9 months ago

Issues go stale after 90d of inactivity.

Mark the issue as fresh with /remove-lifecycle stale.

Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Provide feedback via https://github.com/falcosecurity/community.

/lifecycle stale

Andreagit97 commented 9 months ago

/remove-lifecycle stale

leogr commented 9 months ago

/assign leogr /assign LucaGuerra

poiana commented 6 months ago

Issues go stale after 90d of inactivity.

Mark the issue as fresh with /remove-lifecycle stale.

Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Provide feedback via https://github.com/falcosecurity/community.

/lifecycle stale

leogr commented 6 months ago

/remove-lifecycle stale

leogr commented 3 months ago

For the record, recently we upgraded golang in our CI, and broke the glibc compatibility.

@LucaGuerra and I are investigating.

leogr commented 3 months ago

For the record, recently we upgraded golang in our CI, and broke the glibc compatibility.

@LucaGuerra and I are investigating.

Fix: https://github.com/falcosecurity/plugins/pull/497/files

leogr commented 3 months ago

Update (as discussed with @LucaGuerra):

At the time of writing, Falco requires GLIBC 2.17 or newer (this is, however, not officially documented yet)

For plugins shipped with this repository, based on the current CI builder (using the golang:1.22-bullseye image :point_down: ) the minimum guaranteed compatibility is with GLIBC 2.31. However, most plugins need a reduced set of GLIBC symbols and are usually compatible with older versions of GLIBC.

https://github.com/falcosecurity/plugins/blob/512f1ff3611cfb60b30712cd1b542eec97239764/.github/workflows/reusable_build_packages.yaml#L21-L23

❯ docker run --rm -it golang:1.22-bullseye sh
# /lib/x86_64-linux-gnu/libc.so.6
GNU C Library (Debian GLIBC 2.31-13+deb11u10) stable release version 2.31.
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 10.2.1 20210110.
libc ABIs: UNIQUE IFUNC ABSOLUTE
For bug reporting instructions, please see:
<http://www.debian.org/Bugs/>.
poiana commented 3 weeks ago

Issues go stale after 90d of inactivity.

Mark the issue as fresh with /remove-lifecycle stale.

Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Provide feedback via https://github.com/falcosecurity/community.

/lifecycle stale

leogr commented 3 weeks ago

/remove-lifecycle stale