suite: pod node selector test templates: - common.yaml release: name: test-release-name namespace: test-release-namespace tests: - it: should pass without default arch set set: podOptions: nodeSelector: kubernetes.io/arch: "" workload: workload-name1: enabled: true primary: true type: CronJob schedule: "*/1 * * * *" podSpec: {} asserts: - documentIndex: &cronJobDoc 0 isKind: of: CronJob - documentIndex: *cronJobDoc notExists: path: spec.jobTemplate.spec.template.spec.nodeSelector - it: should pass with empty nodeSelector set: podOptions: nodeSelector: {} workload: workload-name1: enabled: true primary: true type: CronJob schedule: "*/1 * * * *" podSpec: {} asserts: - documentIndex: *cronJobDoc equal: path: spec.jobTemplate.spec.template.spec.nodeSelector value: kubernetes.io/arch: amd64 - it: should pass with nodeSelector from "global" set: podOptions: nodeSelector: disk: ssd cpu: intel hasGPU: "true" workload: workload-name1: enabled: true primary: true type: CronJob schedule: "*/1 * * * *" podSpec: {} asserts: - documentIndex: *cronJobDoc equal: path: spec.jobTemplate.spec.template.spec.nodeSelector value: disk: ssd cpu: intel kubernetes.io/arch: amd64 hasGPU: "true" - it: should set nodeSelector to non-existing on DaemonSet with stopAll set: global: stopAll: true podOptions: nodeSelector: disk: ssd workload: workload-name1: enabled: true primary: true type: DaemonSet podSpec: {} asserts: - documentIndex: *cronJobDoc equal: path: spec.template.spec.nodeSelector value: non-existing: "true" - it: should not set nodeSelector to non-existent on non-DaemonSet with stopAll set: global: stopAll: true podOptions: nodeSelector: disk: ssd workload: workload-name1: enabled: true primary: true type: Deployment podSpec: {} asserts: - documentIndex: *cronJobDoc notEqual: path: spec.template.spec.nodeSelector value: non-existing: "true" - it: should pass with nodeSelector from "pod" set: podOptions: nodeSelector: disk: ssd cpu: intel hasGPU: "false" workload: workload-name1: enabled: true primary: true type: CronJob schedule: "*/1 * * * *" podSpec: nodeSelector: disk: hdd cpu: amd hasGPU: "true" asserts: - documentIndex: *cronJobDoc equal: path: spec.jobTemplate.spec.template.spec.nodeSelector value: disk: hdd cpu: amd hasGPU: "true" - it: should pass with nodeSelector from "pod" with tpl set: disk_type: hdd podOptions: nodeSelector: disk: ssd cpu: intel workload: workload-name1: enabled: true primary: true type: CronJob schedule: "*/1 * * * *" podSpec: nodeSelector: disk: "{{ .Values.disk_type }}" cpu: amd asserts: - documentIndex: *cronJobDoc equal: path: spec.jobTemplate.spec.template.spec.nodeSelector value: disk: hdd cpu: amd - it: should ignore with empty value on nodeSelector set: podOptions: nodeSelector: disk: "" workload: workload-name1: enabled: true primary: true type: CronJob schedule: "*/1 * * * *" podSpec: {} asserts: - documentIndex: *cronJobDoc equal: path: spec.jobTemplate.spec.template.spec.nodeSelector value: kubernetes.io/arch: amd64