-
Notifications
You must be signed in to change notification settings - Fork 729
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
Enable FIPS compliancy in Makefile #6071
Conversation
.ci/pipelines/build.Jenkinsfile
Outdated
@@ -38,6 +38,7 @@ pipeline { | |||
steps { | |||
sh '.ci/setenvconfig build' | |||
sh 'make -C .ci license.key TARGET=ci-release ci' | |||
sh 'make -C .ci license.key TARGET=build-operator-multiarch-image ci ENABLE_FIPS=true' |
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.
Would it make sense to do a whole other step here, with a different target in setenvconfig
? It seems overkill when looking at this, but setenvconfig
is used to set all env variables in all other steps, but since the build
case block is split between nightly
and release
already, it seemed adding a 3rd would be ugly.
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.
I'm good with this approach to call again the build in FIPS mode using an environment variable. I don't think we should rely on setenvconfig
for this. Also I wonder if we should not make this builds in parallel with the old one.
stage('build') {
failFast true
parallel {
stage("build operator image") {
steps {
sh '.ci/setenvconfig build'
sh 'make -C .ci license.key TARGET=ci-release ci'
}
}
stage("build operator image in FIPS mode") {
steps {
sh '.ci/setenvconfig build'
sh 'make -C .ci license.key TARGET=ci-release ci ENABLE_FIPS=true'
}
}
}
}
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.
I think the parallel build makes perfect sense. I've updated this PR with this new parallel build phase.
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.
LGTM
This potential change will enable FIPS compliancy for the operator build by making the changes:
ENABLE_FIPS
environment variable which will add a build flaggoexperiment.boringcrypto
to the existingGO_TAGS
variable which we use duringgo build
anddocker build
operations.-fips
to all container build names that we push to existing registries.ENABLE_FIPS=true
environment variable set.This change does not1. Add any Jenkins/Buildkite changes that would allow FIPS these changes to be triggered in our current/future CI system.