diff --git a/charts/flagger/README.md b/charts/flagger/README.md index 48ff06a1d..1274b7a97 100644 --- a/charts/flagger/README.md +++ b/charts/flagger/README.md @@ -164,7 +164,7 @@ The following tables lists the configurable parameters of the Flagger chart and | `resources.requests/memory` | Pod memory request | `32Mi` | | `resources.limits/cpu` | Pod CPU limit | `1000m` | | `resources.limits/memory` | Pod memory limit | `512Mi` | -| `affinity` | Node/pod affinities | None | +| `affinity` | Node/pod affinities | prefer spread across hosts | | `nodeSelector` | Node labels for pod assignment | `{}` | | `threadiness` | Number of controller workers | `2` | | `tolerations` | List of node taints to tolerate | `[]` | diff --git a/charts/flagger/templates/deployment.yaml b/charts/flagger/templates/deployment.yaml index 4d3b854fd..a9f3810e6 100644 --- a/charts/flagger/templates/deployment.yaml +++ b/charts/flagger/templates/deployment.yaml @@ -36,16 +36,10 @@ spec: {{- end }} spec: serviceAccountName: {{ template "flagger.serviceAccountName" . }} + {{- if .Values.affinity }} affinity: - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 100 - podAffinityTerm: - labelSelector: - matchLabels: - app.kubernetes.io/name: {{ template "flagger.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - topologyKey: kubernetes.io/hostname + {{- tpl (toYaml .Values.affinity) . | nindent 8 }} + {{- end }} {{- if .Values.image.pullSecret }} imagePullSecrets: - name: {{ .Values.image.pullSecret }} diff --git a/charts/flagger/values.yaml b/charts/flagger/values.yaml index 6a49d03e8..1d8b3a2ae 100644 --- a/charts/flagger/values.yaml +++ b/charts/flagger/values.yaml @@ -135,6 +135,17 @@ nodeSelector: {} tolerations: [] +affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 100 + podAffinityTerm: + labelSelector: + matchLabels: + app.kubernetes.io/name: '{{ template "flagger.name" . }}' + app.kubernetes.io/instance: '{{ .Release.Name }}' + topologyKey: kubernetes.io/hostname + prometheus: # to be used with ingress controllers install: false