(feat) Dynamically set PGID, GID and GROUP_ID (#1091)

* base PGID on fsGroup

* also remove PGID from questions.yaml

* remove mistake

* small fix

* fix first test

* fix linting

* always set PUID to 568

* use quotes for env vars (obviously)
This commit is contained in:
Kjeld Schouten-Lebbing
2021-10-04 12:31:56 +02:00
committed by GitHub
parent 1a7a85d772
commit 308ba8accf
63 changed files with 117 additions and 241 deletions

View File

@@ -283,37 +283,6 @@ class Test < ChartTest
initContainer = deployment["spec"]["template"]["spec"]["initContainers"][0]
assert_equal(results[:command], initContainer["command"])
end
it 'outputs PUID AND PGID permissions for multiple volumes when both are set' do
results= {
command: ["/bin/sh", "-c", "echo 'Automatically correcting permissions...';chown -R :568 '/configlist'; chmod -R g+w '/configlist';chown -R :568 '/data'; chmod -R g+w '/data';"]
}
values = {
env: {
PGID: 666,
PUID: 999
},
persistenceList: [
{
name: "data",
enabled: true,
setPermissions: true,
mountPath: "/data",
hostPath: "/tmp1"
},
{
name: "configlist",
enabled: true,
setPermissions: true,
mountPath: "/configlist",
hostPath: "/tmp2"
}
]
}
chart.value values
deployment = chart.resources(kind: "Deployment").first
initContainer = deployment["spec"]["template"]["spec"]["initContainers"][0]
assert_equal(results[:command], initContainer["command"])
end
end
end
end

View File

@@ -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"])
assert_nil(mainContainer["env"][4])
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"][1]["name"])
assert_equal(values[:env].values[0].to_s, mainContainer["env"][1]["value"])
assert_equal(values[:env].keys[1].to_s, mainContainer["env"][2]["name"])
assert_equal(values[:env].values[1].to_s, mainContainer["env"][2]["value"])
assert_equal(values[:env].keys[2].to_s, mainContainer["env"][3]["name"])
assert_equal(values[:env].values[2].to_s, mainContainer["env"][3]["value"])
assert_equal(values[:env].keys[3].to_s, mainContainer["env"][4]["name"])
assert_equal(values[:env].values[3].to_s, mainContainer["env"][4]["value"])
assert_equal(values[:env].keys[0].to_s, mainContainer["env"][4]["name"])
assert_equal(values[:env].values[0].to_s, mainContainer["env"][4]["value"])
assert_equal(values[:env].keys[1].to_s, mainContainer["env"][5]["name"])
assert_equal(values[:env].values[1].to_s, mainContainer["env"][5]["value"])
assert_equal(values[:env].keys[2].to_s, mainContainer["env"][6]["name"])
assert_equal(values[:env].values[2].to_s, mainContainer["env"][6]["value"])
assert_equal(values[:env].keys[3].to_s, mainContainer["env"][7]["name"])
assert_equal(values[:env].values[3].to_s, mainContainer["env"][7]["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"][1]["name"])
assert_equal(values[:envList][0][:value].to_s, mainContainer["env"][1]["value"])
assert_equal(values[:envList][0][:name].to_s, mainContainer["env"][4]["name"])
assert_equal(values[:envList][0][:value].to_s, mainContainer["env"][4]["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"][1]["name"])
assert_equal(values[:env].values[0].to_s, mainContainer["env"][1]["value"])
assert_equal(values[:env].keys[1].to_s, mainContainer["env"][2]["name"])
assert_equal(values[:env].values[1][:valueFrom][:fieldRef][:fieldPath], mainContainer["env"][2]["valueFrom"]["fieldRef"]["fieldPath"])
assert_equal(values[:env].keys[0].to_s, mainContainer["env"][4]["name"])
assert_equal(values[:env].values[0].to_s, mainContainer["env"][4]["value"])
assert_equal(values[:env].keys[1].to_s, mainContainer["env"][5]["name"])
assert_equal(values[:env].values[1][:valueFrom][:fieldRef][:fieldPath], mainContainer["env"][5]["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"][1]["name"])
assert_equal(values[:env].values[0][:valueFrom][:fieldRef][:fieldPath], mainContainer["env"][1]["valueFrom"]["fieldRef"]["fieldPath"])
assert_equal(values[:env].keys[0].to_s, mainContainer["env"][4]["name"])
assert_equal(values[:env].values[0][:valueFrom][:fieldRef][:fieldPath], mainContainer["env"][4]["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"][1]["name"])
assert_equal(values[:env].values[0][:fieldRef][:fieldPath], mainContainer["env"][1]["valueFrom"]["fieldRef"]["fieldPath"])
assert_equal(values[:env].keys[0].to_s, mainContainer["env"][4]["name"])
assert_equal(values[:env].values[0][:fieldRef][:fieldPath], mainContainer["env"][4]["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"][1]["name"])
assert_equal("common-test-admin", mainContainer["env"][1]["value"])
assert_equal(values[:env].keys[1].to_s, mainContainer["env"][2]["name"])
assert_equal(values[:env].values[1].to_s, mainContainer["env"][2]["value"])
assert_equal(values[:env].keys[0].to_s, mainContainer["env"][4]["name"])
assert_equal("common-test-admin", mainContainer["env"][4]["value"])
assert_equal(values[:env].keys[1].to_s, mainContainer["env"][5]["name"])
assert_equal(values[:env].values[1].to_s, mainContainer["env"][5]["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"][1]["name"])
assert_equal("common-test-admin", mainContainer["env"][1]["value"])
assert_equal(values[:env].keys[0].to_s, mainContainer["env"][4]["name"])
assert_equal("common-test-admin", mainContainer["env"][4]["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"][1]["name"])
assert_equal("common-test-admin", mainContainer["env"][1]["value"])
assert_equal(values[:env].keys[1].to_s, mainContainer["env"][2]["name"])
assert_equal(values[:env].values[1].to_s, mainContainer["env"][2]["value"])
assert_equal(values[:env].keys[2].to_s, mainContainer["env"][3]["name"])
assert_equal(values[:env].values[2][:valueFrom][:fieldRef][:fieldPath], mainContainer["env"][3]["valueFrom"]["fieldRef"]["fieldPath"])
assert_equal(values[:env].keys[3].to_s, mainContainer["env"][4]["name"])
assert_equal(values[:env].values[3][:fieldRef][:fieldPath], mainContainer["env"][4]["valueFrom"]["fieldRef"]["fieldPath"])
assert_equal(values[:env].keys[0].to_s, mainContainer["env"][4]["name"])
assert_equal("common-test-admin", mainContainer["env"][4]["value"])
assert_equal(values[:env].keys[1].to_s, mainContainer["env"][5]["name"])
assert_equal(values[:env].values[1].to_s, mainContainer["env"][5]["value"])
assert_equal(values[:env].keys[2].to_s, mainContainer["env"][6]["name"])
assert_equal(values[:env].values[2][:valueFrom][:fieldRef][:fieldPath], mainContainer["env"][6]["valueFrom"]["fieldRef"]["fieldPath"])
assert_equal(values[:env].keys[3].to_s, mainContainer["env"][7]["name"])
assert_equal(values[:env].values[3][:fieldRef][:fieldPath], mainContainer["env"][7]["valueFrom"]["fieldRef"]["fieldPath"])
end
it 'set "static" secret variables' do