Add PGID and PUID options (#144)

- Adds PGID as a values.yaml setting that sets PGID env-var
- Adds PUID as a values.yaml settings that sets PGID env-var
- Adjusts Common Unit test accordingly
(both can also in the future be used to set securityContext based containers)
This commit is contained in:
Kjeld Schouten-Lebbing
2021-02-18 23:02:03 +01:00
committed by kjeld Schouten-Lebbing
parent f958f8e76d
commit 2b61d2637e
4 changed files with 49 additions and 22 deletions
+30 -11
View File
@@ -42,7 +42,10 @@ class Test < ChartTest
it 'Check no environment variables' do it 'Check no environment variables' do
values = {} values = {}
chart.value values chart.value values
assert_nil(resource('Deployment')['spec']['template']['spec']['containers'][0]['env']) jq('.spec.template.spec.containers[0].env[0].name', resource('Deployment')).must_equal 'PUID'
jq('.spec.template.spec.containers[0].env[0].value', resource('Deployment')).must_equal 568
jq('.spec.template.spec.containers[0].env[1].name', resource('Deployment')).must_equal 'PGID'
jq('.spec.template.spec.containers[0].env[1].value', resource('Deployment')).must_equal 568
end end
it 'set "static" environment variables' do it 'set "static" environment variables' do
@@ -52,8 +55,12 @@ class Test < ChartTest
} }
} }
chart.value values chart.value values
jq('.spec.template.spec.containers[0].env[0].name', resource('Deployment')).must_equal values[:env].keys[0].to_s jq('.spec.template.spec.containers[0].env[0].name', resource('Deployment')).must_equal 'PUID'
jq('.spec.template.spec.containers[0].env[0].value', resource('Deployment')).must_equal values[:env].values[0].to_s jq('.spec.template.spec.containers[0].env[0].value', resource('Deployment')).must_equal 568
jq('.spec.template.spec.containers[0].env[1].name', resource('Deployment')).must_equal 'PGID'
jq('.spec.template.spec.containers[0].env[1].value', resource('Deployment')).must_equal 568
jq('.spec.template.spec.containers[0].env[2].name', resource('Deployment')).must_equal values[:env].keys[0].to_s
jq('.spec.template.spec.containers[0].env[2].value', resource('Deployment')).must_equal values[:env].values[0].to_s
end end
it 'set "valueFrom" environment variables' do it 'set "valueFrom" environment variables' do
@@ -67,8 +74,12 @@ class Test < ChartTest
} }
} }
chart.value values chart.value values
jq('.spec.template.spec.containers[0].env[0].name', resource('Deployment')).must_equal values[:envValueFrom].keys[0].to_s jq('.spec.template.spec.containers[0].env[0].name', resource('Deployment')).must_equal 'PUID'
jq('.spec.template.spec.containers[0].env[0].valueFrom | keys[0]', resource('Deployment')).must_equal values[:envValueFrom].values[0].keys[0].to_s jq('.spec.template.spec.containers[0].env[0].value', resource('Deployment')).must_equal 568
jq('.spec.template.spec.containers[0].env[1].name', resource('Deployment')).must_equal 'PGID'
jq('.spec.template.spec.containers[0].env[1].value', resource('Deployment')).must_equal 568
jq('.spec.template.spec.containers[0].env[2].name', resource('Deployment')).must_equal values[:envValueFrom].keys[0].to_s
jq('.spec.template.spec.containers[0].env[2].valueFrom | keys[0]', resource('Deployment')).must_equal values[:envValueFrom].values[0].keys[0].to_s
end end
it 'set "static" and "Dynamic/Tpl" environment variables' do it 'set "static" and "Dynamic/Tpl" environment variables' do
@@ -81,10 +92,14 @@ class Test < ChartTest
} }
} }
chart.value values chart.value values
jq('.spec.template.spec.containers[0].env[0].name', resource('Deployment')).must_equal values[:env].keys[0].to_s jq('.spec.template.spec.containers[0].env[0].name', resource('Deployment')).must_equal 'PUID'
jq('.spec.template.spec.containers[0].env[0].value', resource('Deployment')).must_equal values[:env].values[0].to_s jq('.spec.template.spec.containers[0].env[0].value', resource('Deployment')).must_equal 568
jq('.spec.template.spec.containers[0].env[1].name', resource('Deployment')).must_equal values[:envTpl].keys[0].to_s jq('.spec.template.spec.containers[0].env[1].name', resource('Deployment')).must_equal 'PGID'
jq('.spec.template.spec.containers[0].env[1].value', resource('Deployment')).must_equal 'common-test-admin' jq('.spec.template.spec.containers[0].env[1].value', resource('Deployment')).must_equal 568
jq('.spec.template.spec.containers[0].env[2].name', resource('Deployment')).must_equal values[:env].keys[0].to_s
jq('.spec.template.spec.containers[0].env[2].value', resource('Deployment')).must_equal values[:env].values[0].to_s
jq('.spec.template.spec.containers[0].env[3].name', resource('Deployment')).must_equal values[:envTpl].keys[0].to_s
jq('.spec.template.spec.containers[0].env[3].value', resource('Deployment')).must_equal 'common-test-admin'
end end
it 'set "Dynamic/Tpl" environment variables' do it 'set "Dynamic/Tpl" environment variables' do
@@ -94,8 +109,12 @@ class Test < ChartTest
} }
} }
chart.value values chart.value values
jq('.spec.template.spec.containers[0].env[0].name', resource('Deployment')).must_equal values[:envTpl].keys[0].to_s jq('.spec.template.spec.containers[0].env[0].name', resource('Deployment')).must_equal 'PUID'
jq('.spec.template.spec.containers[0].env[0].value', resource('Deployment')).must_equal 'common-test-admin' jq('.spec.template.spec.containers[0].env[0].value', resource('Deployment')).must_equal 568
jq('.spec.template.spec.containers[0].env[1].name', resource('Deployment')).must_equal 'PGID'
jq('.spec.template.spec.containers[0].env[1].value', resource('Deployment')).must_equal 568
jq('.spec.template.spec.containers[0].env[2].name', resource('Deployment')).must_equal values[:envTpl].keys[0].to_s
jq('.spec.template.spec.containers[0].env[2].value', resource('Deployment')).must_equal 'common-test-admin'
end end
end end
+1 -1
View File
@@ -2,7 +2,7 @@ apiVersion: v2
name: common name: common
description: Function library for TrueCharts description: Function library for TrueCharts
type: library type: library
version: 1.0.0 version: 1.1.0
kubeVersion: ">=1.16.0-0" kubeVersion: ">=1.16.0-0"
# upstream_version: 3.0.1 # upstream_version: 3.0.1
keywords: keywords:
@@ -15,8 +15,12 @@ The main container included in the controller.
securityContext: securityContext:
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}
{{- end }} {{- end }}
{{- if or .Values.env .Values.envTpl .Values.envValueFrom }}
env: env:
- name: PUID
value: {{ .Values.PUID }}
- name: PGID
value: {{ .Values.PGID }}
{{- if or .Values.env .Values.envTpl .Values.envValueFrom .Values.envVariable }}
{{- range $envVariable := .Values.environmentVariables }} {{- range $envVariable := .Values.environmentVariables }}
{{- if and $envVariable.name $envVariable.value }} {{- if and $envVariable.name $envVariable.value }}
- name: {{ $envVariable.name }} - name: {{ $envVariable.name }}
@@ -36,7 +40,7 @@ The main container included in the controller.
{{- range $key, $value := .Values.envValueFrom }} {{- range $key, $value := .Values.envValueFrom }}
- name: {{ $key }} - name: {{ $key }}
valueFrom: valueFrom:
{{- $value | toYaml | nindent 6 }} {{- $value | toYaml | nindent 8 }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- with .Values.envFrom }} {{- with .Values.envFrom }}
+4
View File
@@ -32,6 +32,7 @@ serviceAccount:
# If not set and create is true, a name is generated using the fullname template # If not set and create is true, a name is generated using the fullname template
name: "" name: ""
env: {} env: {}
# TZ: UTC # TZ: UTC
@@ -450,6 +451,9 @@ addons:
## TrueCharts Specific ## TrueCharts Specific
PUID: 568
PGID: 568
appAdditionalServicesEnabled: false appAdditionalServicesEnabled: false
# appAdditionalServices: # appAdditionalServices:
# api: # api: