From 18be246f8100b34472fb61640ab5a0e4813e3583 Mon Sep 17 00:00:00 2001 From: JuanJo Ciarlante Date: Wed, 13 May 2020 08:32:34 -0300 Subject: [PATCH] [jjo] fix: let env_ `null` values stay as so (vs string-ifying it) (#41) --- kube.libsonnet | 10 +++++++++- tests/Makefile | 2 +- tests/golden/test-simple-validate.pass.json | 16 ++++++++++++++++ tests/test-simple-validate.pass.jsonnet | 1 + tests/tmp-rancher/root/etc/k3s.yaml | 0 5 files changed, 27 insertions(+), 2 deletions(-) delete mode 100644 tests/tmp-rancher/root/etc/k3s.yaml diff --git a/kube.libsonnet b/kube.libsonnet index c42c36c..d12a786 100644 --- a/kube.libsonnet +++ b/kube.libsonnet @@ -223,7 +223,15 @@ imagePullPolicy: if std.endsWith(self.image, ":latest") then "Always" else "IfNotPresent", envList(map):: [ - if std.type(map[x]) == "object" then { name: x, valueFrom: map[x] } else { name: x, value: std.toString(map[x]) } + if std.type(map[x]) == "object" + then { + name: x, + valueFrom: map[x], + } else { + // Let `null` value stay as such (vs string-ified) + name: x, + value: if map[x] == null then null else std.toString(map[x]), + } for x in std.objectFields(map) ], diff --git a/tests/Makefile b/tests/Makefile index deec850..e523384 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -4,7 +4,7 @@ K3S_V1_14=v0.8.0 K3S_V1_15=v0.9.0 K3S_V1_16=v1.0.1 K3S_V1_17=v1.17.2-k3s1 -K3S_V1_18=v1.18.2-rc4-k3s1 +K3S_V1_18=v1.18.2-k3s1 # # Since https://github.com/bitnami-labs/kube-libsonnet/issues/32 we support # kubernetes v1.14+ (Ingress apiVersion deprecated in v1.18, available since v1.14). diff --git a/tests/golden/test-simple-validate.pass.json b/tests/golden/test-simple-validate.pass.json index cf6c068..113c9b3 100644 --- a/tests/golden/test-simple-validate.pass.json +++ b/tests/golden/test-simple-validate.pass.json @@ -153,6 +153,10 @@ "name": "foo-secret" } } + }, + { + "name": "other_key", + "value": null } ], "image": "nginx:1.12", @@ -273,6 +277,10 @@ "name": "foo-secret" } } + }, + { + "name": "other_key", + "value": null } ], "image": "nginx:1.12", @@ -541,6 +549,10 @@ "name": "foo-secret" } } + }, + { + "name": "other_key", + "value": null } ], "image": "nginx:1.12", @@ -735,6 +747,10 @@ "name": "foo-secret" } } + }, + { + "name": "other_key", + "value": null } ], "image": "nginx:1.12", diff --git a/tests/test-simple-validate.pass.jsonnet b/tests/test-simple-validate.pass.jsonnet index 3b9240c..017bee0 100644 --- a/tests/test-simple-validate.pass.jsonnet +++ b/tests/test-simple-validate.pass.jsonnet @@ -66,6 +66,7 @@ local stack = { image: "nginx:1.12", env_+: { my_secret: kube.SecretKeyRef($.secret, "sec_key"), + other_key: null, }, ports_+: { http: { containerPort: 80 }, diff --git a/tests/tmp-rancher/root/etc/k3s.yaml b/tests/tmp-rancher/root/etc/k3s.yaml deleted file mode 100644 index e69de29..0000000