diff --git a/charts/sessionspaces/Chart.yaml b/charts/sessionspaces/Chart.yaml index 0bf8004ea..3133f4fa2 100644 --- a/charts/sessionspaces/Chart.yaml +++ b/charts/sessionspaces/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: sessionspaces description: Namespace controller for creating session namespaces type: application -version: 0.3.19 +version: 0.3.20 appVersion: 0.1.3 dependencies: - name: common diff --git a/charts/sessionspaces/test-policy/pod-securitycontext/chainsaw-test.yaml b/charts/sessionspaces/test-policy/pod-securitycontext/chainsaw-test.yaml index 98a2e7a08..912594695 100644 --- a/charts/sessionspaces/test-policy/pod-securitycontext/chainsaw-test.yaml +++ b/charts/sessionspaces/test-policy/pod-securitycontext/chainsaw-test.yaml @@ -93,6 +93,8 @@ spec: kind: MPIJob metadata: name: test-mpijob + labels: + kueue.x-k8s.io/queue-name: default-queue ownerReferences: - name: test-workflow kind: Workflow diff --git a/charts/workflows/Chart.yaml b/charts/workflows/Chart.yaml index 28d9fac3f..7c778be37 100644 --- a/charts/workflows/Chart.yaml +++ b/charts/workflows/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: workflows description: Data Analysis workflow orchestration type: application -version: 0.13.38 +version: 0.13.39 dependencies: - name: argo-workflows repository: https://argoproj.github.io/argo-helm diff --git a/charts/workflows/templates/default-queuename-clusterpolicy.yaml b/charts/workflows/templates/default-queuename-clusterpolicy.yaml index e9ca8f54e..46b069fa8 100644 --- a/charts/workflows/templates/default-queuename-clusterpolicy.yaml +++ b/charts/workflows/templates/default-queuename-clusterpolicy.yaml @@ -43,3 +43,22 @@ spec: operator: AnyNotIn value: - default-queue + + - name: validate-mpijob-queuename + match: + any: + - resources: + kinds: + - kubeflow.org/*/MPIJob + operations: + - CREATE + - UPDATE + validate: + message: "The label kueue.x-k8s.io/queue-name must be default-queue" + deny: + conditions: + all: + - key: "{{ `{{ request.object.metadata.labels.\"kueue.x-k8s.io/queue-name\" || '' }}` }}" + operator: AnyNotIn + value: + - default-queue diff --git a/charts/workflows/test-policy/queue-name/chainsaw-test.yaml b/charts/workflows/test-policy/queue-name/chainsaw-test.yaml index c41901356..dde10a120 100644 --- a/charts/workflows/test-policy/queue-name/chainsaw-test.yaml +++ b/charts/workflows/test-policy/queue-name/chainsaw-test.yaml @@ -62,3 +62,96 @@ spec: podMetadata: labels: kueue.x-k8s.io/queue-name: default-queue + + - name: mpijob-missing-queue-is-rejected + try: + - apply: + expect: + - check: + ($error != null): true + resource: + apiVersion: kubeflow.org/v2beta1 + kind: MPIJob + metadata: + name: mpijob-missing-queue + spec: + mpiReplicaSpecs: + Launcher: + replicas: 1 + template: + spec: + containers: + - name: launcher + image: docker.io/library/busybox:latest + Worker: + replicas: 1 + template: + spec: + containers: + - name: worker + image: docker.io/library/busybox:latest + + - name: mpijob-default-queue-is-allowed + try: + - apply: + resource: + apiVersion: kubeflow.org/v2beta1 + kind: MPIJob + metadata: + name: mpijob-default-queue + labels: + kueue.x-k8s.io/queue-name: default-queue + spec: + mpiReplicaSpecs: + Launcher: + replicas: 1 + template: + spec: + containers: + - name: launcher + image: docker.io/library/busybox:latest + Worker: + replicas: 1 + template: + spec: + containers: + - name: worker + image: docker.io/library/busybox:latest + - assert: + resource: + apiVersion: kubeflow.org/v2beta1 + kind: MPIJob + metadata: + name: mpijob-default-queue + labels: + kueue.x-k8s.io/queue-name: default-queue + + - name: mpijob-custom-queue-is-rejected + try: + - apply: + expect: + - check: + ($error != null): true + resource: + apiVersion: kubeflow.org/v2beta1 + kind: MPIJob + metadata: + name: mpijob-custom-queue + labels: + kueue.x-k8s.io/queue-name: custom-queue + spec: + mpiReplicaSpecs: + Launcher: + replicas: 1 + template: + spec: + containers: + - name: launcher + image: docker.io/library/busybox:latest + Worker: + replicas: 1 + template: + spec: + containers: + - name: worker + image: docker.io/library/busybox:latest