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
+31 -12
View File
@@ -41,8 +41,11 @@ class Test < ChartTest
describe 'Environment settings' do
it 'Check no environment variables' do
values = {}
chart.value values
assert_nil(resource('Deployment')['spec']['template']['spec']['containers'][0]['env'])
chart.value values
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
it 'set "static" environment variables' do
@@ -52,8 +55,12 @@ class Test < ChartTest
}
}
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].value', resource('Deployment')).must_equal values[:env].values[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 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
it 'set "valueFrom" environment variables' do
@@ -67,8 +74,12 @@ class Test < ChartTest
}
}
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].valueFrom | keys[0]', resource('Deployment')).must_equal values[:envValueFrom].values[0].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 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
it 'set "static" and "Dynamic/Tpl" environment variables' do
@@ -81,10 +92,14 @@ class Test < ChartTest
}
}
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].value', resource('Deployment')).must_equal values[:env].values[0].to_s
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].value', resource('Deployment')).must_equal 'common-test-admin'
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
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
it 'set "Dynamic/Tpl" environment variables' do
@@ -94,8 +109,12 @@ class Test < ChartTest
}
}
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].value', resource('Deployment')).must_equal 'common-test-admin'
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
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
+1 -1
View File
@@ -2,7 +2,7 @@ apiVersion: v2
name: common
description: Function library for TrueCharts
type: library
version: 1.0.0
version: 1.1.0
kubeVersion: ">=1.16.0-0"
# upstream_version: 3.0.1
keywords:
@@ -15,28 +15,32 @@ The main container included in the controller.
securityContext:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- if or .Values.env .Values.envTpl .Values.envValueFrom }}
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 }}
{{- if and $envVariable.name $envVariable.value }}
- name: {{ $envVariable.name }}
value: {{ $envVariable.value | quote }}
value: {{ $envVariable.value | quote }}
{{- else }}
{{- fail "Please specify name/value for environment variable" }}
{{- end }}
{{- end}}
{{- range $key, $value := .Values.env }}
- name: {{ $key }}
value: {{ $value | quote }}
- name: {{ $key }}
value: {{ $value | quote }}
{{- end }}
{{- range $key, $value := .Values.envTpl }}
- name: {{ $key }}
value: {{ tpl $value $ | quote }}
- name: {{ $key }}
value: {{ tpl $value $ | quote }}
{{- end }}
{{- range $key, $value := .Values.envValueFrom }}
- name: {{ $key }}
valueFrom:
{{- $value | toYaml | nindent 6 }}
- name: {{ $key }}
valueFrom:
{{- $value | toYaml | nindent 8 }}
{{- end }}
{{- end }}
{{- 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
name: ""
env: {}
# TZ: UTC
@@ -450,6 +451,9 @@ addons:
## TrueCharts Specific
PUID: 568
PGID: 568
appAdditionalServicesEnabled: false
# appAdditionalServices:
# api: