From d1f921303dceea78e07d466e7439c69ace9f04fe Mon Sep 17 00:00:00 2001 From: Rakesh Bajpayee <153479979+Helion55@users.noreply.github.com> Date: Thu, 30 Oct 2025 11:34:57 +0530 Subject: [PATCH 1/2] Daskgateway deployment with Helm charts/kustomize --- .../stages/kubernetes_daskgateway/__init__.py | 45 +++++++++++++++++++ .../template/kustomization.yaml.tmpl | 11 +++++ .../template/values.yaml | 30 +++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 src/_nebari/stages/kubernetes_daskgateway/__init__.py create mode 100644 src/_nebari/stages/kubernetes_daskgateway/template/kustomization.yaml.tmpl create mode 100644 src/_nebari/stages/kubernetes_daskgateway/template/values.yaml diff --git a/src/_nebari/stages/kubernetes_daskgateway/__init__.py b/src/_nebari/stages/kubernetes_daskgateway/__init__.py new file mode 100644 index 000000000..0a2fa501e --- /dev/null +++ b/src/_nebari/stages/kubernetes_daskgateway/__init__.py @@ -0,0 +1,45 @@ +import contextlib +from typing import Any, Dict, List, Type + +from _nebari.stages.base import NebariKustomizeStage +from nebari import schema +from nebari.hookspecs import NebariStage, hookimpl + + +class InputSchema(schema.Base): + pass + + +class OutputSchema(schema.Base): + pass + + +class DaskGatewayStage(NebariKustomizeStage): + name = "10-kubernetes-daskgateway" + priority = 100 + + input_schema = InputSchema + output_schema = OutputSchema + + @property + def kustomize_vars(self): + return { + "namespace": self.config.namespace, + "daskgateway_helm_version": self.config.monitoring.healthchecks.daskgateway_helm_version, + } + + @contextlib.contextmanager + def deploy( + self, stage_outputs: Dict[str, Dict[str, Any]], disable_prompt: bool = False + ): + if self.config.monitoring.healthchecks.enabled: + with super().deploy(stage_outputs, disable_prompt): + yield + else: + with self.destroy(stage_outputs, {}): + yield + + +@hookimpl +def nebari_stage() -> List[Type[NebariStage]]: + return [DaskGatewayStage] diff --git a/src/_nebari/stages/kubernetes_daskgateway/template/kustomization.yaml.tmpl b/src/_nebari/stages/kubernetes_daskgateway/template/kustomization.yaml.tmpl new file mode 100644 index 000000000..3987e2c37 --- /dev/null +++ b/src/_nebari/stages/kubernetes_daskgateway/template/kustomization.yaml.tmpl @@ -0,0 +1,11 @@ +# kustomization.yaml +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +helmCharts: +- name: daskgateway + repo: https://helm.dask.org/ + releaseName: daskgateway + namespace: {{ namespace }} + version: "{{ daskgateway_helm_version }}" + valuesFile: values.yaml \ No newline at end of file diff --git a/src/_nebari/stages/kubernetes_daskgateway/template/values.yaml b/src/_nebari/stages/kubernetes_daskgateway/template/values.yaml new file mode 100644 index 000000000..42755327a --- /dev/null +++ b/src/_nebari/stages/kubernetes_daskgateway/template/values.yaml @@ -0,0 +1,30 @@ +metadata: + name: ${var.name}-daskgateway-gateway + namespace: var.namespace + +spec: + replicas: 1 + selector: + match_labels: + app.kubernetes.io/component: dask-gateway-gateway + + template: + metadata: + + labels: + app.kubernetes.io/component: dask-gateway-gateway + + annotations: + checksum/config-map: sha256(jsonencode(kubernetes_config_map.gateway.data)) + checksum/secret: sha256(jsonencode(kubernetes_secret.gateway.data)) + + spec: + affinity: + node_affinity: + required_during_scheduling_ignored_during_execution: + node_selector_term: + match_expressions: + key: var.general-node-group.key + operator: In + values: var.general-node-group.value + From f8fad3f23e374cb59cc42dd9540eee0ef3eac759 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 30 Oct 2025 06:07:24 +0000 Subject: [PATCH 2/2] [pre-commit.ci] Apply automatic pre-commit fixes --- .../template/kustomization.yaml.tmpl | 2 +- .../kubernetes_daskgateway/template/values.yaml | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/_nebari/stages/kubernetes_daskgateway/template/kustomization.yaml.tmpl b/src/_nebari/stages/kubernetes_daskgateway/template/kustomization.yaml.tmpl index 3987e2c37..a43afec50 100644 --- a/src/_nebari/stages/kubernetes_daskgateway/template/kustomization.yaml.tmpl +++ b/src/_nebari/stages/kubernetes_daskgateway/template/kustomization.yaml.tmpl @@ -8,4 +8,4 @@ helmCharts: releaseName: daskgateway namespace: {{ namespace }} version: "{{ daskgateway_helm_version }}" - valuesFile: values.yaml \ No newline at end of file + valuesFile: values.yaml diff --git a/src/_nebari/stages/kubernetes_daskgateway/template/values.yaml b/src/_nebari/stages/kubernetes_daskgateway/template/values.yaml index 42755327a..435ddea0d 100644 --- a/src/_nebari/stages/kubernetes_daskgateway/template/values.yaml +++ b/src/_nebari/stages/kubernetes_daskgateway/template/values.yaml @@ -7,17 +7,17 @@ spec: selector: match_labels: app.kubernetes.io/component: dask-gateway-gateway - + template: metadata: - - labels: + + labels: app.kubernetes.io/component: dask-gateway-gateway - + annotations: checksum/config-map: sha256(jsonencode(kubernetes_config_map.gateway.data)) checksum/secret: sha256(jsonencode(kubernetes_secret.gateway.data)) - + spec: affinity: node_affinity: @@ -27,4 +27,3 @@ spec: key: var.general-node-group.key operator: In values: var.general-node-group.value -