From 5a693240da907170af56a7e4e3d7d62d09e30404 Mon Sep 17 00:00:00 2001 From: Kiril Velikov Date: Fri, 18 Aug 2023 20:12:43 +0000 Subject: [PATCH] feat(helm-chart): add support for loadBalancerClass Insert loadBalancerClass in the service manifest. Required for clusters with multiple loadbalancers. --- deploy/charts/emqx-enterprise/README.md | 1 + deploy/charts/emqx-enterprise/templates/service.yaml | 3 +++ deploy/charts/emqx-enterprise/values.yaml | 6 +++++- deploy/charts/emqx/README.md | 1 + deploy/charts/emqx/templates/service.yaml | 3 +++ deploy/charts/emqx/values.yaml | 6 +++++- 6 files changed, 18 insertions(+), 2 deletions(-) diff --git a/deploy/charts/emqx-enterprise/README.md b/deploy/charts/emqx-enterprise/README.md index b11159c84..d3977ceac 100644 --- a/deploy/charts/emqx-enterprise/README.md +++ b/deploy/charts/emqx-enterprise/README.md @@ -73,6 +73,7 @@ The following table lists the configurable parameters of the emqx chart and thei | `service.nodePorts.ws` | Kubernetes node port for WebSocket/HTTP. | nil | | `service.nodePorts.wss` | Kubernetes node port for WSS/HTTPS. | nil | | `service.nodePorts.dashboard` | Kubernetes node port for dashboard. | nil | +| `service.loadBalancerClass` | The load balancer implementation this Service belongs to | | | `service.loadBalancerIP` | loadBalancerIP for Service | nil | | `service.loadBalancerSourceRanges` | Address(es) that are allowed when service is LoadBalancer | [] | | `service.externalIPs` | ExternalIPs for the service | [] | diff --git a/deploy/charts/emqx-enterprise/templates/service.yaml b/deploy/charts/emqx-enterprise/templates/service.yaml index dea548653..525390a90 100644 --- a/deploy/charts/emqx-enterprise/templates/service.yaml +++ b/deploy/charts/emqx-enterprise/templates/service.yaml @@ -18,6 +18,9 @@ spec: externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | default "Cluster" }} {{- end }} {{- if eq .Values.service.type "LoadBalancer" }} + {{- if .Values.service.loadBalancerClass }} + loadBalancerClass: {{ .Values.service.loadBalancerClass }} + {{- end }} {{- if .Values.service.loadBalancerIP }} loadBalancerIP: {{ .Values.service.loadBalancerIP }} {{- end }} diff --git a/deploy/charts/emqx-enterprise/values.yaml b/deploy/charts/emqx-enterprise/values.yaml index 37fa56348..e830b81af 100644 --- a/deploy/charts/emqx-enterprise/values.yaml +++ b/deploy/charts/emqx-enterprise/values.yaml @@ -163,6 +163,10 @@ service: wss: dashboard: dashboardtls: + ## Specifies the load balancer implementation this Service belongs to. + ## Once set, it can not be changed. + ## + # loadBalancerClass: ## Set the LoadBalancer service type to internal only. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer ## @@ -245,7 +249,7 @@ ssl: useExisting: false existingName: emqx-tls dnsnames: [] - commonName: + commonName: issuer: name: letsencrypt-dns kind: ClusterIssuer diff --git a/deploy/charts/emqx/README.md b/deploy/charts/emqx/README.md index 0221f5114..d9e144f0c 100644 --- a/deploy/charts/emqx/README.md +++ b/deploy/charts/emqx/README.md @@ -74,6 +74,7 @@ The following table lists the configurable parameters of the emqx chart and thei | `service.nodePorts.ws` | Kubernetes node port for WebSocket/HTTP. | nil | | `service.nodePorts.wss` | Kubernetes node port for WSS/HTTPS. | nil | | `service.nodePorts.dashboard` | Kubernetes node port for dashboard. | nil | +| `service.loadBalancerClass` | The load balancer implementation this Service belongs to | | | `service.loadBalancerIP` | loadBalancerIP for Service | nil | | `service.loadBalancerSourceRanges` | Address(es) that are allowed when service is LoadBalancer | [] | | `service.externalIPs` | ExternalIPs for the service | [] | diff --git a/deploy/charts/emqx/templates/service.yaml b/deploy/charts/emqx/templates/service.yaml index dea548653..525390a90 100644 --- a/deploy/charts/emqx/templates/service.yaml +++ b/deploy/charts/emqx/templates/service.yaml @@ -18,6 +18,9 @@ spec: externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | default "Cluster" }} {{- end }} {{- if eq .Values.service.type "LoadBalancer" }} + {{- if .Values.service.loadBalancerClass }} + loadBalancerClass: {{ .Values.service.loadBalancerClass }} + {{- end }} {{- if .Values.service.loadBalancerIP }} loadBalancerIP: {{ .Values.service.loadBalancerIP }} {{- end }} diff --git a/deploy/charts/emqx/values.yaml b/deploy/charts/emqx/values.yaml index 791db5812..88cc6279f 100644 --- a/deploy/charts/emqx/values.yaml +++ b/deploy/charts/emqx/values.yaml @@ -163,6 +163,10 @@ service: wss: dashboard: dashboardtls: + ## Specifies the load balancer implementation this Service belongs to. + ## Once set, it can not be changed. + ## + # loadBalancerClass: ## Set the LoadBalancer service type to internal only. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer ## @@ -245,7 +249,7 @@ ssl: useExisting: false existingName: emqx-tls dnsnames: [] - commonName: + commonName: issuer: name: letsencrypt-dns kind: ClusterIssuer