Explorar o código

Handle edge case of empty values converting to nil (#1114)

Stavros Kois %!s(int64=2) %!d(string=hai) anos
pai
achega
48c5adcfd1

+ 7 - 0
library/common-test/tests/container/env_test.yaml

@@ -65,6 +65,7 @@ tests:
                     fieldRef:
                       fieldPath: metadata.name
                   VAR8: ""
+                  VAR9: false
     asserts:
       - documentIndex: &deploymentDoc 2
         isKind:
@@ -134,6 +135,12 @@ tests:
           content:
             name: VAR8
             value: ""
+      - documentIndex: *deploymentDoc
+        contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: VAR9
+            value: "false"
 
   # Failures
   - it: it should fail invalid ref

+ 1 - 1
library/common/Chart.yaml

@@ -2,7 +2,7 @@ apiVersion: v2
 name: common
 description: A library chart for iX Official Catalog
 type: library
-version: 1.0.4
+version: 1.0.5
 appVersion: v1
 annotations:
   title: Common Library Chart

+ 2 - 1
library/common/templates/lib/container/_env.tpl

@@ -13,7 +13,8 @@ objectData: The object data to be used to render the container.
 - name: {{ $k | quote }}
     {{- if not (kindIs "map" $v) -}}
       {{- $value := "" -}}
-      {{- if $v -}} {{/* Only tpl non-empty values */}}
+      {{/* Only tpl valid values, there are cases that empty values after merges can be "<nil>" */}}
+      {{- if not (kindIs "invalid" $v) -}}
         {{- $value = tpl (toString $v) $rootCtx -}}
       {{- end }}
   value: {{ $value | quote }}