feat(argo-rollouts): Add support for topologySpreadConstraints (#1755)
This commit is contained in:
parent
5c6ad38b15
commit
2777121707
6 changed files with 48 additions and 2 deletions
|
@ -2,7 +2,7 @@ apiVersion: v2
|
|||
appVersion: v1.3.1
|
||||
description: A Helm chart for Argo Rollouts
|
||||
name: argo-rollouts
|
||||
version: 2.21.1
|
||||
version: 2.21.2
|
||||
home: https://github.com/argoproj/argo-helm
|
||||
icon: https://argoproj.github.io/argo-rollouts/assets/logo.png
|
||||
keywords:
|
||||
|
@ -15,4 +15,4 @@ maintainers:
|
|||
url: https://argoproj.github.io/
|
||||
annotations:
|
||||
artifacthub.io/changes: |
|
||||
- "[Changed]: Upgrade ArgoRollouts to v1.3.1"
|
||||
- "[Added]: Add support for topologySpreadConstraints"
|
||||
|
|
|
@ -88,6 +88,7 @@ If dashboard is installed by `--set dashboard.enabled=true`, checkout the argo-r
|
|||
| controller.replicas | int | `2` | The number of controller pods to run |
|
||||
| controller.resources | object | `{}` | Resource limits and requests for the controller pods. |
|
||||
| controller.tolerations | list | `[]` | [Tolerations] for use with node taints |
|
||||
| controller.topologySpreadConstraints | list | `[]` | Assign custom [TopologySpreadConstraints] rules to the controller |
|
||||
| podAnnotations | object | `{}` | Annotations to be added to the Rollout pods |
|
||||
| podLabels | object | `{}` | Labels to be added to the Rollout pods |
|
||||
| podSecurityContext | object | `{"runAsNonRoot":true}` | Security Context to set on pod level |
|
||||
|
@ -145,6 +146,7 @@ If dashboard is installed by `--set dashboard.enabled=true`, checkout the argo-r
|
|||
| dashboard.serviceAccount.create | bool | `true` | Specifies whether a dashboard service account should be created |
|
||||
| dashboard.serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template |
|
||||
| dashboard.tolerations | list | `[]` | [Tolerations] for use with node taints |
|
||||
| dashboard.topologySpreadConstraints | list | `[]` | Assign custom [TopologySpreadConstraints] rules to the dashboard server |
|
||||
|
||||
## Upgrading
|
||||
|
||||
|
@ -174,6 +176,7 @@ Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/
|
|||
[Node selector]: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
[probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
|
||||
[Tolerations]: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
[TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||
[priorityClassName]: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/
|
||||
[Pod Disruption Budget]: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets
|
||||
[values.yaml]: values.yaml
|
||||
|
|
|
@ -96,6 +96,7 @@ Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/
|
|||
[Node selector]: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
[probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
|
||||
[Tolerations]: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
[TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||
[priorityClassName]: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/
|
||||
[Pod Disruption Budget]: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets
|
||||
[values.yaml]: values.yaml
|
||||
|
|
|
@ -83,6 +83,18 @@ spec:
|
|||
affinity:
|
||||
{{- toYaml .Values.controller.affinity | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.controller.topologySpreadConstraints }}
|
||||
topologySpreadConstraints:
|
||||
{{- range $constraint := . }}
|
||||
- {{ toYaml $constraint | nindent 8 | trim }}
|
||||
{{- if not $constraint.labelSelector }}
|
||||
labelSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: {{ $.Values.controller.component }}
|
||||
{{- include "argo-rollouts.selectorLabels" $ | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .Values.controller.priorityClassName }}
|
||||
priorityClassName: {{ . }}
|
||||
{{- end }}
|
||||
|
|
|
@ -65,6 +65,18 @@ spec:
|
|||
affinity:
|
||||
{{- toYaml .Values.dashboard.affinity | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.dashboard.topologySpreadConstraints }}
|
||||
topologySpreadConstraints:
|
||||
{{- range $constraint := . }}
|
||||
- {{ toYaml $constraint | nindent 8 | trim }}
|
||||
{{- if not $constraint.labelSelector }}
|
||||
labelSelector:
|
||||
matchLabels:
|
||||
{{- include "argo-rollouts.selectorLabels" $ | nindent 12 }}
|
||||
app.kubernetes.io/component: {{ $.Values.dashboard.component }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .Values.dashboard.priorityClassName }}
|
||||
priorityClassName: {{ . }}
|
||||
{{- end }}
|
||||
|
|
|
@ -47,6 +47,15 @@ controller:
|
|||
tolerations: []
|
||||
# -- Assign custom [affinity] rules to the deployment
|
||||
affinity: {}
|
||||
|
||||
# -- Assign custom [TopologySpreadConstraints] rules to the controller
|
||||
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
|
||||
topologySpreadConstraints: []
|
||||
# - maxSkew: 1
|
||||
# topologyKey: topology.kubernetes.io/zone
|
||||
# whenUnsatisfiable: DoNotSchedule
|
||||
|
||||
# -- [priorityClassName] for the controller
|
||||
priorityClassName: ""
|
||||
# -- The number of controller pods to run
|
||||
|
@ -194,6 +203,15 @@ dashboard:
|
|||
tolerations: []
|
||||
# -- Assign custom [affinity] rules to the deployment
|
||||
affinity: {}
|
||||
|
||||
# -- Assign custom [TopologySpreadConstraints] rules to the dashboard server
|
||||
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
|
||||
topologySpreadConstraints: []
|
||||
# - maxSkew: 1
|
||||
# topologyKey: topology.kubernetes.io/zone
|
||||
# whenUnsatisfiable: DoNotSchedule
|
||||
|
||||
# -- [priorityClassName] for the dashboard server
|
||||
priorityClassName: ""
|
||||
|
||||
|
|
Loading…
Reference in a new issue