suite: pod runtime class name test templates: - common.yaml tests: - it: should pass with empty runtimeClassName set: podOptions: runtimeClassName: "" workload: workload-name1: enabled: true primary: true type: Deployment podSpec: {} asserts: - documentIndex: &deploymentDoc 0 isKind: of: Deployment - documentIndex: *deploymentDoc isNull: path: spec.template.spec.runtimeClassName - it: should pass with runtimeClassName from "global" set: podOptions: runtimeClassName: some-runtime-class workload: workload-name1: enabled: true primary: true type: Deployment podSpec: {} asserts: - documentIndex: *deploymentDoc equal: path: spec.template.spec.runtimeClassName value: some-runtime-class - it: should pass with runtimeClassName from "pod" set: podOptions: runtimeClassName: some-runtime-class workload: workload-name1: enabled: true primary: true type: Deployment podSpec: runtimeClassName: some-other-runtime-class asserts: - documentIndex: *deploymentDoc equal: path: spec.template.spec.runtimeClassName value: some-other-runtime-class - it: should pass with runtimeClassName from "pod" with tpl set: runtimeClass: some-other-runtime-class podOptions: runtimeClassName: some-runtime-class workload: workload-name1: enabled: true primary: true type: Deployment podSpec: runtimeClassName: "{{ .Values.runtimeClass }}" asserts: - documentIndex: *deploymentDoc equal: path: spec.template.spec.runtimeClassName value: some-other-runtime-class - it: should pass with runtimeClassName from ixChartContext with targetSelector set: scaleGPU: - gpu: key: value targetSelector: workload-name1: - container-name1 workload-name3: - container-name1 global: ixChartContext: addNvidiaRuntimeClass: true nvidiaRuntimeClassName: ix-runtime podOptions: runtimeClassName: some-class workload: workload-name1: enabled: true primary: true type: Deployment podSpec: runtimeClassName: some-other-class workload-name2: enabled: true primary: false type: Deployment podSpec: runtimeClassName: some-class workload-name3: enabled: true primary: false type: Deployment podSpec: runtimeClassName: some-class asserts: - documentIndex: *deploymentDoc equal: path: spec.template.spec.runtimeClassName value: ix-runtime - documentIndex: &deploymentDoc 1 isKind: of: Deployment - documentIndex: *deploymentDoc equal: path: spec.template.spec.runtimeClassName value: some-class - documentIndex: &otherDeploymentDoc 2 isKind: of: Deployment - documentIndex: *otherDeploymentDoc equal: path: spec.template.spec.runtimeClassName value: ix-runtime - it: should pass with runtimeClassName from ixChartContext without targetSelector (on primary workload) set: scaleGPU: - gpu: key: value global: ixChartContext: addNvidiaRuntimeClass: true nvidiaRuntimeClassName: ix-runtime workload: workload-name1: enabled: true primary: true type: Job podSpec: restartPolicy: Never runtimeClassName: some-other-class workload-name2: enabled: true primary: false type: CronJob schedule: "* * * * *" podSpec: restartPolicy: Never asserts: - documentIndex: &jobDoc 0 isKind: of: Job - documentIndex: *jobDoc equal: path: spec.template.spec.runtimeClassName value: ix-runtime - documentIndex: &cronJobDoc 1 isKind: of: CronJob - documentIndex: *cronJobDoc isNull: path: spec.jobTemplate.spec.template.spec.runtimeClassName - it: should pass with runtimeClassName not set from ixChartContext without gpu value set: scaleGPU: - gpu: {} targetSelector: workload-name1: - container-name1 global: ixChartContext: addNvidiaRuntimeClass: true nvidiaRuntimeClassName: ix-runtime workload: workload-name1: enabled: true primary: true type: Job podSpec: restartPolicy: Never runtimeClassName: some-other-class asserts: - documentIndex: *jobDoc isKind: of: Job - documentIndex: *jobDoc equal: path: spec.template.spec.runtimeClassName value: some-other-class - it: should not add runtimeClassName with gpu value 0 set: scaleGPU: - gpu: key: 0 global: ixChartContext: addNvidiaRuntimeClass: true nvidiaRuntimeClassName: ix-runtime workload: workload-name1: enabled: true primary: true type: Deployment podSpec: {} asserts: - documentIndex: &deploymentDoc 0 isNull: path: spec.template.spec.runtimeClassName