From 9d37c9f2f1eca4d32fd04f6a05eb3bd14729b01e Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Wed, 5 Sep 2018 07:45:54 -0700 Subject: [PATCH] Support global.image value --- templates/client-daemonset.yaml | 2 +- templates/server-statefulset.yaml | 2 +- test/unit/client-daemonset.yaml | 21 +++++++++++++++++++++ test/unit/server-statefulset.bats | 21 +++++++++++++++++++++ values.yaml | 8 ++++++-- 5 files changed, 50 insertions(+), 4 deletions(-) diff --git a/templates/client-daemonset.yaml b/templates/client-daemonset.yaml index a55b1d9..8a37136 100644 --- a/templates/client-daemonset.yaml +++ b/templates/client-daemonset.yaml @@ -37,7 +37,7 @@ spec: containers: - name: consul - image: "{{ .Values.client.image }}" + image: "{{ default .Values.global.image .Values.client.image }}" env: - name: POD_IP valueFrom: diff --git a/templates/server-statefulset.yaml b/templates/server-statefulset.yaml index 0a6c32b..e078621 100644 --- a/templates/server-statefulset.yaml +++ b/templates/server-statefulset.yaml @@ -53,7 +53,7 @@ spec: name: {{ template "consul.fullname" . }}-server-config containers: - name: consul - image: "{{ .Values.server.image }}" + image: "{{ default .Values.global.image .Values.server.image }}" env: - name: POD_IP valueFrom: diff --git a/test/unit/client-daemonset.yaml b/test/unit/client-daemonset.yaml index 0692ec8..612660c 100755 --- a/test/unit/client-daemonset.yaml +++ b/test/unit/client-daemonset.yaml @@ -42,6 +42,27 @@ load _helpers [ "${actual}" = "false" ] } +@test "client/DaemonSet: image defaults to global.image" { + cd `chart_dir` + local actual=$(helm template \ + -x templates/client-daemonset.yaml \ + --set 'global.image=foo' \ + . | tee /dev/stderr | + yq -r '.spec.template.spec.containers[0].image' | tee /dev/stderr) + [ "${actual}" = "foo" ] +} + +@test "client/DaemonSet: image can be overridden with client.image" { + cd `chart_dir` + local actual=$(helm template \ + -x templates/client-daemonset.yaml \ + --set 'global.image=foo' \ + --set 'client.image=bar' \ + . | tee /dev/stderr | + yq -r '.spec.template.spec.containers[0].image' | tee /dev/stderr) + [ "${actual}" = "bar" ] +} + @test "client/DaemonSet: no updateStrategy when not updating" { cd `chart_dir` local actual=$(helm template \ diff --git a/test/unit/server-statefulset.bats b/test/unit/server-statefulset.bats index e8b1c7a..3ad6d4b 100755 --- a/test/unit/server-statefulset.bats +++ b/test/unit/server-statefulset.bats @@ -42,6 +42,27 @@ load _helpers [ "${actual}" = "false" ] } +@test "server/StatefulSet: image defaults to global.image" { + cd `chart_dir` + local actual=$(helm template \ + -x templates/server-statefulset.yaml \ + --set 'global.image=foo' \ + . | tee /dev/stderr | + yq -r '.spec.template.spec.containers[0].image' | tee /dev/stderr) + [ "${actual}" = "foo" ] +} + +@test "server/StatefulSet: image can be overridden with server.image" { + cd `chart_dir` + local actual=$(helm template \ + -x templates/server-statefulset.yaml \ + --set 'global.image=foo' \ + --set 'server.image=bar' \ + . | tee /dev/stderr | + yq -r '.spec.template.spec.containers[0].image' | tee /dev/stderr) + [ "${actual}" = "bar" ] +} + @test "server/StatefulSet: no updateStrategy when not updating" { cd `chart_dir` local actual=$(helm template \ diff --git a/values.yaml b/values.yaml index e95b187..02cf217 100644 --- a/values.yaml +++ b/values.yaml @@ -14,9 +14,13 @@ global: # Domain to register the Consul DNS server to listen for. domain: consul + # Image is the name (and tag) of the Consul Docker image for clients and + # servers below. This can be overridden per component. + image: "consul:1.2.2" + server: enabled: "-" - image: "consul:1.2.2" + image: null replicas: 3 bootstrapExpect: 3 # Should <= replicas count storage: 10Gi @@ -61,7 +65,7 @@ server: # DC where a single agent is deployed per node. client: enabled: "-" - image: "consul:1.2.2" + image: null join: null # ConnectInject will enable the automatic Connect sidecar injector.