From 239072f543d0b4474c3f455a05a5a2fe4be84509 Mon Sep 17 00:00:00 2001 From: ffais Date: Wed, 9 Aug 2023 11:47:24 +0200 Subject: [PATCH 1/4] add support for NodePort service type in Helm chart --- helm/templates/service.yaml | 2 ++ helm/values.yaml | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/helm/templates/service.yaml b/helm/templates/service.yaml index 60dd5fe931dfa..6bf1440d57331 100644 --- a/helm/templates/service.yaml +++ b/helm/templates/service.yaml @@ -16,11 +16,13 @@ spec: port: 80 targetPort: "http" protocol: TCP + {{- if eq .Values.coder.service.type "NodePort" }}nodePort: {{ .Values.service.httpNodePort }}{{ end }} {{- if eq (include "coder.tlsEnabled" .) "true" }} - name: "https" port: 443 targetPort: "https" protocol: TCP + {{- if eq .Values.coder.service.type "NodePort" }}nodePort: {{ .Values.service.httpsNodePort }}{{ end }} {{- end }} {{- if eq "LoadBalancer" .Values.coder.service.type }} {{- with .Values.coder.service.loadBalancerIP }} diff --git a/helm/values.yaml b/helm/values.yaml index 43d317507d609..7ee9cf732e1cf 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -241,6 +241,12 @@ coder: # coder.service.annotations -- The service annotations. See: # https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer annotations: {} + # coder.service.httpNodePort -- Must be set if coder.service.type is set to NodePort. If not set by default and for convenience, + # the Kubernetes control plane will allocate a port from a range (default: 30000-32767) + httpNodePort: "" + # coder.service.httpsNodePort -- Must be set if coder.service.type is set to NodePort. If not set by default and for convenience, + # the Kubernetes control plane will allocate a port from a range (default: 30000-32767) + httpsNodePort: "" # coder.ingress -- The Ingress object to expose for Coder. ingress: From ac46d4416197257f2b20ebc15f1bac0d29c0cd7d Mon Sep 17 00:00:00 2001 From: ffais Date: Wed, 9 Aug 2023 13:58:26 +0200 Subject: [PATCH 2/4] fix nodeport values --- helm/templates/service.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/helm/templates/service.yaml b/helm/templates/service.yaml index 6bf1440d57331..3507b4d7831ae 100644 --- a/helm/templates/service.yaml +++ b/helm/templates/service.yaml @@ -16,13 +16,13 @@ spec: port: 80 targetPort: "http" protocol: TCP - {{- if eq .Values.coder.service.type "NodePort" }}nodePort: {{ .Values.service.httpNodePort }}{{ end }} + {{ if eq .Values.coder.service.type "NodePort" }}nodePort: {{ .Values.coder.service.httpNodePort }}{{ end }} {{- if eq (include "coder.tlsEnabled" .) "true" }} - name: "https" port: 443 targetPort: "https" protocol: TCP - {{- if eq .Values.coder.service.type "NodePort" }}nodePort: {{ .Values.service.httpsNodePort }}{{ end }} + {{ if eq .Values.coder.service.type "NodePort" }}nodePort: {{ .Values.coder.service.httpsNodePort }}{{ end }} {{- end }} {{- if eq "LoadBalancer" .Values.coder.service.type }} {{- with .Values.coder.service.loadBalancerIP }} From a78f88ed0211551216f7427f533c370249915607 Mon Sep 17 00:00:00 2001 From: Eric Date: Wed, 9 Aug 2023 19:37:05 +0000 Subject: [PATCH 3/4] formatting & make update-golden-files --- helm/templates/service.yaml | 8 ++++++-- helm/tests/testdata/command.golden | 1 + helm/tests/testdata/command_args.golden | 1 + helm/tests/testdata/default_values.golden | 1 + helm/tests/testdata/labels_annotations.golden | 1 + helm/tests/testdata/sa.golden | 1 + helm/tests/testdata/tls.golden | 2 ++ helm/tests/testdata/workspace_proxy.golden | 1 + helm/values.yaml | 8 ++++---- 9 files changed, 18 insertions(+), 6 deletions(-) diff --git a/helm/templates/service.yaml b/helm/templates/service.yaml index 3507b4d7831ae..1881f992a695e 100644 --- a/helm/templates/service.yaml +++ b/helm/templates/service.yaml @@ -16,13 +16,17 @@ spec: port: 80 targetPort: "http" protocol: TCP - {{ if eq .Values.coder.service.type "NodePort" }}nodePort: {{ .Values.coder.service.httpNodePort }}{{ end }} + {{ if eq .Values.coder.service.type "NodePort" }} + nodePort: {{ .Values.coder.service.httpNodePort }} + {{ end }} {{- if eq (include "coder.tlsEnabled" .) "true" }} - name: "https" port: 443 targetPort: "https" protocol: TCP - {{ if eq .Values.coder.service.type "NodePort" }}nodePort: {{ .Values.coder.service.httpsNodePort }}{{ end }} + {{ if eq .Values.coder.service.type "NodePort" }} + nodePort: {{ .Values.coder.service.httpsNodePort }} + {{ end }} {{- end }} {{- if eq "LoadBalancer" .Values.coder.service.type }} {{- with .Values.coder.service.loadBalancerIP }} diff --git a/helm/tests/testdata/command.golden b/helm/tests/testdata/command.golden index 616971e98d458..1944a2389c8ad 100644 --- a/helm/tests/testdata/command.golden +++ b/helm/tests/testdata/command.golden @@ -91,6 +91,7 @@ spec: port: 80 targetPort: "http" protocol: TCP + externalTrafficPolicy: "Cluster" selector: app.kubernetes.io/name: coder diff --git a/helm/tests/testdata/command_args.golden b/helm/tests/testdata/command_args.golden index 92e87fd58097c..271bc017a7e99 100644 --- a/helm/tests/testdata/command_args.golden +++ b/helm/tests/testdata/command_args.golden @@ -91,6 +91,7 @@ spec: port: 80 targetPort: "http" protocol: TCP + externalTrafficPolicy: "Cluster" selector: app.kubernetes.io/name: coder diff --git a/helm/tests/testdata/default_values.golden b/helm/tests/testdata/default_values.golden index cb1988e1ab3e9..4602a1e9eaa21 100644 --- a/helm/tests/testdata/default_values.golden +++ b/helm/tests/testdata/default_values.golden @@ -91,6 +91,7 @@ spec: port: 80 targetPort: "http" protocol: TCP + externalTrafficPolicy: "Cluster" selector: app.kubernetes.io/name: coder diff --git a/helm/tests/testdata/labels_annotations.golden b/helm/tests/testdata/labels_annotations.golden index e6f85d0dfa476..08c299b018883 100644 --- a/helm/tests/testdata/labels_annotations.golden +++ b/helm/tests/testdata/labels_annotations.golden @@ -91,6 +91,7 @@ spec: port: 80 targetPort: "http" protocol: TCP + externalTrafficPolicy: "Cluster" selector: app.kubernetes.io/name: coder diff --git a/helm/tests/testdata/sa.golden b/helm/tests/testdata/sa.golden index 5e94a67818c62..ca2a60bf7a6fc 100644 --- a/helm/tests/testdata/sa.golden +++ b/helm/tests/testdata/sa.golden @@ -91,6 +91,7 @@ spec: port: 80 targetPort: "http" protocol: TCP + externalTrafficPolicy: "Cluster" selector: app.kubernetes.io/name: coder diff --git a/helm/tests/testdata/tls.golden b/helm/tests/testdata/tls.golden index 8ef85d138f722..a647896ab93b0 100644 --- a/helm/tests/testdata/tls.golden +++ b/helm/tests/testdata/tls.golden @@ -91,10 +91,12 @@ spec: port: 80 targetPort: "http" protocol: TCP + - name: "https" port: 443 targetPort: "https" protocol: TCP + externalTrafficPolicy: "Cluster" selector: app.kubernetes.io/name: coder diff --git a/helm/tests/testdata/workspace_proxy.golden b/helm/tests/testdata/workspace_proxy.golden index 88e0213be559d..50becbd7892f6 100644 --- a/helm/tests/testdata/workspace_proxy.golden +++ b/helm/tests/testdata/workspace_proxy.golden @@ -91,6 +91,7 @@ spec: port: 80 targetPort: "http" protocol: TCP + externalTrafficPolicy: "Cluster" selector: app.kubernetes.io/name: coder diff --git a/helm/values.yaml b/helm/values.yaml index 7ee9cf732e1cf..0c685a152b98d 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -241,11 +241,11 @@ coder: # coder.service.annotations -- The service annotations. See: # https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer annotations: {} - # coder.service.httpNodePort -- Must be set if coder.service.type is set to NodePort. If not set by default and for convenience, - # the Kubernetes control plane will allocate a port from a range (default: 30000-32767) + # coder.service.httpNodePort -- Enabled if coder.service.type is set to NodePort. + # If not set, Kubernetes will allocate a port from the default range, 30000-32767. httpNodePort: "" - # coder.service.httpsNodePort -- Must be set if coder.service.type is set to NodePort. If not set by default and for convenience, - # the Kubernetes control plane will allocate a port from a range (default: 30000-32767) + # coder.service.httpsNodePort -- Enabled if coder.service.type is set to NodePort. + # If not set, Kubernetes will allocate a port from the default range, 30000-32767. httpsNodePort: "" # coder.ingress -- The Ingress object to expose for Coder. From d08221a777ef1d9f421a20f5597d8c25e7c04974 Mon Sep 17 00:00:00 2001 From: Eric Date: Thu, 10 Aug 2023 23:42:43 +0000 Subject: [PATCH 4/4] update-golden-files --- helm/coder/tests/testdata/provisionerd_psk.golden | 1 + helm/coder/tests/testdata/tls.golden | 2 ++ helm/coder/tests/testdata/workspace_proxy.golden | 1 + 3 files changed, 4 insertions(+) diff --git a/helm/coder/tests/testdata/provisionerd_psk.golden b/helm/coder/tests/testdata/provisionerd_psk.golden index f8cfe550eefff..4dcde1eabe0fc 100644 --- a/helm/coder/tests/testdata/provisionerd_psk.golden +++ b/helm/coder/tests/testdata/provisionerd_psk.golden @@ -90,6 +90,7 @@ spec: port: 80 targetPort: "http" protocol: TCP + externalTrafficPolicy: "Cluster" selector: app.kubernetes.io/name: coder diff --git a/helm/coder/tests/testdata/tls.golden b/helm/coder/tests/testdata/tls.golden index 75f0794a7945d..fccbbec0a2aa2 100644 --- a/helm/coder/tests/testdata/tls.golden +++ b/helm/coder/tests/testdata/tls.golden @@ -90,10 +90,12 @@ spec: port: 80 targetPort: "http" protocol: TCP + - name: "https" port: 443 targetPort: "https" protocol: TCP + externalTrafficPolicy: "Cluster" selector: app.kubernetes.io/name: coder diff --git a/helm/coder/tests/testdata/workspace_proxy.golden b/helm/coder/tests/testdata/workspace_proxy.golden index 6d03e49ff794e..096b40978aac0 100644 --- a/helm/coder/tests/testdata/workspace_proxy.golden +++ b/helm/coder/tests/testdata/workspace_proxy.golden @@ -90,6 +90,7 @@ spec: port: 80 targetPort: "http" protocol: TCP + externalTrafficPolicy: "Cluster" selector: app.kubernetes.io/name: coder