feat(argo-cd): expose tolerations and affinities to those who need it (#12)
* feat(argo-cd): expose tolerations and affinities to those who need it * remove EWR1 from enum * fix whitespace in helpers
This commit is contained in:
parent
86fbc6ddba
commit
42c9ba0f63
10 changed files with 120 additions and 118 deletions
|
@ -2,7 +2,7 @@ apiVersion: v2
|
||||||
appVersion: v2.3.1
|
appVersion: v2.3.1
|
||||||
description: A Helm chart for Argo CD, a declarative, GitOps continuous delivery tool for Kubernetes.
|
description: A Helm chart for Argo CD, a declarative, GitOps continuous delivery tool for Kubernetes.
|
||||||
name: argo-cd
|
name: argo-cd
|
||||||
version: 4.7.2
|
version: 4.7.3
|
||||||
home: https://github.com/coreweave/argo-helm
|
home: https://github.com/coreweave/argo-helm
|
||||||
icon: https://argo-cd.readthedocs.io/en/stable/assets/logo.png
|
icon: https://argo-cd.readthedocs.io/en/stable/assets/logo.png
|
||||||
keywords:
|
keywords:
|
||||||
|
|
|
@ -297,12 +297,46 @@ affinity:
|
||||||
- key: topology.kubernetes.io/region
|
- key: topology.kubernetes.io/region
|
||||||
operator: In
|
operator: In
|
||||||
values:
|
values:
|
||||||
- ORD1
|
- {{ .Values.region }}
|
||||||
- key: node.coreweave.cloud/class
|
- key: node.coreweave.cloud/class
|
||||||
operator: In
|
operator: In
|
||||||
values:
|
values:
|
||||||
- cpu
|
- cpu
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- define "coreweave.tolerations" -}}
|
||||||
|
{{- if .Values.tolerations }}
|
||||||
|
{{- with .Values.tolerations }}
|
||||||
|
tolerations:
|
||||||
|
{{- toYaml . | nindent 2 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else }}
|
||||||
|
tolerations:
|
||||||
|
- key: is_cpu_compute
|
||||||
|
operator: Exists
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- define "coreweave.affinity" -}}
|
||||||
|
{{- if .Values.affinity }}
|
||||||
|
{{- with .Values.affinity }}
|
||||||
|
affinity:
|
||||||
|
{{- toYaml . | nindent 2 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else }}
|
||||||
|
affinity:
|
||||||
|
nodeAffinity:
|
||||||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
nodeSelectorTerms:
|
||||||
|
- matchExpressions:
|
||||||
|
- key: topology.kubernetes.io/region
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- {{ .Values.region }}
|
||||||
|
- key: node.coreweave.cloud/class
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- cpu
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
{{- define "coreweave.certSecretName" -}}
|
{{- define "coreweave.certSecretName" -}}
|
||||||
{{printf "%s-tls-cert" .Release.Name }}
|
{{printf "%s-tls-cert" .Release.Name }}
|
||||||
{{- end -}}
|
{{- end -}}
|
|
@ -117,7 +117,8 @@ spec:
|
||||||
{{- with .Values.controller.extraContainers }}
|
{{- with .Values.controller.extraContainers }}
|
||||||
{{- toYaml . | nindent 6 }}
|
{{- toYaml . | nindent 6 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{include "coreweave.nodeAffinityAndTolerations" . | nindent 6 }}
|
{{include "coreweave.affinity" . | nindent 6 }}
|
||||||
|
{{include "coreweave.tolerations" . | nindent 6 }}
|
||||||
serviceAccountName: {{ template "argo-cd.controllerServiceAccountName" . }}
|
serviceAccountName: {{ template "argo-cd.controllerServiceAccountName" . }}
|
||||||
{{- with .Values.global.hostAliases }}
|
{{- with .Values.global.hostAliases }}
|
||||||
hostAliases:
|
hostAliases:
|
||||||
|
|
|
@ -93,5 +93,6 @@ spec:
|
||||||
{{- with .Values.notifications.extraVolumes }}
|
{{- with .Values.notifications.extraVolumes }}
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{include "coreweave.nodeAffinityAndTolerations" . | nindent 6 }}
|
{{include "coreweave.affinity" . | nindent 6 }}
|
||||||
|
{{include "coreweave.tolerations" . | nindent 6 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -127,7 +127,8 @@ spec:
|
||||||
{{- with .Values.repoServer.extraContainers }}
|
{{- with .Values.repoServer.extraContainers }}
|
||||||
{{- toYaml . | nindent 6 }}
|
{{- toYaml . | nindent 6 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{include "coreweave.nodeAffinityAndTolerations" . | nindent 6 }}
|
{{include "coreweave.affinity" . | nindent 6 }}
|
||||||
|
{{include "coreweave.tolerations" . | nindent 6 }}
|
||||||
serviceAccountName: {{ template "argo-cd.repoServerServiceAccountName" . }}
|
serviceAccountName: {{ template "argo-cd.repoServerServiceAccountName" . }}
|
||||||
{{- with .Values.global.hostAliases }}
|
{{- with .Values.global.hostAliases }}
|
||||||
hostAliases:
|
hostAliases:
|
||||||
|
|
|
@ -149,7 +149,8 @@ spec:
|
||||||
resources:
|
resources:
|
||||||
{{- toYaml .Values.server.extensions.resources | nindent 10 }}
|
{{- toYaml .Values.server.extensions.resources | nindent 10 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{include "coreweave.nodeAffinityAndTolerations" . | nindent 6 }}
|
{{include "coreweave.affinity" . | nindent 6 }}
|
||||||
|
{{include "coreweave.tolerations" . | nindent 6 }}
|
||||||
serviceAccountName: {{ template "argo-cd.serverServiceAccountName" . }}
|
serviceAccountName: {{ template "argo-cd.serverServiceAccountName" . }}
|
||||||
{{- with .Values.global.hostAliases }}
|
{{- with .Values.global.hostAliases }}
|
||||||
hostAliases:
|
hostAliases:
|
||||||
|
|
|
@ -111,7 +111,8 @@ spec:
|
||||||
{{- with .Values.dex.extraContainers }}
|
{{- with .Values.dex.extraContainers }}
|
||||||
{{- toYaml . | nindent 6 }}
|
{{- toYaml . | nindent 6 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{include "coreweave.nodeAffinityAndTolerations" . | nindent 6 }}
|
{{include "coreweave.affinity" . | nindent 6 }}
|
||||||
|
{{include "coreweave.tolerations" . | nindent 6 }}
|
||||||
serviceAccountName: {{ template "argo-cd.dexServiceAccountName" . }}
|
serviceAccountName: {{ template "argo-cd.dexServiceAccountName" . }}
|
||||||
{{- with .Values.global.hostAliases }}
|
{{- with .Values.global.hostAliases }}
|
||||||
hostAliases:
|
hostAliases:
|
||||||
|
|
|
@ -87,7 +87,8 @@ spec:
|
||||||
{{- with .Values.redis.extraContainers }}
|
{{- with .Values.redis.extraContainers }}
|
||||||
{{- toYaml . | nindent 6 }}
|
{{- toYaml . | nindent 6 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{include "coreweave.nodeAffinityAndTolerations" . | nindent 6 }}
|
{{include "coreweave.affinity" . | nindent 6 }}
|
||||||
|
{{include "coreweave.tolerations" . | nindent 6 }}
|
||||||
{{- if .Values.redis.volumes }}
|
{{- if .Values.redis.volumes }}
|
||||||
volumes:
|
volumes:
|
||||||
{{- toYaml .Values.redis.volumes | nindent 8}}
|
{{- toYaml .Values.redis.volumes | nindent 8}}
|
||||||
|
|
|
@ -1,9 +1,19 @@
|
||||||
{
|
{
|
||||||
"$schema": "http://json-schema.org/schema#",
|
"$schema": "http://json-schema.org/schema#",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"region": {
|
||||||
|
"type": "string",
|
||||||
|
"form": false,
|
||||||
|
"enum": [
|
||||||
|
"ORD1",
|
||||||
|
"LAS1",
|
||||||
|
"LGA1"
|
||||||
|
],
|
||||||
|
"title": "Region"
|
||||||
|
},
|
||||||
"notifications": {
|
"notifications": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"form":"true",
|
"form": true,
|
||||||
"title": "Notifications Controller",
|
"title": "Notifications Controller",
|
||||||
"properties": {
|
"properties": {
|
||||||
"enabled": {
|
"enabled": {
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
## CoreWeave Ingress Options
|
## CoreWeave Custom Options
|
||||||
|
region: ORD1
|
||||||
|
|
||||||
|
affinity: {}
|
||||||
|
tolerations: []
|
||||||
|
|
||||||
# -- Provide a custom dns name in place of coreweave's ingress. Requires custom Ingress Controller
|
# -- Provide a custom dns name in place of coreweave's ingress. Requires custom Ingress Controller
|
||||||
customExternalDnsName: ''
|
customExternalDnsName: ''
|
||||||
|
@ -213,16 +217,6 @@ controller:
|
||||||
# -- Application controller service port name
|
# -- Application controller service port name
|
||||||
portName: https-controller
|
portName: https-controller
|
||||||
|
|
||||||
# -- [Node selector]
|
|
||||||
nodeSelector:
|
|
||||||
node.coreweave.cloud/class: cpu
|
|
||||||
# -- [Tolerations] for use with node taints
|
|
||||||
tolerations:
|
|
||||||
- key: is_cpu_compute
|
|
||||||
operator: Exists
|
|
||||||
# -- Assign custom [affinity] rules to the deployment
|
|
||||||
affinity: {}
|
|
||||||
|
|
||||||
# -- Assign custom [TopologySpreadConstraints] rules to the application controller
|
# -- Assign custom [TopologySpreadConstraints] rules to the application controller
|
||||||
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
## 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
|
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
|
||||||
|
@ -235,13 +229,13 @@ controller:
|
||||||
priorityClassName: ""
|
priorityClassName: ""
|
||||||
|
|
||||||
# -- Resource limits and requests for the application controller pods
|
# -- Resource limits and requests for the application controller pods
|
||||||
resources: {}
|
resources:
|
||||||
# limits:
|
limits:
|
||||||
# cpu: 500m
|
cpu: 500m
|
||||||
# memory: 512Mi
|
memory: 512Mi
|
||||||
# requests:
|
requests:
|
||||||
# cpu: 250m
|
cpu: 500m
|
||||||
# memory: 256Mi
|
memory: 256Mi
|
||||||
|
|
||||||
serviceAccount:
|
serviceAccount:
|
||||||
# -- Create a service account for the application controller
|
# -- Create a service account for the application controller
|
||||||
|
@ -521,13 +515,13 @@ dex:
|
||||||
# readOnlyRootFilesystem: true
|
# readOnlyRootFilesystem: true
|
||||||
|
|
||||||
# -- Resource limits and requests for dex
|
# -- Resource limits and requests for dex
|
||||||
resources: {}
|
resources:
|
||||||
# limits:
|
limits:
|
||||||
# cpu: 50m
|
cpu: 100m
|
||||||
# memory: 64Mi
|
memory: 64Mi
|
||||||
# requests:
|
requests:
|
||||||
# cpu: 10m
|
cpu: 100m
|
||||||
# memory: 32Mi
|
memory: 32Mi
|
||||||
|
|
||||||
# -- Additional containers to be added to the dex pod
|
# -- Additional containers to be added to the dex pod
|
||||||
extraContainers: []
|
extraContainers: []
|
||||||
|
@ -636,13 +630,13 @@ redis:
|
||||||
automountServiceAccountToken: false
|
automountServiceAccountToken: false
|
||||||
|
|
||||||
# -- Resource limits and requests for redis
|
# -- Resource limits and requests for redis
|
||||||
resources: {}
|
resources:
|
||||||
# limits:
|
limits:
|
||||||
# cpu: 200m
|
cpu: 200m
|
||||||
# memory: 128Mi
|
memory: 128Mi
|
||||||
# requests:
|
requests:
|
||||||
# cpu: 100m
|
cpu: 100m
|
||||||
# memory: 64Mi
|
memory: 64Mi
|
||||||
|
|
||||||
# -- Additional volumeMounts to the redis container
|
# -- Additional volumeMounts to the redis container
|
||||||
volumeMounts: []
|
volumeMounts: []
|
||||||
|
@ -687,13 +681,13 @@ redis:
|
||||||
# -- Port to use for redis-exporter sidecar
|
# -- Port to use for redis-exporter sidecar
|
||||||
containerPort: 9121
|
containerPort: 9121
|
||||||
# -- Resource limits and requests for redis-exporter sidecar
|
# -- Resource limits and requests for redis-exporter sidecar
|
||||||
resources: {}
|
resources:
|
||||||
# limits:
|
limits:
|
||||||
# cpu: 50m
|
cpu: 50m
|
||||||
# memory: 64Mi
|
memory: 64Mi
|
||||||
# requests:
|
requests:
|
||||||
# cpu: 10m
|
cpu: 10m
|
||||||
# memory: 32Mi
|
memory: 32Mi
|
||||||
service:
|
service:
|
||||||
# -- Metrics service type
|
# -- Metrics service type
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
@ -878,13 +872,13 @@ server:
|
||||||
# readOnlyRootFilesystem: true
|
# readOnlyRootFilesystem: true
|
||||||
|
|
||||||
# -- Resource limits and requests for the Argo CD server
|
# -- Resource limits and requests for the Argo CD server
|
||||||
resources: {}
|
resources:
|
||||||
# limits:
|
limits:
|
||||||
# cpu: 100m
|
cpu: 100m
|
||||||
# memory: 128Mi
|
memory: 128Mi
|
||||||
# requests:
|
requests:
|
||||||
# cpu: 50m
|
cpu: 50m
|
||||||
# memory: 64Mi
|
memory: 64Mi
|
||||||
|
|
||||||
## Certificate configuration
|
## Certificate configuration
|
||||||
certificate:
|
certificate:
|
||||||
|
@ -1484,16 +1478,6 @@ repoServer:
|
||||||
# - name: custom-tools
|
# - name: custom-tools
|
||||||
# emptyDir: {}
|
# emptyDir: {}
|
||||||
|
|
||||||
# -- [Node selector]
|
|
||||||
nodeSelector:
|
|
||||||
node.coreweave.cloud/class: cpu
|
|
||||||
# -- [Tolerations] for use with node taints
|
|
||||||
tolerations:
|
|
||||||
- key: is_cpu_compute
|
|
||||||
operator: Exists
|
|
||||||
# -- Assign custom [affinity] rules to the deployment
|
|
||||||
affinity: {}
|
|
||||||
|
|
||||||
# -- Assign custom [TopologySpreadConstraints] rules to the repo server
|
# -- Assign custom [TopologySpreadConstraints] rules to the repo server
|
||||||
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
## 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
|
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
|
||||||
|
@ -1514,13 +1498,13 @@ repoServer:
|
||||||
# readOnlyRootFilesystem: true
|
# readOnlyRootFilesystem: true
|
||||||
|
|
||||||
# -- Resource limits and requests for the repo server pods
|
# -- Resource limits and requests for the repo server pods
|
||||||
resources: {}
|
resources:
|
||||||
# limits:
|
limits:
|
||||||
# cpu: 50m
|
cpu: 50m
|
||||||
# memory: 128Mi
|
memory: 128Mi
|
||||||
# requests:
|
requests:
|
||||||
# cpu: 10m
|
cpu: 10m
|
||||||
# memory: 64Mi
|
memory: 64Mi
|
||||||
|
|
||||||
## Repo server service configuration
|
## Repo server service configuration
|
||||||
service:
|
service:
|
||||||
|
@ -1961,29 +1945,17 @@ applicationSet:
|
||||||
# runAsUser: 1000
|
# runAsUser: 1000
|
||||||
|
|
||||||
# -- Resource limits and requests for the controller pods.
|
# -- Resource limits and requests for the controller pods.
|
||||||
resources: {}
|
resources:
|
||||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||||
# choice for the user. This also increases chances charts run on environments with little
|
# choice for the user. This also increases chances charts run on environments with little
|
||||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||||
# limits:
|
limits:
|
||||||
# cpu: 100m
|
cpu: 100m
|
||||||
# memory: 128Mi
|
memory: 128Mi
|
||||||
# requests:
|
requests:
|
||||||
# cpu: 100m
|
cpu: 100m
|
||||||
# memory: 128Mi
|
memory: 128Mi
|
||||||
|
|
||||||
# -- [Node selector]
|
|
||||||
nodeSelector:
|
|
||||||
node.coreweave.cloud/class: cpu
|
|
||||||
|
|
||||||
# -- [Tolerations] for use with node taints
|
|
||||||
tolerations:
|
|
||||||
- key: is_cpu_compute
|
|
||||||
operator: Exists
|
|
||||||
|
|
||||||
# -- Assign custom [affinity] rules
|
|
||||||
affinity: {}
|
|
||||||
|
|
||||||
# -- If specified, indicates the pod's priority. If not specified, the pod priority will be default or zero if there is no default.
|
# -- If specified, indicates the pod's priority. If not specified, the pod priority will be default or zero if there is no default.
|
||||||
priorityClassName: ""
|
priorityClassName: ""
|
||||||
|
@ -2067,9 +2039,6 @@ notifications:
|
||||||
# -- Notifications controller name string
|
# -- Notifications controller name string
|
||||||
name: notifications-controller
|
name: notifications-controller
|
||||||
|
|
||||||
# -- Assign custom [affinity] rules
|
|
||||||
affinity: {}
|
|
||||||
|
|
||||||
# -- Argo CD dashboard url; used in place of {{.context.argocdUrl}} in templates
|
# -- Argo CD dashboard url; used in place of {{.context.argocdUrl}} in templates
|
||||||
argocdUrl:
|
argocdUrl:
|
||||||
|
|
||||||
|
@ -2190,13 +2159,13 @@ notifications:
|
||||||
containerSecurityContext: {}
|
containerSecurityContext: {}
|
||||||
|
|
||||||
# -- Resource limits and requests for the controller
|
# -- Resource limits and requests for the controller
|
||||||
resources: {}
|
resources:
|
||||||
# limits:
|
limits:
|
||||||
# cpu: 100m
|
cpu: 100m
|
||||||
# memory: 128Mi
|
memory: 128Mi
|
||||||
# requests:
|
requests:
|
||||||
# cpu: 100m
|
cpu: 100m
|
||||||
# memory: 128Mi
|
memory: 128Mi
|
||||||
|
|
||||||
serviceAccount:
|
serviceAccount:
|
||||||
# -- Specifies whether a service account should be created
|
# -- Specifies whether a service account should be created
|
||||||
|
@ -2424,11 +2393,6 @@ notifications:
|
||||||
# slack:
|
# slack:
|
||||||
# attachments: "[{\n \"title\": \"{{ .app.metadata.name}}\",\n \"title_link\":\"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}\",\n \"color\": \"#18be52\",\n \"fields\": [\n {\n \"title\": \"Sync Status\",\n \"value\": \"{{.app.status.sync.status}}\",\n \"short\": true\n },\n {\n \"title\": \"Repository\",\n \"value\": \"{{.app.spec.source.repoURL}}\",\n \"short\": true\n }\n {{range $index, $c := .app.status.conditions}}\n {{if not $index}},{{end}}\n {{if $index}},{{end}}\n {\n \"title\": \"{{$c.type}}\",\n \"value\": \"{{$c.message}}\",\n \"short\": true\n }\n {{end}}\n ]\n}] "
|
# attachments: "[{\n \"title\": \"{{ .app.metadata.name}}\",\n \"title_link\":\"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}\",\n \"color\": \"#18be52\",\n \"fields\": [\n {\n \"title\": \"Sync Status\",\n \"value\": \"{{.app.status.sync.status}}\",\n \"short\": true\n },\n {\n \"title\": \"Repository\",\n \"value\": \"{{.app.spec.source.repoURL}}\",\n \"short\": true\n }\n {{range $index, $c := .app.status.conditions}}\n {{if not $index}},{{end}}\n {{if $index}},{{end}}\n {\n \"title\": \"{{$c.type}}\",\n \"value\": \"{{$c.message}}\",\n \"short\": true\n }\n {{end}}\n ]\n}] "
|
||||||
|
|
||||||
# -- [Tolerations] for use with node taints
|
|
||||||
tolerations:
|
|
||||||
- key: is_cpu_compute
|
|
||||||
operator: Exists
|
|
||||||
|
|
||||||
# -- The trigger defines the condition when the notification should be sent
|
# -- The trigger defines the condition when the notification should be sent
|
||||||
## For more information: https://argocd-notifications.readthedocs.io/en/stable/triggers/
|
## For more information: https://argocd-notifications.readthedocs.io/en/stable/triggers/
|
||||||
triggers: {}
|
triggers: {}
|
||||||
|
@ -2528,15 +2492,3 @@ notifications:
|
||||||
# requests:
|
# requests:
|
||||||
# cpu: 100m
|
# cpu: 100m
|
||||||
# memory: 128Mi
|
# memory: 128Mi
|
||||||
|
|
||||||
# -- Assign custom [affinity] rules
|
|
||||||
affinity: {}
|
|
||||||
|
|
||||||
# -- [Tolerations] for use with node taints
|
|
||||||
tolerations:
|
|
||||||
- key: is_cpu_compute
|
|
||||||
operator: Exists
|
|
||||||
|
|
||||||
# -- [Node selector]
|
|
||||||
nodeSelector:
|
|
||||||
node.coreweave.cloud/class: cpu
|
|
||||||
|
|
Loading…
Reference in a new issue