feat: Add FIPS 140-3 support using Microsoft Go and Azure Linux#237
feat: Add FIPS 140-3 support using Microsoft Go and Azure Linux#237kaovilai wants to merge 1 commit intoopenshift:oadp-1.5from
Conversation
|
Important Review skippedAuto reviews are limited based on label configuration. 🚫 Excluded labels (none allowed) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Skipping CI for Draft Pull Request. |
|
@kaovilai: GitHub didn't allow me to request PR reviews from the following users: kaovilai. Note that only openshift members and repo collaborators can review this PR, and authors cannot review their own PRs. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
fe0adc3 to
309b82e
Compare
309b82e to
14f7432
Compare
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: kaovilai The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
94f247f to
02c0b1a
Compare
Switch to Microsoft Go and Azure Linux for FIPS 140-3 compliance in OpenShift OADP 1.5 HyperShift deployments. Changes: - Replace builder with mcr.microsoft.com/oss/go/microsoft/golang:1.25-azurelinux3.0 - Replace runtime with mcr.microsoft.com/azurelinux/distroless/base:3.0 - Add GOFIPS140=latest and CGO_ENABLED=1 for Microsoft's FIPS implementation - Add documentation explaining Azure Linux FIPS configuration - Switch from strictfipsruntime approach to Microsoft's FIPS module Why Microsoft Go + Azure Linux distroless: - Microsoft's Go fork provides integrated FIPS support for Azure environments - Azure Linux 3.0 distroless base is FIPS 140-3 compliant with SCOSSL/SymCrypt - Minimal attack surface with distroless - Consistency with Velero and Azure plugin implementations - Follows ARO-HCP reference architecture Plugin processes inherit GODEBUG=fips140=on from the parent Velero process, so no runtime environment variable configuration needed. Reference implementation: https://github.com/Azure/ARO-HCP/blob/main/frontend/Dockerfile Companion to: openshift/velero#492 Companion to: openshift/velero-plugin-for-microsoft-azure#125 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering> Signed-off-by: Tiger Kaovilai <passawit.kaovilai@gmail.com>
02c0b1a to
e46063a
Compare
Summary
Add FIPS 140-3 support to hypershift-oadp-plugin using Microsoft's Go fork and Azure Linux base images for OpenShift OADP 1.5, consistent with Velero and Azure plugin implementations.
Changes
mcr.microsoft.com/oss/go/microsoft/golang:1.25-azurelinux3.0mcr.microsoft.com/azurelinux/distroless/base:3.0CGO_ENABLED=1 GOFIPS140=latestat build timeWhy Microsoft Go + Azure Linux?
FIPS Implementation Details
Uses Microsoft's Go fork with platform-dependent crypto:
GODEBUG=fips140=onfrom parent VeleroWhy No Runtime GODEBUG?
Plugin processes are spawned by Velero and automatically inherit the parent's
GODEBUG=fips140=onenvironment variable. No additional configuration needed in the plugin container.Companion PRs
Testing
Build and verify:
Multi-arch build and push:
podman build -f Dockerfile.oadp . --platform linux/amd64,linux/arm64 --manifest quay.io/oadp-aro/hypershift-oadp-plugin:oadp-1.5-latest podman manifest push quay.io/oadp-aro/hypershift-oadp-plugin:oadp-1.5-latestNote
Responses generated with Claude
/cc @kaovilai