diff --git a/stacks/aws/application/jupyter-web-app/configs/spawner_ui_config.yaml b/stacks/aws/application/jupyter-web-app/configs/spawner_ui_config.yaml index e8f822002..5924d5c36 100644 --- a/stacks/aws/application/jupyter-web-app/configs/spawner_ui_config.yaml +++ b/stacks/aws/application/jupyter-web-app/configs/spawner_ui_config.yaml @@ -117,6 +117,8 @@ spawnerFormDefaults: vendors: - limitsKey: "nvidia.com/gpu" uiName: "NVIDIA" + - limitsKey: "amd.com/gpu" + uiName: "AMD" # Values: "" or a `limits-key` from the vendors list vendor: "" readOnly: false @@ -130,3 +132,59 @@ spawnerFormDefaults: # - default-editor value: [] readOnly: false + affinityConfig: + # The default `configKey` from the options list + # If readonly, the default value will be the only option + value: "none" + # The list of available affinity configs + options: + - configKey: "none" + displayName: "None" + affinity: {} + # # (DESC) Pod gets an exclusive "n1-standard-2" Node + # # (TIP) set PreferNoSchedule taint on this node-pool + # # (TIP) enable cluster-autoscaler on this node-pool + # # (TIP) dont let users request more CPU/MEMORY than the size of this node + # - configKey: "exclusive__n1-standard-2" + # displayName: "Exclusive: n1-standard-2" + # affinity: + # # (Require) Node having label: `node_pool=notebook-n1-standard-2` + # nodeAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # nodeSelectorTerms: + # - matchExpressions: + # - key: "node_pool" + # operator: "In" + # values: + # - "notebook-n1-standard-2" + # # (Require) Node WITHOUT existing Pod having label: `notebook-name` + # podAntiAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # - labelSelector: + # matchExpressions: + # - key: "notebook-name" + # operator: "Exists" + # namespaces: [] + # topologyKey: "kubernetes.io/hostname" + readOnly: false + tolerationGroup: + # The default `groupKey` from the options list + # If readonly, the default value will be the only option + value: "none" + # The list of available tolerationGroup configs + options: + - groupKey: "none" + displayName: "None" + tolerations: [] + # - groupKey: "group_1" + # displayName: "Group 1: description" + # tolerations: + # - key: "key1" + # operator: "Equal" + # value: "value1" + # effect: "NoSchedule" + # - key: "key2" + # operator: "Equal" + # value: "value2" + # effect: "NoSchedule" + readOnly: false \ No newline at end of file diff --git a/tests/stacks/aws/application/jupyter-web-app/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml b/tests/stacks/aws/application/jupyter-web-app/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml index c44d85c43..d638ae690 100644 --- a/tests/stacks/aws/application/jupyter-web-app/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml +++ b/tests/stacks/aws/application/jupyter-web-app/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml @@ -42,5 +42,5 @@ spec: serviceAccountName: jupyter-web-app-service-account volumes: - configMap: - name: jupyter-web-app-jupyter-web-app-config-8fc6g84c8k + name: jupyter-web-app-jupyter-web-app-config-24bth2gbkc name: config-volume diff --git a/tests/stacks/aws/application/jupyter-web-app/test_data/expected/~g_v1_configmap_jupyter-web-app-jupyter-web-app-config-8fc6g84c8k.yaml b/tests/stacks/aws/application/jupyter-web-app/test_data/expected/~g_v1_configmap_jupyter-web-app-jupyter-web-app-config-24bth2gbkc.yaml similarity index 69% rename from tests/stacks/aws/application/jupyter-web-app/test_data/expected/~g_v1_configmap_jupyter-web-app-jupyter-web-app-config-8fc6g84c8k.yaml rename to tests/stacks/aws/application/jupyter-web-app/test_data/expected/~g_v1_configmap_jupyter-web-app-jupyter-web-app-config-24bth2gbkc.yaml index 66d1e39b3..a701dfa71 100644 --- a/tests/stacks/aws/application/jupyter-web-app/test_data/expected/~g_v1_configmap_jupyter-web-app-jupyter-web-app-config-8fc6g84c8k.yaml +++ b/tests/stacks/aws/application/jupyter-web-app/test_data/expected/~g_v1_configmap_jupyter-web-app-jupyter-web-app-config-24bth2gbkc.yaml @@ -1,6 +1,6 @@ apiVersion: v1 data: - spawner_ui_config.yaml: | + spawner_ui_config.yaml: |- # Configuration file for the Jupyter UI. # # Each Jupyter UI option is configured by two keys: 'value' and 'readOnly' @@ -120,6 +120,8 @@ data: vendors: - limitsKey: "nvidia.com/gpu" uiName: "NVIDIA" + - limitsKey: "amd.com/gpu" + uiName: "AMD" # Values: "" or a `limits-key` from the vendors list vendor: "" readOnly: false @@ -133,11 +135,67 @@ data: # - default-editor value: [] readOnly: false + affinityConfig: + # The default `configKey` from the options list + # If readonly, the default value will be the only option + value: "none" + # The list of available affinity configs + options: + - configKey: "none" + displayName: "None" + affinity: {} + # # (DESC) Pod gets an exclusive "n1-standard-2" Node + # # (TIP) set PreferNoSchedule taint on this node-pool + # # (TIP) enable cluster-autoscaler on this node-pool + # # (TIP) dont let users request more CPU/MEMORY than the size of this node + # - configKey: "exclusive__n1-standard-2" + # displayName: "Exclusive: n1-standard-2" + # affinity: + # # (Require) Node having label: `node_pool=notebook-n1-standard-2` + # nodeAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # nodeSelectorTerms: + # - matchExpressions: + # - key: "node_pool" + # operator: "In" + # values: + # - "notebook-n1-standard-2" + # # (Require) Node WITHOUT existing Pod having label: `notebook-name` + # podAntiAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # - labelSelector: + # matchExpressions: + # - key: "notebook-name" + # operator: "Exists" + # namespaces: [] + # topologyKey: "kubernetes.io/hostname" + readOnly: false + tolerationGroup: + # The default `groupKey` from the options list + # If readonly, the default value will be the only option + value: "none" + # The list of available tolerationGroup configs + options: + - groupKey: "none" + displayName: "None" + tolerations: [] + # - groupKey: "group_1" + # displayName: "Group 1: description" + # tolerations: + # - key: "key1" + # operator: "Equal" + # value: "value1" + # effect: "NoSchedule" + # - key: "key2" + # operator: "Equal" + # value: "value2" + # effect: "NoSchedule" + readOnly: false kind: ConfigMap metadata: annotations: {} labels: app: jupyter-web-app kustomize.component: jupyter-web-app - name: jupyter-web-app-jupyter-web-app-config-8fc6g84c8k + name: jupyter-web-app-jupyter-web-app-config-24bth2gbkc namespace: kubeflow diff --git a/tests/stacks/aws/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml b/tests/stacks/aws/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml index c44d85c43..d638ae690 100644 --- a/tests/stacks/aws/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml +++ b/tests/stacks/aws/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml @@ -42,5 +42,5 @@ spec: serviceAccountName: jupyter-web-app-service-account volumes: - configMap: - name: jupyter-web-app-jupyter-web-app-config-8fc6g84c8k + name: jupyter-web-app-jupyter-web-app-config-24bth2gbkc name: config-volume diff --git a/tests/stacks/aws/test_data/expected/~g_v1_configmap_jupyter-web-app-jupyter-web-app-config-8fc6g84c8k.yaml b/tests/stacks/aws/test_data/expected/~g_v1_configmap_jupyter-web-app-jupyter-web-app-config-24bth2gbkc.yaml similarity index 69% rename from tests/stacks/aws/test_data/expected/~g_v1_configmap_jupyter-web-app-jupyter-web-app-config-8fc6g84c8k.yaml rename to tests/stacks/aws/test_data/expected/~g_v1_configmap_jupyter-web-app-jupyter-web-app-config-24bth2gbkc.yaml index 66d1e39b3..a701dfa71 100644 --- a/tests/stacks/aws/test_data/expected/~g_v1_configmap_jupyter-web-app-jupyter-web-app-config-8fc6g84c8k.yaml +++ b/tests/stacks/aws/test_data/expected/~g_v1_configmap_jupyter-web-app-jupyter-web-app-config-24bth2gbkc.yaml @@ -1,6 +1,6 @@ apiVersion: v1 data: - spawner_ui_config.yaml: | + spawner_ui_config.yaml: |- # Configuration file for the Jupyter UI. # # Each Jupyter UI option is configured by two keys: 'value' and 'readOnly' @@ -120,6 +120,8 @@ data: vendors: - limitsKey: "nvidia.com/gpu" uiName: "NVIDIA" + - limitsKey: "amd.com/gpu" + uiName: "AMD" # Values: "" or a `limits-key` from the vendors list vendor: "" readOnly: false @@ -133,11 +135,67 @@ data: # - default-editor value: [] readOnly: false + affinityConfig: + # The default `configKey` from the options list + # If readonly, the default value will be the only option + value: "none" + # The list of available affinity configs + options: + - configKey: "none" + displayName: "None" + affinity: {} + # # (DESC) Pod gets an exclusive "n1-standard-2" Node + # # (TIP) set PreferNoSchedule taint on this node-pool + # # (TIP) enable cluster-autoscaler on this node-pool + # # (TIP) dont let users request more CPU/MEMORY than the size of this node + # - configKey: "exclusive__n1-standard-2" + # displayName: "Exclusive: n1-standard-2" + # affinity: + # # (Require) Node having label: `node_pool=notebook-n1-standard-2` + # nodeAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # nodeSelectorTerms: + # - matchExpressions: + # - key: "node_pool" + # operator: "In" + # values: + # - "notebook-n1-standard-2" + # # (Require) Node WITHOUT existing Pod having label: `notebook-name` + # podAntiAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # - labelSelector: + # matchExpressions: + # - key: "notebook-name" + # operator: "Exists" + # namespaces: [] + # topologyKey: "kubernetes.io/hostname" + readOnly: false + tolerationGroup: + # The default `groupKey` from the options list + # If readonly, the default value will be the only option + value: "none" + # The list of available tolerationGroup configs + options: + - groupKey: "none" + displayName: "None" + tolerations: [] + # - groupKey: "group_1" + # displayName: "Group 1: description" + # tolerations: + # - key: "key1" + # operator: "Equal" + # value: "value1" + # effect: "NoSchedule" + # - key: "key2" + # operator: "Equal" + # value: "value2" + # effect: "NoSchedule" + readOnly: false kind: ConfigMap metadata: annotations: {} labels: app: jupyter-web-app kustomize.component: jupyter-web-app - name: jupyter-web-app-jupyter-web-app-config-8fc6g84c8k + name: jupyter-web-app-jupyter-web-app-config-24bth2gbkc namespace: kubeflow