Repository navigation
fix(airgap): mode-agnostic disconnected fixes and sync-wave gating #165
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
base: main
Are you sure you want to change the base?
Changes from all commits
381a2ee
602abe0
a93cbec
6fbf1e5
20febe5
59ed821
4c4a229
bec203a
5cb65e3
f4aacd5
33650b8
c82fc7f
48831de
4f2305e
70e96c6
6e3d851
be2d033
67e7516
344076b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,6 @@ | ||
| # Org-prefixed mirror targets: MIRROR_REGISTRY must include the org path | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Contradictory guidance on the mirror format. This new comment says |
||
| # (e.g. quay.example:443/mirror) — the same value scripts/airgap-post-install.sh | ||
| # requires — or every tag-based operand pull 404s. | ||
| apiVersion: config.openshift.io/v1 | ||
| kind: ImageTagMirrorSet | ||
| metadata: | ||
|
|
@@ -14,3 +17,7 @@ spec: | |
| - MIRROR_REGISTRY_HOST:8443/hashicorp | ||
| # NOTE: quay.io/community-operator-pipeline-prod removed — oc-mirror 4.22 | ||
| # generates ITMS for it in itms-oc-mirror.yaml automatically. | ||
| # Kyverno chart images: the chart pulls from reg.kyverno.io, not ghcr.io. | ||
| - source: reg.kyverno.io | ||
| mirrors: | ||
| - MIRROR_REGISTRY_HOST:8443 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| {{/* | ||
| Render a workload container image for the CoCo test workloads. | ||
|
|
||
| CoCo guest VMs pull their images directly — there is no IDMS/ITMS inside the | ||
| CVM, so a registry.redhat.io/ubi9/... reference cannot be redirected at pull | ||
| time. In airgap mode (global.airgap: true) the image is rewritten against | ||
| global.mirrorRegistry using the oc-mirror source-path convention: the registry | ||
| hostname is stripped and the mirror root prefixed, e.g. | ||
|
|
||
| registry.redhat.io/ubi9/httpd-24@sha256:... | ||
| → quay.example:443/mirror/ubi9/httpd-24@sha256:... | ||
|
|
||
| The mirror root must include the org path for Quay targets (it is the same | ||
| value oc-mirror was pointed at). Rendering fails fast when airgap mode is on | ||
| and the mirror is unset or still a placeholder — a missing value here would | ||
| otherwise surface as ImagePullBackOff inside the CVM minutes later. | ||
| */}} | ||
| {{- define "kbs-access-curl.image" -}} | ||
| {{- $image := .image -}} | ||
| {{- if .root.Values.global.airgap -}} | ||
| {{- $mirror := .root.Values.global.mirrorRegistry | default "" -}} | ||
| {{- if or (not $mirror) (contains "MIRROR_REGISTRY_HOST" $mirror) -}} | ||
| {{- fail "global.mirrorRegistry must be set to the mirror root (e.g. quay.example:443/mirror) when global.airgap is true" -}} | ||
| {{- end -}} | ||
| {{- $path := regexReplaceAll "^[a-zA-Z0-9.-]+(:[0-9]+)?/(.*)$" $image "${2}" -}} | ||
| {{- printf "%s/%s" $mirror $path -}} | ||
| {{- else -}} | ||
| {{- $image -}} | ||
| {{- end -}} | ||
| {{- end -}} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| {{/* | ||
| Render a workload container image for the CoCo test workloads. | ||
|
|
||
| CoCo guest VMs pull their images directly — there is no IDMS/ITMS inside the | ||
| CVM, so a registry.redhat.io/ubi9/... reference cannot be redirected at pull | ||
| time. In airgap mode (global.airgap: true) the image is rewritten against | ||
| global.mirrorRegistry using the oc-mirror source-path convention: the registry | ||
| hostname is stripped and the mirror root prefixed, e.g. | ||
|
|
||
| registry.redhat.io/ubi9/httpd-24@sha256:... | ||
| → quay.example:443/mirror/ubi9/httpd-24@sha256:... | ||
|
|
||
| The mirror root must include the org path for Quay targets (it is the same | ||
| value oc-mirror was pointed at). Rendering fails fast when airgap mode is on | ||
| and the mirror is unset or still a placeholder — a missing value here would | ||
| otherwise surface as ImagePullBackOff inside the CVM minutes later. | ||
| */}} | ||
| {{- define "kbs-access-sealed.image" -}} | ||
| {{- $image := .image -}} | ||
| {{- if .root.Values.global.airgap -}} | ||
| {{- $mirror := .root.Values.global.mirrorRegistry | default "" -}} | ||
| {{- if or (not $mirror) (contains "MIRROR_REGISTRY_HOST" $mirror) -}} | ||
| {{- fail "global.mirrorRegistry must be set to the mirror root (e.g. quay.example:443/mirror) when global.airgap is true" -}} | ||
| {{- end -}} | ||
| {{- $path := regexReplaceAll "^[a-zA-Z0-9.-]+(:[0-9]+)?/(.*)$" $image "${2}" -}} | ||
| {{- printf "%s/%s" $mirror $path -}} | ||
| {{- else -}} | ||
| {{- $image -}} | ||
| {{- end -}} | ||
| {{- end -}} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,22 +3,37 @@ | |
| # The connected default (global.airgap: false) loads the inert | ||
| # values-baremetal-connected.yaml instead. | ||
| # | ||
| # SCOPE: this overlay applies when ArgoCD renders the clustergroup chart — | ||
| # i.e. to the clusterGroup OLM subscriptions (ESO, CNV, LVMS, trustee, | ||
| # cert-manager, intel-*, ACM, NFD) and the chart values below. | ||
| # SCOPE — this overlay reaches the ROOT clustergroup render: the | ||
| # patterns-operator resolves clusterGroup.sharedValueFiles itself when it | ||
| # builds the root Application (internal/controller/argo.go, | ||
| # commonApplicationSourceHelm → getSharedValueFiles), in addition to the | ||
| # chart forwarding them to child Applications. So the clusterGroup | ||
| # subscriptions and the app overrides below are all in scope. | ||
| # | ||
| # It does NOT reach the bootstrap operators: the openshift-gitops-operator | ||
| # and patterns-operator subscriptions are created by the patterns-operator | ||
| # BEFORE ArgoCD renders with this overlay. For airgap, their sources must | ||
| # be set directly in values-global.yaml: | ||
| # main.gitops.operatorSource: cs-redhat-operator-index-v4-22 | ||
| # main.patternsOperator.source: cs-community-operator-index-v4-22 | ||
| # | ||
| # LIST WARNING: Helm replaces lists when merging — an `overrides:` list here | ||
| # would drop any entry added to the same app in values-baremetal.yaml. This | ||
| # overlay therefore sets ONLY scalars (map values). Mode-dependent list | ||
| # entries (e.g. acm.mce_operator.source) are tpl-conditionals in the base | ||
| # file instead. | ||
| global: | ||
| # Mirrored catalog for the Argo-rendered OLM subscriptions (oc-mirror output) | ||
| # Mirrored catalog for the Argo-rendered OLM subscriptions (oc-mirror output). | ||
| # The names track the operator index tags in airgap/imageset-config-<minor>.yaml | ||
| # (e.g. redhat/redhat-operator-index:v4.22 → cs-redhat-operator-index-v4-22 for | ||
| # global.clusterVersion 4.22); scripts/airgap-post-install.sh step 3e fails fast | ||
| # if any catalog referenced here is missing from the cluster. | ||
| catalogSource: cs-redhat-operator-index-v4-22 | ||
| catalogSourceNamespace: openshift-marketplace | ||
| # Trustee: flip platform collateral to the offline file backend. | ||
| # Collect with `make collect-dcap-collateral` before deploy. | ||
| kbs: | ||
| tdx: | ||
| collateralService: "file:///opt/confidential-containers/attestation-service/tdx/platform_collaterals.json" | ||
| # Connected default: the certified-operators catalog, disabled in airgap. | ||
| clusterGroup: | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Possible bug: the |
||
| subscriptions: | ||
| intel-device-plugins: | ||
| source: cs-certified-operator-index-v4-22 | ||
| intel-tdx-dcap: | ||
| source: cs-certified-operator-index-v4-22 | ||
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.
Bug: the imageset pins vault
2.1.2-ubiand drops1.21.4-ubi, but the chart is a range (chartVersion: "~0.1.10"). If 0.1.10 is the chart version resolved (or mirrored), it deploysvault:1.21.4-ubi, which is no longer mirrored, and vault gets ImagePullBackOff. A future 0.1.12 that bumps the image breaks the same way. PinchartVersion: 0.1.11to match, or keep both tags in the imageset.