feat(argo-rollouts): Add possibility to configure healthz and metrics ports to be compatible with Istio

Signed-off-by: Yevhen Tienkaiev <hronom@gmail.com>
This commit is contained in:
Yevhen Tienkaiev 2023-05-19 14:53:13 +03:00
parent 321359359f
commit 74afb3021e
5 changed files with 21 additions and 22 deletions

View file

@ -2,7 +2,7 @@ apiVersion: v2
appVersion: v1.5.0 appVersion: v1.5.0
description: A Helm chart for Argo Rollouts description: A Helm chart for Argo Rollouts
name: argo-rollouts name: argo-rollouts
version: 2.28.0 version: 2.29.0
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:
@ -18,9 +18,5 @@ annotations:
fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252 fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252
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
description: Upgrade Argo Rollouts to v1.5.0
- kind: added - kind: added
description: Introduce chart signing description: Ability to configure healthz and metrics ports to be compatible with Istio
- kind: added
description: Ability to provide additional volumes and volumeMounts

View file

@ -75,12 +75,12 @@ For full list of changes please check ArtifactHub [changelog].
| containerSecurityContext | object | `{}` | Security Context to set on container level | | containerSecurityContext | object | `{}` | Security Context to set on container level |
| controller.affinity | object | `{}` | Assign custom [affinity] rules to the deployment | | controller.affinity | object | `{}` | Assign custom [affinity] rules to the deployment |
| controller.component | string | `"rollouts-controller"` | Value of label `app.kubernetes.io/component` | | controller.component | string | `"rollouts-controller"` | Value of label `app.kubernetes.io/component` |
| controller.containerPorts.healthz | int | `8080` | Healthz container port |
| controller.containerPorts.metrics | int | `8090` | Metrics container port |
| controller.createClusterRole | bool | `true` | flag to enable creation of cluster controller role (requires cluster RBAC) | | controller.createClusterRole | bool | `true` | flag to enable creation of cluster controller role (requires cluster RBAC) |
| controller.extraArgs | list | `[]` | Additional command line arguments to pass to rollouts-controller. A list of flags. | | controller.extraArgs | list | `[]` | Additional command line arguments to pass to rollouts-controller. A list of flags. |
| controller.extraContainers | list | `[]` | Literal yaml for extra containers to be added to controller deployment. | | controller.extraContainers | list | `[]` | Literal yaml for extra containers to be added to controller deployment. |
| controller.extraEnv | list | `[]` | Additional environment variables for rollouts-controller. A list of name/value maps. | | controller.extraEnv | list | `[]` | Additional environment variables for rollouts-controller. A list of name/value maps. |
| controller.healthz.port | int | `8080` | |
| controller.healthz.portName | string | `"healthz"` | |
| controller.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | | controller.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
| controller.image.registry | string | `"quay.io"` | Registry to use | | controller.image.registry | string | `"quay.io"` | Registry to use |
| controller.image.repository | string | `"argoproj/argo-rollouts"` | Repository to use | | controller.image.repository | string | `"argoproj/argo-rollouts"` | Repository to use |
@ -89,9 +89,8 @@ For full list of changes please check ArtifactHub [changelog].
| controller.livenessProbe | object | See [values.yaml] | Configure liveness [probe] for the controller | | controller.livenessProbe | object | See [values.yaml] | Configure liveness [probe] for the controller |
| controller.metricProviderPlugins | object | `{}` | Configures 3rd party metric providers for controller | | controller.metricProviderPlugins | object | `{}` | Configures 3rd party metric providers for controller |
| controller.metrics.enabled | bool | `false` | Deploy metrics service | | controller.metrics.enabled | bool | `false` | Deploy metrics service |
| controller.metrics.service.port | int | `8090` | | | controller.metrics.service.port | int | `8090` | Metrics service port |
| controller.metrics.service.portName | string | `"metrics"` | | | controller.metrics.service.portName | string | `"metrics"` | Metrics service port name |
| controller.metrics.service.targetPort | int | `8090` | |
| controller.metrics.serviceMonitor.additionalAnnotations | object | `{}` | Annotations to be added to the ServiceMonitor | | controller.metrics.serviceMonitor.additionalAnnotations | object | `{}` | Annotations to be added to the ServiceMonitor |
| controller.metrics.serviceMonitor.additionalLabels | object | `{}` | Labels to be added to the ServiceMonitor | | controller.metrics.serviceMonitor.additionalLabels | object | `{}` | Labels to be added to the ServiceMonitor |
| controller.metrics.serviceMonitor.enabled | bool | `false` | Enable a prometheus ServiceMonitor | | controller.metrics.serviceMonitor.enabled | bool | `false` | Enable a prometheus ServiceMonitor |

View file

@ -37,8 +37,8 @@ spec:
containers: containers:
- image: "{{ .Values.controller.image.registry }}/{{ .Values.controller.image.repository }}:{{ default .Chart.AppVersion .Values.controller.image.tag }}" - image: "{{ .Values.controller.image.registry }}/{{ .Values.controller.image.repository }}:{{ default .Chart.AppVersion .Values.controller.image.tag }}"
args: args:
- --healthzPort={{ .Values.controller.healthz.port }} - --healthzPort={{ .Values.controller.containerPorts.healthz }}
- --metricsport={{ .Values.controller.metrics.service.port }} - --metricsport={{ .Values.controller.containerPorts.metrics }}
{{- if not .Values.clusterInstall }} {{- if not .Values.clusterInstall }}
- --namespaced - --namespaced
{{- end }} {{- end }}
@ -55,10 +55,10 @@ spec:
imagePullPolicy: {{ .Values.controller.image.pullPolicy }} imagePullPolicy: {{ .Values.controller.image.pullPolicy }}
name: argo-rollouts name: argo-rollouts
ports: ports:
- containerPort: {{ .Values.controller.metrics.service.port }} - containerPort: {{ .Values.controller.containerPorts.metrics }}
name: {{ .Values.controller.metrics.service.portName }} name: metrics
- containerPort: {{ .Values.controller.healthz.port }} - containerPort: {{ .Values.controller.containerPorts.healthz }}
name: {{ .Values.controller.healthz.portName }} name: healthz
livenessProbe: livenessProbe:
{{- toYaml .Values.controller.livenessProbe | nindent 10 }} {{- toYaml .Values.controller.livenessProbe | nindent 10 }}
readinessProbe: readinessProbe:

View file

@ -16,7 +16,7 @@ spec:
- name: {{ .Values.controller.metrics.service.portName }} - name: {{ .Values.controller.metrics.service.portName }}
protocol: TCP protocol: TCP
port: {{ .Values.controller.metrics.service.port }} port: {{ .Values.controller.metrics.service.port }}
targetPort: {{ .Values.controller.metrics.service.targetPort }} targetPort: metrics
selector: selector:
app.kubernetes.io/component: {{ .Values.controller.component }} app.kubernetes.io/component: {{ .Values.controller.component }}
{{- include "argo-rollouts.selectorLabels" . | nindent 4 }} {{- include "argo-rollouts.selectorLabels" . | nindent 4 }}

View file

@ -106,17 +106,21 @@ controller:
# -- flag to enable creation of cluster controller role (requires cluster RBAC) # -- flag to enable creation of cluster controller role (requires cluster RBAC)
createClusterRole: true createClusterRole: true
healthz: # Controller container ports
portName: healthz containerPorts:
port: 8080 # -- Metrics container port
metrics: 8090
# -- Healthz container port
healthz: 8080
metrics: metrics:
# -- Deploy metrics service # -- Deploy metrics service
enabled: false enabled: false
service: service:
# -- Metrics service port name
portName: metrics portName: metrics
# -- Metrics service port
port: 8090 port: 8090
targetPort: 8090
serviceMonitor: serviceMonitor:
# -- Enable a prometheus ServiceMonitor # -- Enable a prometheus ServiceMonitor
enabled: false enabled: false