feat(argo-rollouts): Support LoadBalancer settings for dashboard Service (#1074)

* feat(argo-rollouts): +LB service.type for dashboard svc

Signed-off-by: Maciej Lasyk <maciej@lasyk.info>

* Apply changes from code review

Signed-off-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com>

Co-authored-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com>
This commit is contained in:
Maciej Lasyk 2022-01-05 13:31:55 +01:00 committed by GitHub
parent daa6501137
commit f518712c33
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 2 deletions

View file

@ -2,7 +2,7 @@ apiVersion: v2
appVersion: "v1.1.0" appVersion: "v1.1.0"
description: A Helm chart for Argo Rollouts description: A Helm chart for Argo Rollouts
name: argo-rollouts name: argo-rollouts
version: 2.7.0 version: 2.8.0
icon: https://argoproj.github.io/argo-rollouts/assets/logo.png icon: https://argoproj.github.io/argo-rollouts/assets/logo.png
home: https://github.com/argoproj/argo-helm home: https://github.com/argoproj/argo-helm
maintainers: maintainers:
@ -11,4 +11,5 @@ maintainers:
- name: jessesuen - name: jessesuen
annotations: annotations:
artifacthub.io/changes: | artifacthub.io/changes: |
- "[Added]: Support high availability (HA) mode for controller with multiple replicas" - "[Added]: Ability to specify LoadBalancer settings for dashboard svc"
- "[Added]: Ability to specify external IPs for dashboard svc"

View file

@ -72,6 +72,9 @@ If dashboard is installed by `--set dashboard.enabled=true`, checkout the argo-r
| dashboard.image.tag | string | `""` | Overrides the image tag (default is the chart appVersion) | | dashboard.image.tag | string | `""` | Overrides the image tag (default is the chart appVersion) |
| dashboard.extraArgs | list | `[]` | Additional arguments for the dashboard. A list of flags. | | dashboard.extraArgs | list | `[]` | Additional arguments for the dashboard. A list of flags. |
| dashboard.resources | object | `{}` | Resource limits and requests for the dashboard pods. | | dashboard.resources | object | `{}` | Resource limits and requests for the dashboard pods. |
| dashboard.service.externalIPs | list | `[]` | Dashboard service external IPs |
| 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.type | string | `ClusterIP` | Sets the type of the Service | | dashboard.service.type | string | `ClusterIP` | Sets the type of the Service |
| dashboard.tolerations | list | `[]` | [Tolerations for use with node taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/) | | dashboard.tolerations | list | `[]` | [Tolerations for use with node taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/) |
| dashboard.affinity | object | `{}` | [Assign custom affinity rules to the deployment](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/) | | dashboard.affinity | object | `{}` | [Assign custom affinity rules to the deployment](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/) |

View file

@ -11,6 +11,17 @@ metadata:
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}
{{- end }} {{- end }}
spec: spec:
{{- with .Values.dashboard.service.externalIPs }}
externalIPs: {{- toYaml . | nindent 4 }}
{{- end }}
{{- if eq .Values.dashboard.service.type "LoadBalancer" }}
{{- with .Values.dashboard.service.loadBalancerIP }}
loadBalancerIP: {{ . | quote }}
{{- end }}
{{- with .Values.dashboard.service.loadBalancerSourceRanges }}
loadBalancerSourceRanges: {{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}
type: {{ .Values.dashboard.service.type }} type: {{ .Values.dashboard.service.type }}
ports: ports:
- name: dashboard - name: dashboard

View file

@ -128,6 +128,12 @@ dashboard:
containerSecurityContext: {} containerSecurityContext: {}
service: service:
type: ClusterIP type: ClusterIP
# -- LoadBalancer will get created with the IP specified in this field
loadBalancerIP: ""
# -- Source IP ranges to allow access to service from
loadBalancerSourceRanges: []
# -- Dashboard service external IPs
externalIPs: []
serviceAccount: serviceAccount:
create: true create: true
annotations: {} annotations: {}