feat(argo-workflows): Add support for topologySpreadConstraints (#1496)
Signed-off-by: Kiyoshi Muranaka <hxhgkkrgi@gmail.com> Signed-off-by: Kiyoshi Muranaka <hxhgkkrgi@gmail.com> Co-authored-by: Aikawa <yu.croco@gmail.com>
This commit is contained in:
parent
12a1ccea75
commit
2626b31b69
6 changed files with 45 additions and 2 deletions
|
@ -3,7 +3,7 @@ appVersion: v3.4.1
|
||||||
name: argo-workflows
|
name: argo-workflows
|
||||||
description: A Helm chart for Argo Workflows
|
description: A Helm chart for Argo Workflows
|
||||||
type: application
|
type: application
|
||||||
version: 0.20.1
|
version: 0.20.2
|
||||||
icon: https://raw.githubusercontent.com/argoproj/argo-workflows/master/docs/assets/argo.png
|
icon: https://raw.githubusercontent.com/argoproj/argo-workflows/master/docs/assets/argo.png
|
||||||
home: https://github.com/argoproj/argo-helm
|
home: https://github.com/argoproj/argo-helm
|
||||||
sources:
|
sources:
|
||||||
|
@ -13,4 +13,4 @@ maintainers:
|
||||||
url: https://argoproj.github.io/
|
url: https://argoproj.github.io/
|
||||||
annotations:
|
annotations:
|
||||||
artifacthub.io/changes: |
|
artifacthub.io/changes: |
|
||||||
- "[Changed]: Upgrade ArgoWorkflows to v3.4.1"
|
- "[Added]: Add support for topologySpreadConstraints"
|
||||||
|
|
|
@ -129,6 +129,7 @@ Fields to note:
|
||||||
| controller.telemetryConfig.servicePort | int | `8081` | telemetry service port |
|
| controller.telemetryConfig.servicePort | int | `8081` | telemetry service port |
|
||||||
| controller.telemetryConfig.servicePortName | string | `"telemetry"` | telemetry service port name |
|
| controller.telemetryConfig.servicePortName | string | `"telemetry"` | telemetry service port name |
|
||||||
| controller.tolerations | list | `[]` | [Tolerations] for use with node taints |
|
| controller.tolerations | list | `[]` | [Tolerations] for use with node taints |
|
||||||
|
| controller.topologySpreadConstraints | list | `[]` | Assign custom [TopologySpreadConstraints] rules to the workflow controller |
|
||||||
| controller.volumeMounts | list | `[]` | Additional volume mounts to the controller main container |
|
| controller.volumeMounts | list | `[]` | Additional volume mounts to the controller main container |
|
||||||
| controller.volumes | list | `[]` | Additional volumes to the controller pod |
|
| controller.volumes | list | `[]` | Additional volumes to the controller pod |
|
||||||
| controller.workflowDefaults | object | `{}` | Default values that will apply to all Workflows from this controller, unless overridden on the Workflow-level. Only valid for 2.7+ |
|
| controller.workflowDefaults | object | `{}` | Default values that will apply to all Workflows from this controller, unless overridden on the Workflow-level. Only valid for 2.7+ |
|
||||||
|
@ -206,6 +207,7 @@ Fields to note:
|
||||||
| server.serviceType | string | `"ClusterIP"` | Service type for server pods |
|
| server.serviceType | string | `"ClusterIP"` | Service type for server pods |
|
||||||
| server.sso | object | `{}` | SSO configuration when SSO is specified as a server auth mode. |
|
| server.sso | object | `{}` | SSO configuration when SSO is specified as a server auth mode. |
|
||||||
| server.tolerations | list | `[]` | [Tolerations] for use with node taints |
|
| server.tolerations | list | `[]` | [Tolerations] for use with node taints |
|
||||||
|
| server.topologySpreadConstraints | list | `[]` | Assign custom [TopologySpreadConstraints] rules to the argo server |
|
||||||
| server.volumeMounts | list | `[]` | Additional volume mounts to the server main container. |
|
| server.volumeMounts | list | `[]` | Additional volume mounts to the server main container. |
|
||||||
| server.volumes | list | `[]` | Additional volumes to the server pod. |
|
| server.volumes | list | `[]` | Additional volumes to the server pod. |
|
||||||
|
|
||||||
|
@ -246,4 +248,5 @@ Fields to note:
|
||||||
[Pod Disruption Budget]: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
|
[Pod Disruption Budget]: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
|
||||||
[probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
|
[probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
|
||||||
[Tolerations]: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
[Tolerations]: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||||
|
[TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||||
[values.yaml]: values.yaml
|
[values.yaml]: values.yaml
|
||||||
|
|
|
@ -133,4 +133,5 @@ Fields to note:
|
||||||
[Pod Disruption Budget]: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
|
[Pod Disruption Budget]: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
|
||||||
[probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
|
[probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
|
||||||
[Tolerations]: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
[Tolerations]: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||||
|
[TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||||
[values.yaml]: values.yaml
|
[values.yaml]: values.yaml
|
||||||
|
|
|
@ -106,6 +106,17 @@ spec:
|
||||||
affinity:
|
affinity:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.controller.topologySpreadConstraints }}
|
||||||
|
topologySpreadConstraints:
|
||||||
|
{{- range $constraint := . }}
|
||||||
|
- {{ toYaml $constraint | nindent 8 | trim }}
|
||||||
|
{{- if not $constraint.labelSelector }}
|
||||||
|
labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "argo-workflows.selectorLabels" (dict "context" $ "name" $.Values.controller.name) | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
{{- with .Values.controller.priorityClassName }}
|
{{- with .Values.controller.priorityClassName }}
|
||||||
priorityClassName: {{ . }}
|
priorityClassName: {{ . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -109,6 +109,17 @@ spec:
|
||||||
affinity:
|
affinity:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.server.topologySpreadConstraints }}
|
||||||
|
topologySpreadConstraints:
|
||||||
|
{{- range $constraint := . }}
|
||||||
|
- {{ toYaml $constraint | nindent 8 | trim }}
|
||||||
|
{{- if not $constraint.labelSelector }}
|
||||||
|
labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "argo-workflows.selectorLabels" (dict "context" $ "name" $.Values.server.name) | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
{{- with .Values.server.priorityClassName }}
|
{{- with .Values.server.priorityClassName }}
|
||||||
priorityClassName: {{ . }}
|
priorityClassName: {{ . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -261,6 +261,15 @@ controller:
|
||||||
tolerations: []
|
tolerations: []
|
||||||
# -- Assign custom [affinity] rules
|
# -- Assign custom [affinity] rules
|
||||||
affinity: {}
|
affinity: {}
|
||||||
|
|
||||||
|
# -- Assign custom [TopologySpreadConstraints] rules to the workflow 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
|
||||||
|
|
||||||
# -- Leverage a PriorityClass to ensure your pods survive resource shortages.
|
# -- Leverage a PriorityClass to ensure your pods survive resource shortages.
|
||||||
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
|
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
|
||||||
priorityClassName: ""
|
priorityClassName: ""
|
||||||
|
@ -384,6 +393,14 @@ server:
|
||||||
# -- Assign custom [affinity] rules
|
# -- Assign custom [affinity] rules
|
||||||
affinity: {}
|
affinity: {}
|
||||||
|
|
||||||
|
# -- Assign custom [TopologySpreadConstraints] rules to the argo 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
|
||||||
|
|
||||||
# -- Leverage a PriorityClass to ensure your pods survive resource shortages
|
# -- Leverage a PriorityClass to ensure your pods survive resource shortages
|
||||||
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
|
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
|
||||||
priorityClassName: ""
|
priorityClassName: ""
|
||||||
|
|
Loading…
Reference in a new issue