--- # yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json suite: container - fields - envFrom templates: - common.yaml values: - ../_values/controllers_main_default_container.yaml tests: - it: default should pass documentSelector: path: $[?(@.kind == "Deployment")].metadata.name value: release-name asserts: - notExists: path: spec.template.spec.containers[0].envFrom - it: explicit envFrom should pass set: controllers.main.containers.main.envFrom: - secretRef: name: myCustomSecret prefix: test - configMapRef: name: myCustomConfig documentSelector: path: $[?(@.kind == "Deployment")].metadata.name value: release-name asserts: - equal: path: spec.template.spec.containers[0].envFrom[0] value: secretRef: name: myCustomSecret prefix: test - equal: path: spec.template.spec.containers[0].envFrom[1] value: configMapRef: name: myCustomConfig - it: envFrom from defaultContainerOptions should pass set: controllers.main.defaultContainerOptions: envFrom: - secretRef: name: myCustomSecret prefix: test - configMapRef: name: myCustomConfig documentSelector: path: $[?(@.kind == "Deployment")].metadata.name value: release-name asserts: - equal: path: spec.template.spec.containers[0].envFrom[0] value: secretRef: name: myCustomSecret prefix: test - equal: path: spec.template.spec.containers[0].envFrom[1] value: configMapRef: name: myCustomConfig - it: envFrom from defaultContainerOptions with container override should pass set: controllers.main.defaultContainerOptions: envFrom: - secretRef: name: myCustomSecret prefix: test - configMapRef: name: myCustomConfig controllers.main.containers.main.envFrom: - secretRef: name: myCustomSecretOverride prefix: test documentSelector: path: $[?(@.kind == "Deployment")].metadata.name value: release-name asserts: - equal: path: spec.template.spec.containers[0].envFrom[0] value: secretRef: name: myCustomSecretOverride prefix: test - notExists: path: spec.template.spec.containers[0].envFrom[1] - it: envFrom configmap identifier reference should pass set: controllers.main.containers.main.envFrom: - configMap: config prefix: test - configMapRef: identifier: config configMaps: config: data: test: test documentSelector: path: $[?(@.kind == "Deployment")].metadata.name value: release-name asserts: - equal: path: spec.template.spec.containers[0].envFrom[0] value: configMapRef: name: release-name prefix: test - equal: path: spec.template.spec.containers[0].envFrom[1] value: configMapRef: name: release-name - it: envFrom Secret identifier reference should pass set: controllers.main.containers.main.envFrom: - secret: secret prefix: test - secretRef: identifier: secret prefix: test secrets: secret: stringData: test: test documentSelector: path: $[?(@.kind == "Deployment")].metadata.name value: release-name asserts: - equal: path: spec.template.spec.containers[0].envFrom[0] value: secretRef: name: release-name prefix: test - equal: path: spec.template.spec.containers[0].envFrom[1] value: secretRef: name: release-name prefix: test - it: envFrom with templated name reference should pass set: controllers.main.containers.main.envFrom: - configMap: "{{ .Release.Name }}-config" - configMapRef: name: "{{ .Release.Name }}-config2" - secret: "{{ .Release.Name }}-secret" - secretRef: name: "{{ .Release.Name }}-secret2" documentSelector: path: $[?(@.kind == "Deployment")].metadata.name value: release-name asserts: - equal: path: spec.template.spec.containers[0].envFrom[0] value: configMapRef: name: RELEASE-NAME-config - equal: path: spec.template.spec.containers[0].envFrom[1] value: configMapRef: name: RELEASE-NAME-config2 - equal: path: spec.template.spec.containers[0].envFrom[2] value: secretRef: name: RELEASE-NAME-secret - equal: path: spec.template.spec.containers[0].envFrom[3] value: secretRef: name: RELEASE-NAME-secret2