-
Notifications
You must be signed in to change notification settings - Fork 149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FIPS Build #6565
base: main
Are you sure you want to change the base?
FIPS Build #6565
Conversation
This pull request does not have a backport label. Could you fix it @michel-laterman? 🙏
|
|
@@ -35,6 +35,8 @@ const ( | |||
beatsFPMImage = "docker.elastic.co/beats-dev/fpm" | |||
// BeatsCrossBuildImage is the image used for crossbuilding Beats. | |||
BeatsCrossBuildImage = "docker.elastic.co/beats-dev/golang-crossbuild" | |||
//FIPSBuildImage is the image used for building FIPS compliant artifacts | |||
FIPSBuildImage = "mcr.microsoft.com/oss/go/microsoft/golang" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently using this image directly fails; i think it's because mage
is not installed.
The error when running FIPS=true PACKAGES="tar.gz" PLATFORMS=linux/arm64 mage package
is:
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "--build-cmd": executable file not found in $PATH: unknown.
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "--build-cmd": executable file not found in $PATH: unknown.
package ran for 14.597428834s
Error: multiple failures: running "docker run --env EXEC_UID=501 --env EXEC_GID=20 -v /Users/mlaterman/go/pkg/mod:/go/pkg/mod:ro --rm --env GOFLAGS=-mod=readonly --env MAGEFILE_VERBOSE= --env MAGEFILE_TIMEOUT= --env SNAPSHOT=false --env DEV=false --env EXTERNAL=false --env FIPS=true -v /Users/mlaterman/git/elastic-agent:/go/src/github.com/elastic/elastic-agent -w /go/src/github.com/elastic/elastic-agent mcr.microsoft.com/oss/go/microsoft/golang:1.22.10-1-fips-bookworm --build-cmd build/mage-linux-arm64 buildGoDaemon --platforms linux/arm64" failed with exit code 127
multiple failures: running "docker run --env EXEC_UID=501 --env EXEC_GID=20 -v /Users/mlaterman/go/pkg/mod:/go/pkg/mod:ro --rm --env GOFLAGS=-mod=readonly --env MAGEFILE_VERBOSE= --env MAGEFILE_TIMEOUT= --env SNAPSHOT=false --env DEV=false --env EXTERNAL=false --env FIPS=true -v /Users/mlaterman/git/elastic-agent:/go/src/github.com/elastic/elastic-agent -w /go/src/github.com/elastic/elastic-agent mcr.microsoft.com/oss/go/microsoft/golang:1.22.10-1-fips-bookworm --build-cmd build/mage-linux-arm64 golangCrossBuild --platforms linux/arm64" failed with exit code 127
a9b4565
to
3f18bfc
Compare
3f18bfc
to
9217e60
Compare
Quality Gate passedIssues Measures |
What does this PR do?
Adds
FIPS
env var to magefile to enable FIPS compliant builds using the microsoft/go toolchain.This PR will not be sufficient to ensure that every artifact made with these changes are compliant, we still need to verify our crypto use.
Why is it important?
FIPS artifacts must be built with compliant toolchains.
Checklist
I have made corresponding change to the default configuration filesI have added tests that prove my fix is effective or that my feature worksI have added an entry in./changelog/fragments
using the changelog toolI have added an integration test or an E2E testDisruptive User Impact
None
How to test this PR locally
Assuming microsoft go is available, run
FIPS=true mage build:binary