diff --git a/packages/system/fluxcd/Makefile b/packages/system/fluxcd/Makefile index 9aa32fe9b..c398a1b7e 100644 --- a/packages/system/fluxcd/Makefile +++ b/packages/system/fluxcd/Makefile @@ -8,4 +8,5 @@ apply-locally: update: rm -rf charts - helm pull oci://ghcr.io/controlplaneio-fluxcd/charts/flux-instance --untar --untardir charts + helm pull oci://ghcr.io/controlplaneio-fluxcd/charts/flux-instance --version 0.50.0 --untar --untardir charts + patch --no-backup-if-mismatch -p1 < patches/guard-distribution-artifact.diff diff --git a/packages/system/fluxcd/charts/flux-instance/templates/instance.yaml b/packages/system/fluxcd/charts/flux-instance/templates/instance.yaml index f1f58309e..5217c24d9 100644 --- a/packages/system/fluxcd/charts/flux-instance/templates/instance.yaml +++ b/packages/system/fluxcd/charts/flux-instance/templates/instance.yaml @@ -16,7 +16,9 @@ spec: distribution: version: {{ .Values.instance.distribution.version | quote }} registry: {{ .Values.instance.distribution.registry }} + {{- if .Values.instance.distribution.artifact }} artifact: {{ .Values.instance.distribution.artifact }} + {{- end }} {{- if .Values.instance.distribution.artifactPullSecret }} artifactPullSecret: {{ .Values.instance.distribution.artifactPullSecret }} {{- end }} diff --git a/packages/system/fluxcd/patches/guard-distribution-artifact.diff b/packages/system/fluxcd/patches/guard-distribution-artifact.diff new file mode 100644 index 000000000..57348afe5 --- /dev/null +++ b/packages/system/fluxcd/patches/guard-distribution-artifact.diff @@ -0,0 +1,22 @@ +# Upstream bug: flux-instance's instance.yaml renders spec.distribution.artifact +# unconditionally, unlike the sibling optional fields (artifactPullSecret, +# imagePullSecret, variant). The umbrella's empty default then renders as +# `artifact: null`, which the FluxInstance CRD rejects (type: string, +# pattern ^oci://.*$, and the field is optional). Guard it like its siblings. +# +# Chart source: https://github.com/controlplaneio-fluxcd/charts (flux-instance) +# Not yet reported upstream; drop this hunk once upstream guards the field. +diff --git a/charts/flux-instance/templates/instance.yaml b/charts/flux-instance/templates/instance.yaml +index f1f58309e..5217c24d9 100644 +--- a/charts/flux-instance/templates/instance.yaml ++++ b/charts/flux-instance/templates/instance.yaml +@@ -16,7 +16,9 @@ spec: + distribution: + version: {{ .Values.instance.distribution.version | quote }} + registry: {{ .Values.instance.distribution.registry }} ++ {{- if .Values.instance.distribution.artifact }} + artifact: {{ .Values.instance.distribution.artifact }} ++ {{- end }} + {{- if .Values.instance.distribution.artifactPullSecret }} + artifactPullSecret: {{ .Values.instance.distribution.artifactPullSecret }} + {{- end }}