-
Notifications
You must be signed in to change notification settings - Fork 15
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
CASM-4908 Runtime container image signature validation #3703
base: release/1.6
Are you sure you want to change the base?
Conversation
Jenkinsfile.github
Outdated
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.
Please ignore all changes to Jenkinsfile.github
, they are needed to produce temporary testing artifact and will be rolled back before merge.
hack/embedded-repo.sh
Outdated
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.
Please ignore all changes to hack/embedded-repo.sh
, they are needed to produce temporary testing artifact and will be rolled back before merge.
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.
Changes to vendor/github.com/Cray-HPE/shasta-cfg/customizations.yaml
are made in csm repo temporarily. They will be moved to https://github.com/Cray-HPE/shasta-cfg/blob/release/1.6/customizations.yaml and vendor reference in csm updated before merge.
type: repo | ||
location: https://artifactory.algol60.net/artifactory/csm-helm-charts/ | ||
charts: | ||
- name: cray-drydock |
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.
Drydock must be deployed first, because it creates namespaces for other deployments. We need to separate sonar deployment from cray-drydock, otherwise it is deployed before kyverno and bypasses signature validation.
ecf9aa0
to
813eaab
Compare
* Use NCN images which support HTTPS on PIT Nexus and "registry.local/*" > ["pit.nmn/*, "registry.local/*"] mirroring rule * Deploy Kyverno prepend-registry policy * Manually prepend registry.local/ to chart images, missed by prepend-registry Kyverno policy * Move Kyverno charts to separate manifest, deploy before any other chart * Temporarily override record for `registry.local` in CoreDNS configmap during fresh install, restore right after. * Stop supporting images such as "alpine:latest" - we need to know exactly how to mirror them, as docker.io/alpine or docker.io/library/alpine.
813eaab
to
d08ada1
Compare
Summary and Scope
During initial testing of image signature validation, it was discovered that Kyverno tries to contact https://artifactory.alogl60.net/ for image verification, and this blocks deployments in air-gapped environments, even in Audit mode (CASMTRIAGE-7283). We need to set Kyverno to contact local registry instead, for both images and their respective signatures. This will allow us to turn on signature validation in runtime (during initial deployments, upgrades and in background on running clusters).
Proposed solution involves these key steps:
prepend-registry
, which will automatically addregistry.local/
to the beginning of image spec for any new pod (if it doesn't already start withregistry.local/
).registry.local/
are looked inhttps://pit.nmn
first and inhttps://registry.local/
second. This rule is needed to support a switch from PIT Nexus to Cloud Nexus during initial install. It is similar to already existing rule for image names starting fromartifactory.algol60.net
, which now becomes obsolete.This change consists of the following PR's:
Issues and Related PRs
Testing
Tested on:
Test description:
validationFailureAction
set toAudit
andEnforce
.Risks and Mitigations
None known ATM.
Pull Request Checklist