From 07a1c391b2d1f03e7f71b8c024281eb033bbeae1 Mon Sep 17 00:00:00 2001 From: kfox1111 Date: Mon, 19 Feb 2024 11:18:31 -0800 Subject: [PATCH] Add global override for kubectl tag (#251) --- charts/spire/README.md | 1 + charts/spire/templates/_spire-lib.tpl | 16 ++++++++++------ charts/spire/values.yaml | 5 +++++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/charts/spire/README.md b/charts/spire/README.md index 99861fd..61eb9c5 100644 --- a/charts/spire/README.md +++ b/charts/spire/README.md @@ -228,6 +228,7 @@ Now you can interact with the Spire agent socket from your own application. The | `global.spire.namespaces.server.labels` | Labels to apply to the Spire server Namespace. | `{}` | | `global.spire.strictMode` | Check values, such as trustDomain, are overridden with a suitable value for production. | `false` | | `global.spire.ingressControllerType` | Specify what type of ingress controller you're using to add the necessary annotations accordingly. If blank, autodetection is attempted. If other, no annotations will be added. Must be one of [ingress-nginx, openshift, other, ""]. | `""` | +| `global.spire.tools.kubectl.tag` | Set to force the tag to use for all kubectl instances | `""` | | `global.installAndUpgradeHooks.enabled` | Enable Helm hooks to autofix common install/upgrade issues (should be disabled when using `helm template`) | `true` | | `global.deleteHooks.enabled` | Enable Helm hooks to autofix common delete issues (should be disabled when using `helm template`) | `true` | diff --git a/charts/spire/templates/_spire-lib.tpl b/charts/spire/templates/_spire-lib.tpl index 5ecde0a..239efc1 100644 --- a/charts/spire/templates/_spire-lib.tpl +++ b/charts/spire/templates/_spire-lib.tpl @@ -168,12 +168,16 @@ rules: {{- end }} {{- define "spire-lib.kubectl-image" }} -{{- $root := deepCopy . }} -{{- $tag := $root.image.tag | toString }} -{{- if eq (len $tag) 0 }} -{{- $_ := set $root.image "tag" (regexReplaceAll "^(v?\\d+\\.\\d+\\.\\d+).*" $root.KubeVersion "${1}") }} -{{- end }} -{{- include "spire-lib.image" $root }} +{{- $root := deepCopy . }} +{{- $tag := $root.image.tag | toString }} +{{- if eq (len $tag) 0 }} +{{- if dig "spire" "tools" "kubectl" "tag" "" $root.global }} +{{- $_ := set $root.image "tag" $root.global.spire.tools.kubectl.tag }} +{{- else }} +{{- $_ := set $root.image "tag" (regexReplaceAll "^(v?\\d+\\.\\d+\\.\\d+).*" $root.KubeVersion "${1}") }} +{{- end }} +{{- end }} +{{- include "spire-lib.image" $root }} {{- end }} {{/* diff --git a/charts/spire/values.yaml b/charts/spire/values.yaml index 1255884..ff2deb2 100644 --- a/charts/spire/values.yaml +++ b/charts/spire/values.yaml @@ -69,6 +69,11 @@ global: ## @param global.spire.ingressControllerType Specify what type of ingress controller you're using to add the necessary annotations accordingly. If blank, autodetection is attempted. If other, no annotations will be added. Must be one of [ingress-nginx, openshift, other, ""]. ingressControllerType: "" + tools: + kubectl: + ## @param global.spire.tools.kubectl.tag Set to force the tag to use for all kubectl instances + tag: "" + installAndUpgradeHooks: ## @param global.installAndUpgradeHooks.enabled Enable Helm hooks to autofix common install/upgrade issues (should be disabled when using `helm template`) enabled: true