feat(argo-rollouts): add loadBalancerClass field for Service resource (#2772)

Most users of ArgoCD may use `Ingress` (and soon `HTTPRoute`), but for those who may want to use `Service` of type `LoadBalancer`, this would be useful.
The `loadBalancerClass` field would allow for a `CloudProvider` agnostic way of offloading the reconciliation for Kubernetes Service resources of type `LoadBalancer` to an external controller.

Signed-off-by: Gazal Gafoor <gazal.gafoor@rea-group.com>
Signed-off-by: Gazal <gazal.gafoor@rea-group.com>
Co-authored-by: Aikawa <yu.croco@gmail.com>
This commit is contained in:
Gazal 2024-08-31 20:12:52 +10:00 committed by GitHub
parent 777f5410c5
commit 2df52cba0e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 8 additions and 2 deletions

View file

@ -2,7 +2,7 @@ apiVersion: v2
appVersion: v1.7.2 appVersion: v1.7.2
description: A Helm chart for Argo Rollouts description: A Helm chart for Argo Rollouts
name: argo-rollouts name: argo-rollouts
version: 2.37.5 version: 2.37.6
home: https://github.com/argoproj/argo-helm home: https://github.com/argoproj/argo-helm
icon: https://argoproj.github.io/argo-rollouts/assets/logo.png icon: https://argoproj.github.io/argo-rollouts/assets/logo.png
keywords: keywords:
@ -19,4 +19,4 @@ annotations:
url: https://argoproj.github.io/argo-helm/pgp_keys.asc url: https://argoproj.github.io/argo-helm/pgp_keys.asc
artifacthub.io/changes: | artifacthub.io/changes: |
- kind: changed - kind: changed
description: Bump argo-rollouts to v1.7.2 description: add loadBalancerClass field for Service resources

View file

@ -182,6 +182,7 @@ For full list of changes please check ArtifactHub [changelog].
| dashboard.service.annotations | object | `{}` | Service annotations | | dashboard.service.annotations | object | `{}` | Service annotations |
| dashboard.service.externalIPs | list | `[]` | Dashboard service external IPs | | dashboard.service.externalIPs | list | `[]` | Dashboard service external IPs |
| dashboard.service.labels | object | `{}` | Service labels | | dashboard.service.labels | object | `{}` | Service labels |
| dashboard.service.loadBalancerClass | string | `""` | The class of the load balancer implementation |
| dashboard.service.loadBalancerIP | string | `""` | LoadBalancer will get created with the IP specified in this field | | dashboard.service.loadBalancerIP | string | `""` | LoadBalancer will get created with the IP specified in this field |
| dashboard.service.loadBalancerSourceRanges | list | `[]` | Source IP ranges to allow access to service from | | dashboard.service.loadBalancerSourceRanges | list | `[]` | Source IP ranges to allow access to service from |
| dashboard.service.nodePort | int | `nil` | Service nodePort | | dashboard.service.nodePort | int | `nil` | Service nodePort |

View file

@ -22,6 +22,9 @@ spec:
externalIPs: {{- toYaml . | nindent 4 }} externalIPs: {{- toYaml . | nindent 4 }}
{{- end }} {{- end }}
{{- if eq .Values.dashboard.service.type "LoadBalancer" }} {{- if eq .Values.dashboard.service.type "LoadBalancer" }}
{{- with .Values.dashboard.service.loadBalancerClass }}
loadBalancerClass: {{ . }}
{{- end }}
{{- with .Values.dashboard.service.loadBalancerIP }} {{- with .Values.dashboard.service.loadBalancerIP }}
loadBalancerIP: {{ . | quote }} loadBalancerIP: {{ . | quote }}
{{- end }} {{- end }}

View file

@ -356,6 +356,8 @@ dashboard:
service: service:
# -- Sets the type of the Service # -- Sets the type of the Service
type: ClusterIP type: ClusterIP
# -- The class of the load balancer implementation
loadBalancerClass: ""
# -- LoadBalancer will get created with the IP specified in this field # -- LoadBalancer will get created with the IP specified in this field
loadBalancerIP: "" loadBalancerIP: ""
# -- Source IP ranges to allow access to service from # -- Source IP ranges to allow access to service from