From 085fb02b3f16baf2ac6c358241350e75970bee5f Mon Sep 17 00:00:00 2001 From: Kjeld Schouten-Lebbing Date: Thu, 3 Mar 2022 12:09:37 +0100 Subject: [PATCH] fix(common): fix TZ being wrongly defined in common and remove its references from some remaining Apps (#2005) * fix(common): fix TZ being wrongly defined in common and remove its references from some remaining Apps * hmm * update tests and add PUID as default as well * cleanup more tests * no message * hussle * hussle * fix tests --- charts/library/common/Chart.yaml | 2 +- .../templates/lib/controller/_container.tpl | 60 +++++++++-------- charts/library/common/values.yaml | 1 + charts/stable/appdaemon/values.yaml | 1 - charts/stable/calibre-web/values.yaml | 1 - charts/stable/custom-app/ci/test-values.yaml | 1 - charts/stable/firefox-syncserver/values.yaml | 2 - charts/stable/gotify/values.yaml | 2 - charts/stable/heimdall/values.yaml | 1 - charts/stable/tvheadend/values.yaml | 2 - tests/library/common/container_spec.rb | 66 +++++++++---------- 11 files changed, 68 insertions(+), 71 deletions(-) diff --git a/charts/library/common/Chart.yaml b/charts/library/common/Chart.yaml index 6de5dbbc588..7ce99b6a3b0 100644 --- a/charts/library/common/Chart.yaml +++ b/charts/library/common/Chart.yaml @@ -15,4 +15,4 @@ maintainers: name: common sources: null type: library -version: 8.17.2 +version: 8.17.3 diff --git a/charts/library/common/templates/lib/controller/_container.tpl b/charts/library/common/templates/lib/controller/_container.tpl index 727a948ccc3..3a5e9678fbe 100644 --- a/charts/library/common/templates/lib/controller/_container.tpl +++ b/charts/library/common/templates/lib/controller/_container.tpl @@ -46,14 +46,16 @@ {{- end }} env: + {{- if not ( .Values.env.PUID ) }} + - name: PUID + value: "568" + {{- end }} - name: PGID value: {{ .Values.podSecurityContext.fsGroup | quote }} - name: GROUP_ID value: {{ .Values.podSecurityContext.fsGroup | quote }} - name: GID value: {{ .Values.podSecurityContext.fsGroup | quote }} - - name: TZ - value: "UTC" {{- if or ( .Values.securityContext.readOnlyRootFilesystem ) ( .Values.securityContext.runAsNonRoot ) }} - name: S6_READ_ONLY_ROOT value: "1" @@ -62,6 +64,35 @@ - name: NVIDIA_VISIBLE_DEVICES value: "void" {{- end }} + {{- if not ( .Values.env.TZ ) }} + - name: TZ + value: "UTC" + {{- end }} + {{- with .Values.env }} + {{- range $k, $v := . }} + {{- $name := $k }} + {{- $value := $v }} + {{- if kindIs "int" $name }} + {{- $name = required "environment variables as a list of maps require a name field" $value.name }} + {{- end }} + - name: {{ quote $name }} + {{- if kindIs "map" $value -}} + {{- if hasKey $value "value" }} + {{- $value = $value.value -}} + {{- else if hasKey $value "valueFrom" }} + {{- toYaml $value | nindent 6 }} + {{- else }} + {{- dict "valueFrom" $value | toYaml | nindent 6 }} + {{- end }} + {{- end }} + {{- if not (kindIs "map" $value) }} + {{- if kindIs "string" $value }} + {{- $value = tpl $value $ }} + {{- end }} + value: {{ quote $value }} + {{- end }} + {{- end }} + {{- end }} {{- range $key, $value := .Values.envTpl }} - name: {{ $key }} value: {{ tpl $value $ | quote }} @@ -89,31 +120,6 @@ {{- fail "Please specify name/value for environment variable" }} {{- end }} {{- end}} - {{- with .Values.env }} - {{- range $k, $v := . }} - {{- $name := $k }} - {{- $value := $v }} - {{- if kindIs "int" $name }} - {{- $name = required "environment variables as a list of maps require a name field" $value.name }} - {{- end }} - - name: {{ quote $name }} - {{- if kindIs "map" $value -}} - {{- if hasKey $value "value" }} - {{- $value = $value.value -}} - {{- else if hasKey $value "valueFrom" }} - {{- toYaml $value | nindent 6 }} - {{- else }} - {{- dict "valueFrom" $value | toYaml | nindent 6 }} - {{- end }} - {{- end }} - {{- if not (kindIs "map" $value) }} - {{- if kindIs "string" $value }} - {{- $value = tpl $value $ }} - {{- end }} - value: {{ quote $value }} - {{- end }} - {{- end }} - {{- end }} envFrom: {{- range .Values.envFrom -}} {{- if .secretRef }} diff --git a/charts/library/common/values.yaml b/charts/library/common/values.yaml index f38d49887f5..d2cc30b0270 100644 --- a/charts/library/common/values.yaml +++ b/charts/library/common/values.yaml @@ -264,6 +264,7 @@ secret: {} # envFrom: # ... env: {} + ## Variables with values set from templates, example ## With a release name of: demo, the example env value will be: demo-admin envTpl: {} diff --git a/charts/stable/appdaemon/values.yaml b/charts/stable/appdaemon/values.yaml index d96f46cdfbb..cced196cbea 100644 --- a/charts/stable/appdaemon/values.yaml +++ b/charts/stable/appdaemon/values.yaml @@ -11,7 +11,6 @@ podSecurityContext: runAsGroup: 0 env: - TZ: "America/Chicago" LATITUDE: 46 LONGITUDE: -94 ELEVATION: 1217 diff --git a/charts/stable/calibre-web/values.yaml b/charts/stable/calibre-web/values.yaml index 61e4c9b462c..6fa2787cdbc 100644 --- a/charts/stable/calibre-web/values.yaml +++ b/charts/stable/calibre-web/values.yaml @@ -19,7 +19,6 @@ service: targetPort: 8083 env: {} - # TZ: # PUID: # DOCKER_MODS: diff --git a/charts/stable/custom-app/ci/test-values.yaml b/charts/stable/custom-app/ci/test-values.yaml index 03d6f473fc0..d153c93fc89 100644 --- a/charts/stable/custom-app/ci/test-values.yaml +++ b/charts/stable/custom-app/ci/test-values.yaml @@ -29,7 +29,6 @@ serviceList: targetPort: 9119 env: {} - # TZ: UTC # PUID: 1001 diff --git a/charts/stable/firefox-syncserver/values.yaml b/charts/stable/firefox-syncserver/values.yaml index 37ceb469e04..6855981edb8 100644 --- a/charts/stable/firefox-syncserver/values.yaml +++ b/charts/stable/firefox-syncserver/values.yaml @@ -17,8 +17,6 @@ podSecurityContext: runAsGroup: 0 env: - # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - TZ: "America/Los_Angeles" PUID: 568 FF_SYNCSERVER_PUBLIC_URL: "firefox-syncserver.192.168.1.189.nip.io" FF_SYNCSERVER_FORCE_WSGI_ENVIRON: true diff --git a/charts/stable/gotify/values.yaml b/charts/stable/gotify/values.yaml index decdd018ea4..fc284385aa3 100644 --- a/charts/stable/gotify/values.yaml +++ b/charts/stable/gotify/values.yaml @@ -10,8 +10,6 @@ secret: # See more environment variables in the gotify documentation # https://gotify.net/docs/config#environment-variables env: - # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - TZ: "America/Los_Angeles" GOTIFY_SERVER_PORT: 8080 GOTIFY_SERVER_KEEPALIVEPERIODSECONDS: 0 GOTIFY_SERVER_LISTENADDR: "" diff --git a/charts/stable/heimdall/values.yaml b/charts/stable/heimdall/values.yaml index 3b32ddc82bd..c9d0997f767 100644 --- a/charts/stable/heimdall/values.yaml +++ b/charts/stable/heimdall/values.yaml @@ -19,7 +19,6 @@ service: targetPort: 80 env: {} - # TZ: # PUID: probes: startup: diff --git a/charts/stable/tvheadend/values.yaml b/charts/stable/tvheadend/values.yaml index 8b29f5a4108..8374a7539b1 100644 --- a/charts/stable/tvheadend/values.yaml +++ b/charts/stable/tvheadend/values.yaml @@ -12,8 +12,6 @@ podSecurityContext: # See https://github.com/linuxserver/docker-tvheadend#parameters env: {} - # PUID: 1000 - # TZ: Europe/London # RUN_OPTS: service: diff --git a/tests/library/common/container_spec.rb b/tests/library/common/container_spec.rb index 508144fae56..509e3bc1ea8 100644 --- a/tests/library/common/container_spec.rb +++ b/tests/library/common/container_spec.rb @@ -85,7 +85,7 @@ class Test < ChartTest deployment = chart.resources(kind: "Deployment").first containers = deployment["spec"]["template"]["spec"]["containers"] mainContainer = containers.find{ |c| c["name"] == "common-test" } - assert_nil(mainContainer["env"][5]) + assert_nil(mainContainer["env"][7]) end it 'set static "k/v pair style" environment variables' do @@ -101,14 +101,14 @@ class Test < ChartTest deployment = chart.resources(kind: "Deployment").first containers = deployment["spec"]["template"]["spec"]["containers"] mainContainer = containers.find{ |c| c["name"] == "common-test" } - assert_equal(values[:env].keys[0].to_s, mainContainer["env"][6]["name"]) - assert_equal(values[:env].values[0].to_s, mainContainer["env"][6]["value"]) - assert_equal(values[:env].keys[1].to_s, mainContainer["env"][7]["name"]) - assert_equal(values[:env].values[1].to_s, mainContainer["env"][7]["value"]) - assert_equal(values[:env].keys[2].to_s, mainContainer["env"][8]["name"]) - assert_equal(values[:env].values[2].to_s, mainContainer["env"][8]["value"]) - assert_equal(values[:env].keys[3].to_s, mainContainer["env"][9]["name"]) - assert_equal(values[:env].values[3].to_s, mainContainer["env"][9]["value"]) + assert_equal(values[:env].keys[0].to_s, mainContainer["env"][7]["name"]) + assert_equal(values[:env].values[0].to_s, mainContainer["env"][7]["value"]) + assert_equal(values[:env].keys[1].to_s, mainContainer["env"][8]["name"]) + assert_equal(values[:env].values[1].to_s, mainContainer["env"][8]["value"]) + assert_equal(values[:env].keys[2].to_s, mainContainer["env"][9]["name"]) + assert_equal(values[:env].values[2].to_s, mainContainer["env"][9]["value"]) + assert_equal(values[:env].keys[3].to_s, mainContainer["env"][10]["name"]) + assert_equal(values[:env].values[3].to_s, mainContainer["env"][10]["value"]) end it 'set list of static "kubernetes style" environment variables' do @@ -124,8 +124,8 @@ class Test < ChartTest deployment = chart.resources(kind: "Deployment").first containers = deployment["spec"]["template"]["spec"]["containers"] mainContainer = containers.find{ |c| c["name"] == "common-test" } - assert_equal(values[:envList][0][:name].to_s, mainContainer["env"][6]["name"]) - assert_equal(values[:envList][0][:value].to_s, mainContainer["env"][6]["value"]) + assert_equal(values[:envList][0][:name].to_s, mainContainer["env"][7]["name"]) + assert_equal(values[:envList][0][:value].to_s, mainContainer["env"][7]["value"]) end it 'set both static "k/v pair style" and static "k/valueFrom style" environment variables' do @@ -145,10 +145,10 @@ class Test < ChartTest deployment = chart.resources(kind: "Deployment").first containers = deployment["spec"]["template"]["spec"]["containers"] mainContainer = containers.find{ |c| c["name"] == "common-test" } - assert_equal(values[:env].keys[0].to_s, mainContainer["env"][6]["name"]) - assert_equal(values[:env].values[0].to_s, mainContainer["env"][6]["value"]) - assert_equal(values[:env].keys[1].to_s, mainContainer["env"][7]["name"]) - assert_equal(values[:env].values[1][:valueFrom][:fieldRef][:fieldPath], mainContainer["env"][7]["valueFrom"]["fieldRef"]["fieldPath"]) + assert_equal(values[:env].keys[0].to_s, mainContainer["env"][7]["name"]) + assert_equal(values[:env].values[0].to_s, mainContainer["env"][7]["value"]) + assert_equal(values[:env].keys[1].to_s, mainContainer["env"][8]["name"]) + assert_equal(values[:env].values[1][:valueFrom][:fieldRef][:fieldPath], mainContainer["env"][8]["valueFrom"]["fieldRef"]["fieldPath"]) end it 'set static "k/explicitValueFrom pair style" environment variables' do @@ -167,8 +167,8 @@ class Test < ChartTest deployment = chart.resources(kind: "Deployment").first containers = deployment["spec"]["template"]["spec"]["containers"] mainContainer = containers.find{ |c| c["name"] == "common-test" } - assert_equal(values[:env].keys[0].to_s, mainContainer["env"][6]["name"]) - assert_equal(values[:env].values[0][:valueFrom][:fieldRef][:fieldPath], mainContainer["env"][6]["valueFrom"]["fieldRef"]["fieldPath"]) + assert_equal(values[:env].keys[0].to_s, mainContainer["env"][7]["name"]) + assert_equal(values[:env].values[0][:valueFrom][:fieldRef][:fieldPath], mainContainer["env"][7]["valueFrom"]["fieldRef"]["fieldPath"]) end it 'set static "k/implicitValueFrom pair style" environment variables' do @@ -185,8 +185,8 @@ class Test < ChartTest deployment = chart.resources(kind: "Deployment").first containers = deployment["spec"]["template"]["spec"]["containers"] mainContainer = containers.find{ |c| c["name"] == "common-test" } - assert_equal(values[:env].keys[0].to_s, mainContainer["env"][6]["name"]) - assert_equal(values[:env].values[0][:fieldRef][:fieldPath], mainContainer["env"][6]["valueFrom"]["fieldRef"]["fieldPath"]) + assert_equal(values[:env].keys[0].to_s, mainContainer["env"][7]["name"]) + assert_equal(values[:env].values[0][:fieldRef][:fieldPath], mainContainer["env"][7]["valueFrom"]["fieldRef"]["fieldPath"]) end it 'set both static "k/v pair style" and templated "k/v pair style" environment variables' do @@ -200,10 +200,10 @@ class Test < ChartTest deployment = chart.resources(kind: "Deployment").first containers = deployment["spec"]["template"]["spec"]["containers"] mainContainer = containers.find{ |c| c["name"] == "common-test" } - assert_equal(values[:env].keys[0].to_s, mainContainer["env"][6]["name"]) - assert_equal("common-test-admin", mainContainer["env"][6]["value"]) - assert_equal(values[:env].keys[1].to_s, mainContainer["env"][7]["name"]) - assert_equal(values[:env].values[1].to_s, mainContainer["env"][7]["value"]) + assert_equal(values[:env].keys[0].to_s, mainContainer["env"][7]["name"]) + assert_equal("common-test-admin", mainContainer["env"][7]["value"]) + assert_equal(values[:env].keys[1].to_s, mainContainer["env"][8]["name"]) + assert_equal(values[:env].values[1].to_s, mainContainer["env"][8]["value"]) end it 'set templated "k/v pair style" environment variables' do @@ -216,8 +216,8 @@ class Test < ChartTest deployment = chart.resources(kind: "Deployment").first containers = deployment["spec"]["template"]["spec"]["containers"] mainContainer = containers.find{ |c| c["name"] == "common-test" } - assert_equal(values[:env].keys[0].to_s, mainContainer["env"][6]["name"]) - assert_equal("common-test-admin", mainContainer["env"][6]["value"]) + assert_equal(values[:env].keys[0].to_s, mainContainer["env"][7]["name"]) + assert_equal("common-test-admin", mainContainer["env"][7]["value"]) end it 'set static "k/v pair style", templated "k/v pair style", static "k/explicitValueFrom pair style", and static "k/implicitValueFrom pair style" environment variables' do @@ -243,14 +243,14 @@ class Test < ChartTest deployment = chart.resources(kind: "Deployment").first containers = deployment["spec"]["template"]["spec"]["containers"] mainContainer = containers.find{ |c| c["name"] == "common-test" } - assert_equal(values[:env].keys[0].to_s, mainContainer["env"][6]["name"]) - assert_equal("common-test-admin", mainContainer["env"][6]["value"]) - assert_equal(values[:env].keys[1].to_s, mainContainer["env"][7]["name"]) - assert_equal(values[:env].values[1].to_s, mainContainer["env"][7]["value"]) - assert_equal(values[:env].keys[2].to_s, mainContainer["env"][8]["name"]) - assert_equal(values[:env].values[2][:valueFrom][:fieldRef][:fieldPath], mainContainer["env"][8]["valueFrom"]["fieldRef"]["fieldPath"]) - assert_equal(values[:env].keys[3].to_s, mainContainer["env"][9]["name"]) - assert_equal(values[:env].values[3][:fieldRef][:fieldPath], mainContainer["env"][9]["valueFrom"]["fieldRef"]["fieldPath"]) + assert_equal(values[:env].keys[0].to_s, mainContainer["env"][7]["name"]) + assert_equal("common-test-admin", mainContainer["env"][7]["value"]) + assert_equal(values[:env].keys[1].to_s, mainContainer["env"][8]["name"]) + assert_equal(values[:env].values[1].to_s, mainContainer["env"][8]["value"]) + assert_equal(values[:env].keys[2].to_s, mainContainer["env"][9]["name"]) + assert_equal(values[:env].values[2][:valueFrom][:fieldRef][:fieldPath], mainContainer["env"][9]["valueFrom"]["fieldRef"]["fieldPath"]) + assert_equal(values[:env].keys[3].to_s, mainContainer["env"][10]["name"]) + assert_equal(values[:env].values[3][:fieldRef][:fieldPath], mainContainer["env"][10]["valueFrom"]["fieldRef"]["fieldPath"]) end it 'set "static" secret variables' do