-
Notifications
You must be signed in to change notification settings - Fork 273
fips: add workflow for building and publishing FIPS-compliant control plane #4869
fips: add workflow for building and publishing FIPS-compliant control plane #4869
Conversation
649a27d to
e5ad400
Compare
|
This version of OSM needs a custom version of Go (the Microsoft fork), so our CI/CD pipeline will need to be reworked to deploy this |
Codecov Report
@@ Coverage Diff @@
## main #4869 +/- ##
==========================================
- Coverage 68.40% 68.38% -0.03%
==========================================
Files 218 218
Lines 15843 15844 +1
==========================================
- Hits 10838 10835 -3
- Misses 4950 4954 +4
Partials 55 55
Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
68fcbb9 to
197b1d8
Compare
|
@nshankar13 I'd love your POV to make sure that nothing needs to change for the nightly or openshift builds @nojnhuh @shashankram I would really love your input around the changes to the CI and release processes. |
docs/release_guide.md
Outdated
| - [Release Guide](#release-guide) | ||
| - [Release Candidates](#release-candidates) | ||
| - [Create a release branch](#create-a-release-branch) | ||
| - [Create release branches](#create-release-branches) |
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.
If we can parameterize the builds enough to build FIPS and non-FIPS from the same source and utilize that in CI and use something like a strategy.matrix to do both, I can see where we shouldn't need to change the release guide at all.
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.
+1
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.
We would still need to publish different tags/images, but in general I agree if we can parameterize this to that degree.
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.
Looks like this file needs another pass.
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.
Ah yeah; I don't think there needs to be any changes in here after all right? Except maybe a note that ARM64 images will only be available via MCR
|
@keithmattix I don't think we would need to change anything for the OpenShift job or the nightly-noinstall job, unless we want to run the FIPS tests nightly as well. In that case we can open a follow up PR to edit the nightly job and run the fips tests there. |
docs/release_guide.md
Outdated
| - [Release Guide](#release-guide) | ||
| - [Release Candidates](#release-candidates) | ||
| - [Create a release branch](#create-a-release-branch) | ||
| - [Create release branches](#create-release-branches) |
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.
+1
|
I played with parameterizing things and am fairly confident it will work. I have the changes limited to just osm-controller on a branch in my fork: main...nojnhuh:osm:fips-jon
|
|
@nojnhuh Thanks for that PoC; I haven't had to parameterize Dockerfiles like that before, so it was really helpful! The only blockers as far as CI workflows is this one. I don't think GitHub allows for conditional images. We could potentially create FIPS specific jobs within a workflow, and that may actually be the right direction to go if we can keep the release guide unchanged. What are your thoughts? |
|
I wonder if a reasonable first step for CI would be to setup builds for FIPS images for releases and run e2e tests nightly, but skip all of the other stuff we do normally. I'd like to think the FIPS build of Go is close enough to the normal one that the risk of any difference breaking us is low. If we find a need to run more things more frequently, we can address the problem of how to configure that in CI then.
I think the way we'd express that is by defining the image as part of the matrix. |
|
@nojnhuh that's a good point; I'm in favor of that direction. I'll get working on that |
|
CodeQL is complaining about InsecureTLSVerify, but the meat of the PR should be fixed. Let me know your thoughts @nojnhuh |
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
…flows Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
8132a4c to
9587607
Compare
Signed-off-by: Keith Mattix II <[email protected]>
Signed-off-by: Keith Mattix II <[email protected]>
Description:
Creates a workflow for building and publishing FIPS-compliant versions of the OSM control plane. The modifications to the release process are in docs/release_guide.md.
Fixes #4888
Testing done:
Affected area:
Please answer the following questions with yes/no.
Does this change contain code from or inspired by another project? no
Is this a breaking change? no
Has documentation corresponding to this change been updated in the osm-docs repo (if applicable)? Not yet