From 2ff7d47c07236ffbd96b27748e634f62b4352760 Mon Sep 17 00:00:00 2001 From: Janusz Bialy <6475833+jbialy@users.noreply.github.com> Date: Thu, 28 Nov 2019 17:39:28 -0500 Subject: [PATCH] Use a standard way to define the container image (#103) * use a standard way to define image repo and tag Signed-off-by: Janusz Bialy * add tests Signed-off-by: Janusz Bialy * bump chart version Signed-off-by: Janusz Bialy * Revert "bump chart version" This reverts commit 74cbc984a7d4cf9098acf78977cdc8598c557550. Signed-off-by: Janusz Bialy * nest image block inside server Signed-off-by: Janusz Bialy --- templates/server-statefulset.yaml | 4 +-- test/unit/server-dev-statefulset.bats | 20 ++++++++++++--- test/unit/server-ha-statefulset.bats | 27 +++++++++++-------- test/unit/server-statefulset.bats | 37 +++++++++++++++++++++------ values.yaml | 11 ++++---- 5 files changed, 71 insertions(+), 28 deletions(-) diff --git a/templates/server-statefulset.yaml b/templates/server-statefulset.yaml index f391ea1..bc2b450 100644 --- a/templates/server-statefulset.yaml +++ b/templates/server-statefulset.yaml @@ -53,8 +53,8 @@ spec: securityContext: capabilities: add: ["IPC_LOCK"] - image: "{{ .Values.global.image }}" - imagePullPolicy: {{ .Values.global.imagePullPolicy }} + image: {{ .Values.server.image.repository }}:{{ .Values.server.image.tag | default "latest" }} + imagePullPolicy: {{ .Values.server.image.pullPolicy }} command: {{ template "vault.command" . }} args: {{ template "vault.args" . }} env: diff --git a/test/unit/server-dev-statefulset.bats b/test/unit/server-dev-statefulset.bats index bcfb7b0..5f1e45a 100755 --- a/test/unit/server-dev-statefulset.bats +++ b/test/unit/server-dev-statefulset.bats @@ -23,15 +23,29 @@ load _helpers [ "${actual}" = "false" ] } -@test "server/dev-StatefulSet: image defaults to global.image" { +@test "server/dev-StatefulSet: image defaults to server.image.repository:tag" { cd `chart_dir` local actual=$(helm template \ -x templates/server-statefulset.yaml \ - --set 'global.image=foo' \ + --set 'server.image.repository=foo' \ + --set 'server.image.tag=1.2.3' \ --set 'server.dev.enabled=true' \ . | tee /dev/stderr | yq -r '.spec.template.spec.containers[0].image' | tee /dev/stderr) - [ "${actual}" = "foo" ] + [ "${actual}" = "foo:1.2.3" ] +} + +@test "server/ha-StatefulSet: image tag defaults to latest" { + cd `chart_dir` + + local actual=$(helm template \ + -x templates/server-statefulset.yaml \ + --set 'server.image.repository=foo' \ + --set 'server.image.tag=' \ + --set 'server.dev.enabled=true' \ + . | tee /dev/stderr | + yq -r '.spec.template.spec.containers[0].image' | tee /dev/stderr) + [ "${actual}" = "foo:latest" ] } #-------------------------------------------------------------------- diff --git a/test/unit/server-ha-statefulset.bats b/test/unit/server-ha-statefulset.bats index 7c2a2af..833a304 100755 --- a/test/unit/server-ha-statefulset.bats +++ b/test/unit/server-ha-statefulset.bats @@ -23,22 +23,29 @@ load _helpers [ "${actual}" = "false" ] } -@test "server/ha-StatefulSet: image defaults to global.image" { +@test "server/ha-StatefulSet: image defaults to server.image.repository:tag" { 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" ] - - local actual=$(helm template \ - -x templates/server-statefulset.yaml \ - --set 'global.image=foo' \ + --set 'server.image.repository=foo' \ + --set 'server.image.tag=1.2.3' \ --set 'server.ha.enabled=true' \ . | tee /dev/stderr | yq -r '.spec.template.spec.containers[0].image' | tee /dev/stderr) - [ "${actual}" = "foo" ] + [ "${actual}" = "foo:1.2.3" ] +} + +@test "server/ha-StatefulSet: image tag defaults to latest" { + cd `chart_dir` + + local actual=$(helm template \ + -x templates/server-statefulset.yaml \ + --set 'server.image.repository=foo' \ + --set 'server.image.tag=' \ + --set 'server.ha.enabled=true' \ + . | tee /dev/stderr | + yq -r '.spec.template.spec.containers[0].image' | tee /dev/stderr) + [ "${actual}" = "foo:latest" ] } #-------------------------------------------------------------------- diff --git a/test/unit/server-statefulset.bats b/test/unit/server-statefulset.bats index f9eff95..fe38222 100755 --- a/test/unit/server-statefulset.bats +++ b/test/unit/server-statefulset.bats @@ -32,29 +32,50 @@ load _helpers [ "${actual}" = "false" ] } -@test "server/standalone-StatefulSet: image defaults to global.image" { +@test "server/standalone-StatefulSet: image defaults to server.image.repository:tag" { cd `chart_dir` local actual=$(helm template \ -x templates/server-statefulset.yaml \ - --set 'global.image=foo' \ + --set 'server.image.repository=foo' \ + --set 'server.image.tag=1.2.3' \ . | tee /dev/stderr | yq -r '.spec.template.spec.containers[0].image' | tee /dev/stderr) - [ "${actual}" = "foo" ] + [ "${actual}" = "foo:1.2.3" ] local actual=$(helm template \ -x templates/server-statefulset.yaml \ - --set 'global.image=foo' \ + --set 'server.image.repository=foo' \ + --set 'server.image.tag=1.2.3' \ --set 'server.standalone.enabled=true' \ . | tee /dev/stderr | yq -r '.spec.template.spec.containers[0].image' | tee /dev/stderr) - [ "${actual}" = "foo" ] + [ "${actual}" = "foo:1.2.3" ] +} + +@test "server/standalone-StatefulSet: image tag defaults to latest" { + cd `chart_dir` + local actual=$(helm template \ + -x templates/server-statefulset.yaml \ + --set 'server.image.repository=foo' \ + --set 'server.image.tag=' \ + . | tee /dev/stderr | + yq -r '.spec.template.spec.containers[0].image' | tee /dev/stderr) + [ "${actual}" = "foo:latest" ] + + local actual=$(helm template \ + -x templates/server-statefulset.yaml \ + --set 'server.image.repository=foo' \ + --set 'server.image.tag=' \ + --set 'server.standalone.enabled=true' \ + . | tee /dev/stderr | + yq -r '.spec.template.spec.containers[0].image' | tee /dev/stderr) + [ "${actual}" = "foo:latest" ] } @test "server/standalone-StatefulSet: default imagePullPolicy" { 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].imagePullPolicy' | tee /dev/stderr) [ "${actual}" = "IfNotPresent" ] @@ -64,10 +85,10 @@ load _helpers cd `chart_dir` local actual=$(helm template \ -x templates/server-statefulset.yaml \ - --set 'global.imagePullPolicy=foo' \ + --set 'server.image.pullPolicy=Always' \ . | tee /dev/stderr | yq -r '.spec.template.spec.containers[0].imagePullPolicy' | tee /dev/stderr) - [ "${actual}" = "foo" ] + [ "${actual}" = "Always" ] } @test "server/standalone-StatefulSet: Custom imagePullSecrets" { diff --git a/values.yaml b/values.yaml index fc404d3..970da68 100644 --- a/values.yaml +++ b/values.yaml @@ -4,11 +4,6 @@ global: # enabled is the master enabled switch. Setting this to true or false # will enable or disable all the components within this chart by default. enabled: true - - # Image is the name (and tag) of the Vault Docker image. - image: "vault:1.2.4" - # Overrides the default Image Pull Policy - imagePullPolicy: IfNotPresent # Image pull secret to use for registry authentication. imagePullSecrets: [] # imagePullSecrets: @@ -21,6 +16,12 @@ server: # should map directly to the value of the resources field for a PodSpec. # By default no direct resource request is made. + image: + repository: "vault" + tag: 1.2.4 + # Overrides the default Image Pull Policy + pullPolicy: IfNotPresent + resources: # resources: # requests: