[bitnami/argo-cd] Add applicationSet deployment to the chart (#13723)

* [bitnami/argo-cd] Add applicationSet deployment to the chart

Signed-off-by: jotamartos <jotamartos@vmware.com>

* [bitnami/argo-cd] Rebase main

Signed-off-by: jotamartos <jotamartos@vmware.com>

* [bitnami/argo-cd] Update README

Signed-off-by: jotamartos <jotamartos@vmware.com>

* [bitnami/argo-cd] Fix installation issues

Signed-off-by: jotamartos <jotamartos@vmware.com>

* [bitnami/argo-cd] Disable deployment of the applicationSet controller by default

Signed-off-by: jotamartos <jotamartos@vmware.com>

* [bitnami/argo-cd] Apply suggestions

Signed-off-by: jotamartos <jotamartos@vmware.com>

* [bitnami/argo-cd] Update README

Signed-off-by: jotamartos <jotamartos@vmware.com>

* [bitnami/argo-cd] Update tests

Signed-off-by: jotamartos <jotamartos@vmware.com>

* [bitnami/argo-cd] Increase timeout for the validation to succeed

Signed-off-by: jotamartos <jotamartos@vmware.com>

* [bitnami/argo-cd] Apply suggestions

Signed-off-by: jotamartos <jotamartos@vmware.com>

* Update README.md with readme-generator-for-helm

Signed-off-by: Bitnami Containers <bitnami-bot@vmware.com>

Signed-off-by: jotamartos <jotamartos@vmware.com>
Signed-off-by: Bitnami Containers <bitnami-bot@vmware.com>
Signed-off-by: Juan José Martos <jotamartos@gmail.com>
Co-authored-by: Bitnami Containers <bitnami-bot@vmware.com>
This commit is contained in:
Juan José Martos
2022-12-21 16:41:59 +01:00
committed by GitHub
co-authored by Bitnami Containers
parent 3c04e9a8ad
commit 69e34ffa40
19 changed files with 1107 additions and 9 deletions
@@ -55,7 +55,7 @@ it('allows deploying a healthy app for a new project', () => {
});
cy.get('i[class*="fa-sync"]').click();
cy.get('[qe-id="application-sync-panel-button-synchronize"]').click();
cy.contains('Succeeded a few seconds ago');
cy.contains('Succeeded a few seconds ago', {timeout: 120000});
cy.get('[class*="application-details__status-panel"]').within(() => {
cy.get('[title="Healthy"]', {timeout: 60000});
});
+1 -1
View File
@@ -30,4 +30,4 @@ sources:
- https://github.com/argoproj/argo-cd/
- https://github.com/bitnami/containers/tree/main/bitnami/dex
- https://github.com/dexidp/dex
version: 4.3.8
version: 4.4.0
+107
View File
@@ -203,6 +203,112 @@ The command removes all the Kubernetes components associated with the chart and
| `controller.initContainers` | Add additional init containers to the Argo CD pod(s) | `[]` |
### Argo CD ApplicationSet controller parameters
| Name | Description | Value |
| ------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------- | --------------- |
| `applicationSet.enabled` | Enable ApplicationSet controller | `false` |
| `applicationSet.replicaCount` | The number of ApplicationSet controller pods to run | `1` |
| `applicationSet.command` | Override default container command (useful when using custom images) | `[]` |
| `applicationSet.defaultArgs.enableLeaderElection` | Enable leader election | `false` |
| `applicationSet.defaultArgs.policy` | Default policy | `sync` |
| `applicationSet.defaultArgs.debug` | Enable debug mode | `false` |
| `applicationSet.defaultArgs.dryRun` | Enable dry-run mode | `false` |
| `applicationSet.args` | Override default container args (useful when using custom images). Overrides the defaultArgs. | `[]` |
| `applicationSet.extraArgs` | Add extra arguments to the default arguments for the Argo CD applicationSet controller | `[]` |
| `applicationSet.logFormat` | Format for the Argo CD applicationSet controller logs. Options: [text, json] | `text` |
| `applicationSet.logLevel` | Log level for the Argo CD applicationSet controller | `info` |
| `applicationSet.containerPorts.metrics` | Argo CD applicationSet controller metrics port number | `8085` |
| `applicationSet.containerPorts.probe` | Argo CD applicationSet controller probe port number | `8081` |
| `applicationSet.metrics.enabled` | Enable Argo CD applicationSet controller metrics | `false` |
| `applicationSet.metrics.service.type` | Argo CD applicationSet controller service type | `ClusterIP` |
| `applicationSet.metrics.service.port` | Argo CD applicationSet controller metrics service port | `8085` |
| `applicationSet.metrics.service.nodePort` | Node port for the applicationSet controller service | `""` |
| `applicationSet.metrics.service.clusterIP` | Argo CD applicationSet controller metrics service Cluster IP | `""` |
| `applicationSet.metrics.service.loadBalancerIP` | Argo CD applicationSet controller service Load Balancer IP | `""` |
| `applicationSet.metrics.service.loadBalancerSourceRanges` | Argo CD applicationSet controller service Load Balancer sources | `[]` |
| `applicationSet.metrics.service.externalTrafficPolicy` | Argo CD applicationSet controller service external traffic policy | `Cluster` |
| `applicationSet.metrics.service.annotations` | Additional custom annotations for Argo CD applicationSet controller service | `{}` |
| `applicationSet.metrics.service.sessionAffinity` | Session Affinity for Kubernetes service, can be "None" or "ClientIP" | `None` |
| `applicationSet.metrics.service.sessionAffinityConfig` | Additional settings for the sessionAffinity | `{}` |
| `applicationSet.metrics.serviceMonitor.enabled` | Create ServiceMonitor Resource for scraping metrics using PrometheusOperator | `false` |
| `applicationSet.metrics.serviceMonitor.namespace` | Namespace which Prometheus is running in | `""` |
| `applicationSet.metrics.serviceMonitor.jobLabel` | The name of the label on the target service to use as the job name in prometheus. | `""` |
| `applicationSet.metrics.serviceMonitor.interval` | Interval at which metrics should be scraped | `30s` |
| `applicationSet.metrics.serviceMonitor.scrapeTimeout` | Timeout after which the scrape is ended | `10s` |
| `applicationSet.metrics.serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping | `[]` |
| `applicationSet.metrics.serviceMonitor.metricRelabelings` | MetricRelabelConfigs to apply to samples before ingestion | `[]` |
| `applicationSet.metrics.serviceMonitor.selector` | ServiceMonitor selector labels | `{}` |
| `applicationSet.metrics.serviceMonitor.honorLabels` | honorLabels chooses the metric's labels on collisions with target labels | `false` |
| `applicationSet.service.type` | Argo CD applicationSet controller service type | `ClusterIP` |
| `applicationSet.service.port` | Argo CD applicationSet controller service port | `7000` |
| `applicationSet.service.nodePort` | Node port for Argo CD applicationSet controller service | `""` |
| `applicationSet.service.clusterIP` | Argo CD applicationSet controller service Cluster IP | `""` |
| `applicationSet.service.loadBalancerIP` | Argo CD applicationSet controller service Load Balancer IP | `""` |
| `applicationSet.service.loadBalancerSourceRanges` | Argo CD applicationSet controller service Load Balancer sources | `[]` |
| `applicationSet.service.externalTrafficPolicy` | Argo CD applicationSet controller service external traffic policy | `Cluster` |
| `applicationSet.service.annotations` | Additional custom annotations for Argo CD applicationSet controller service | `{}` |
| `applicationSet.service.extraPorts` | Extra ports to expose (normally used with the `sidecar` value) | `[]` |
| `applicationSet.service.sessionAffinity` | Session Affinity for Kubernetes service, can be "None" or "ClientIP" | `None` |
| `applicationSet.service.sessionAffinityConfig` | Additional settings for the sessionAffinity | `{}` |
| `applicationSet.serviceAccount.create` | Specifies whether a ServiceAccount should be created | `true` |
| `applicationSet.serviceAccount.name` | The name of the ServiceAccount to use. | `""` |
| `applicationSet.serviceAccount.automountServiceAccountToken` | Automount service account token for the applicationSet controller service account | `true` |
| `applicationSet.serviceAccount.annotations` | Annotations for service account. Evaluated as a template. Only used if `create` is `true`. | `{}` |
| `applicationSet.podAffinityPreset` | Pod affinity preset. Ignored if `applicationSet.affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `applicationSet.podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `applicationSet.affinity` is set. Allowed values: `soft` or `hard` | `soft` |
| `applicationSet.nodeAffinityPreset.type` | Node affinity preset type. Ignored if `applicationSet.affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `applicationSet.nodeAffinityPreset.key` | Node label key to match. Ignored if `applicationSet.affinity` is set | `""` |
| `applicationSet.nodeAffinityPreset.values` | Node label values to match. Ignored if `applicationSet.affinity` is set | `[]` |
| `applicationSet.affinity` | Affinity for Argo CD applicationSet controller pods assignment | `{}` |
| `applicationSet.podAnnotations` | Annotations for Argo CD applicationSet controller pods | `{}` |
| `applicationSet.podLabels` | Extra labels for Argo CD applicationSet controller pods | `{}` |
| `applicationSet.containerSecurityContext.enabled` | Enabled Argo CD applicationSet controller containers' Security Context | `true` |
| `applicationSet.containerSecurityContext.runAsUser` | Set Argo CD applicationSet controller containers' Security Context runAsUser | `1001` |
| `applicationSet.containerSecurityContext.allowPrivilegeEscalation` | Set Argo CD applicationSet controller containers' Security Context allowPrivilegeEscalation | `false` |
| `applicationSet.containerSecurityContext.capabilities.drop` | Set Argo CD applicationSet controller containers' Security Context capabilities to be dropped | `["all"]` |
| `applicationSet.containerSecurityContext.readOnlyRootFilesystem` | Set Argo CD applicationSet controller containers' Security Context readOnlyRootFilesystem | `false` |
| `applicationSet.containerSecurityContext.runAsNonRoot` | Set Argo CD applicationSet controller container's Security Context runAsNonRoot | `true` |
| `applicationSet.livenessProbe.enabled` | Enable livenessProbe on Argo CD applicationSet controller nodes | `true` |
| `applicationSet.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `10` |
| `applicationSet.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
| `applicationSet.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `1` |
| `applicationSet.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` |
| `applicationSet.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
| `applicationSet.readinessProbe.enabled` | Enable readinessProbe on Argo CD applicationSet controller nodes | `true` |
| `applicationSet.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `10` |
| `applicationSet.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
| `applicationSet.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` |
| `applicationSet.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `3` |
| `applicationSet.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
| `applicationSet.customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` |
| `applicationSet.customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` |
| `applicationSet.resources.limits` | The resources limits for the Argo CD applicationSet controller containers | `{}` |
| `applicationSet.resources.requests` | The requested resources for the Argo CD applicationSet controller containers | `{}` |
| `applicationSet.podSecurityContext.enabled` | Enabled Argo CD applicationSet controller pods' Security Context | `true` |
| `applicationSet.podSecurityContext.fsGroup` | Set Argo CD applicationSet controller pod's Security Context fsGroup | `1001` |
| `applicationSet.nodeSelector` | Node labels for Argo CD applicationSet controller pods assignment | `{}` |
| `applicationSet.tolerations` | Tolerations for Argo CD applicationSet controller pods assignment | `[]` |
| `applicationSet.updateStrategy.type` | Argo CD applicationSet controller statefulset strategy type | `RollingUpdate` |
| `applicationSet.priorityClassName` | Argo CD applicationSet controller pods' priorityClassName | `""` |
| `applicationSet.extraVolumes` | Optionally specify extra list of additional volumes for the Argo CD applicationSet controller pod(s) | `[]` |
| `applicationSet.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the Argo CD applicationSet controller container(s) | `[]` |
| `applicationSet.extraEnvVars` | Array with extra environment variables to add to Argo CD applicationSet controller nodes | `[]` |
| `applicationSet.extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars for Argo CD applicationSet controller nodes | `""` |
| `applicationSet.extraEnvVarsSecret` | Name of existing Secret containing extra env vars for Argo CD applicationSet controller nodes | `""` |
| `applicationSet.webhook.ingress.enabled` | Enable an ingress resource for Webhooks | `false` |
| `applicationSet.webhook.ingress.annotations` | Additional ingress annotations | `{}` |
| `applicationSet.webhook.ingress.labels` | Additional ingress labels | `{}` |
| `applicationSet.webhook.ingress.ingressClassName` | Defines which ingress controller will implement the resource | `""` |
| `applicationSet.webhook.ingress.hostname` | Ingress hostname for the Argo CD applicationSet ingress | `""` |
| `applicationSet.webhook.ingress.path` | Argo CD applicationSet ingress path | `/api/webhook` |
| `applicationSet.webhook.ingress.pathType` | Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific` | `Prefix` |
| `applicationSet.webhook.ingress.extraHosts` | Extra hosts array for the Argo CD applicationSet ingress | `[]` |
| `applicationSet.webhook.ingress.extraPaths` | Extra paths for the Argo CD applicationSet ingress | `[]` |
| `applicationSet.webhook.ingress.extraTls` | Extra TLS configuration for the Argo CD applicationSet ingress | `[]` |
| `applicationSet.webhook.ingress.tls` | Ingress TLS configuration | `[]` |
### Argo CD server Parameters
| Name | Description | Value |
@@ -581,6 +687,7 @@ The command removes all the Kubernetes components associated with the chart and
| `config.styles` | Custom CSS styles | `""` |
| `config.existingStylesConfigmap` | Use an existing styles configmap | `""` |
| `config.tlsCerts` | TLS certificates used to verify the authenticity of the repository servers | `{}` |
| `config.gpgKeys` | GnuPG public keys to add to the keyring | `{}` |
| `config.secret.create` | Whether to create or not the secret | `true` |
| `config.secret.annotations` | General secret extra annotations | `{}` |
| `config.secret.githubSecret` | GitHub secret to configure webhooks | `""` |
+18
View File
@@ -40,6 +40,13 @@ Return the proper service name for Argo CD controller adding the working namespa
{{- printf "%s-app-controller" (include "common.names.fullname.namespace" .) | trunc 63 | trimSuffix "-" }}
{{- end -}}
{{/*
Return the proper service name for Argo CD applicationSet controller
*/}}
{{- define "argocd.applicationSet" -}}
{{- printf "%s-applicationset-controller" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }}
{{- end -}}
{{/*
Return the proper service name for Argo CD server
*/}}
@@ -110,6 +117,17 @@ Create the name of the service account to use for the Argo CD application contro
{{- end -}}
{{- end -}}
{{/*
Create the name of the service account to use for the Argo CD applicationSet controller
*/}}
{{- define "argocd.applicationSet.serviceAccountName" -}}
{{- if .Values.applicationSet.serviceAccount.create -}}
{{ default (printf "%s-applicationset-controller" (include "common.names.fullname" .)) .Values.applicationSet.serviceAccount.name | trunc 63 | trimSuffix "-" }}
{{- else -}}
{{ default "default" .Values.applicationSet.serviceAccount.name }}
{{- end -}}
{{- end -}}
{{/*
Create the name of the service account to use for the Argo CD repo server
*/}}
@@ -144,9 +144,9 @@ spec:
- --repo-server
- {{ include "argocd.repo-server" . }}:{{ .Values.repoServer.service.port }}
- --logformat
- {{ .Values.controller.logFormat }}
- {{ .Values.controller.logFormat | quote }}
- --loglevel
- {{ .Values.controller.logLevel }}
- {{ .Values.controller.logLevel | quote }}
# TODO(miguelaeh): Test the chart using redis sentinel enabled: https://github.com/argoproj/argo-cd/blob/2a410187565e15633b6f2a8c8d8da22cf02b257d/util/cache/cache.go#L40
- --redis
- {{ include "argocd.redisHost" . }}:{{ include "argocd.redisPort" . }}
@@ -38,4 +38,4 @@ rules:
verbs:
- create
- list
{{- end }}
{{- end }}
@@ -0,0 +1,183 @@
{{- if .Values.applicationSet.enabled }}
apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }}
kind: Deployment
metadata:
name: {{ include "argocd.applicationSet" . }}
namespace: {{ .Release.Namespace | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: applicationSet
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
replicas: {{ .Values.applicationSet.replicaCount }}
{{- if .Values.applicationSet.updateStrategy }}
strategy: {{- toYaml .Values.applicationSet.updateStrategy | nindent 4 }}
{{- end }}
selector:
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
app.kubernetes.io/component: applicationSet
template:
metadata:
{{- if .Values.applicationSet.podAnnotations }}
annotations: {{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.podAnnotations "context" $) | nindent 8 }}
{{- end }}
labels: {{- include "common.labels.standard" . | nindent 8 }}
app.kubernetes.io/component: applicationSet
{{- if .Values.applicationSet.podLabels }}
{{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.podLabels "context" $) | nindent 8 }}
{{- end }}
spec:
serviceAccountName: {{ include "argocd.applicationSet.serviceAccountName" . }}
{{- include "argocd.imagePullSecrets" . | nindent 6 }}
{{- if .Values.applicationSet.nodeSelector }}
nodeSelector: {{- include "common.tplvalues.render" ( dict "value" .Values.applicationSet.nodeSelector "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.applicationSet.affinity }}
affinity: {{- include "common.tplvalues.render" ( dict "value" .Values.applicationSet.affinity "context" $) | nindent 8 }}
{{- else }}
affinity:
podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.applicationSet.podAffinityPreset "component" "applicationSet" "context" $) | nindent 10 }}
podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.applicationSet.podAntiAffinityPreset "component" "applicationSet" "context" $) | nindent 10 }}
nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.applicationSet.nodeAffinityPreset.type "key" .Values.applicationSet.nodeAffinityPreset.key "values" .Values.applicationSet.nodeAffinityPreset.values) | nindent 10 }}
{{- end }}
{{- if .Values.applicationSet.tolerations }}
tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.tolerations "context" .) | nindent 8 }}
{{- end }}
{{- if .Values.applicationSet.priorityClassName }}
priorityClassName: {{ .Values.applicationSet.priorityClassName | quote }}
{{- end }}
{{- if .Values.applicationSet.podSecurityContext.enabled }}
securityContext: {{- omit .Values.applicationSet.podSecurityContext "enabled" | toYaml | nindent 8 }}
{{- end }}
containers:
- name: applicationset-controller
image: {{ include "argocd.image" . }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.applicationSet.command }}
command: {{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.command "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.applicationSet.args }}
args: {{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.args "context" $) | nindent 12 }}
{{- else }}
args:
- argocd-applicationset-controller
- --logformat
- {{ .Values.applicationSet.logFormat | quote }}
- --loglevel
- {{ .Values.applicationSet.logLevel | quote }}
- --metrics-addr
- ":{{ .Values.applicationSet.containerPorts.metrics }}"
- --probe-addr
- ":{{ .Values.applicationSet.containerPorts.probe }}"
{{- if or (gt ( .Values.applicationSet.replicaCount | int64) 1) .Values.applicationSet.defaultArgs.enableLeaderElection }}
- --enable-leader-election=true
{{- end }}
- --argocd-repo-server
- {{ include "argocd.repo-server" . }}:{{ .Values.repoServer.service.port }}
- --policy
- {{ .Values.applicationSet.defaultArgs.policy | quote }}
- --debug
- {{ .Values.applicationSet.defaultArgs.debug | quote }}
- --dry-run
- {{ .Values.applicationSet.defaultArgs.dryRun | quote }}
{{- if .Values.applicationSet.extraArgs }}
{{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.extraArgs "context" $) | nindent 12 }}
{{- end }}
{{- end }}
env:
{{- if .Values.applicationSet.extraEnvVars }}
{{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.extraEnvVars "context" $) | nindent 12 }}
{{- end }}
envFrom:
{{- if .Values.applicationSet.extraEnvVarsCM }}
- configMapRef:
name: {{ include "common.tplvalues.render" (dict "value" .Values.applicationSet.extraEnvVarsCM "context" $) }}
{{- end }}
{{- if .Values.applicationSet.extraEnvVarsSecret }}
- secretRef:
name: {{ include "common.tplvalues.render" (dict "value" .Values.applicationSet.extraEnvVarsSecret "context" $) }}
{{- end }}
ports:
- name: metrics
containerPort: {{ .Values.applicationSet.containerPorts.metrics }}
protocol: TCP
- name: probe
containerPort: {{ .Values.applicationSet.containerPorts.probe }}
protocol: TCP
- name: webhook
containerPort: 7000
protocol: TCP
{{- if .Values.applicationSet.customLivenessProbe }}
livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.customLivenessProbe "context" $) | nindent 12 }}
{{- else if .Values.applicationSet.livenessProbe.enabled }}
livenessProbe:
tcpSocket:
port: probe
initialDelaySeconds: {{ .Values.applicationSet.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.applicationSet.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.applicationSet.livenessProbe.timeoutSeconds }}
successThreshold: {{ .Values.applicationSet.livenessProbe.successThreshold }}
failureThreshold: {{ .Values.applicationSet.livenessProbe.failureThreshold }}
{{- end }}
{{- if .Values.applicationSet.customReadinessProbe }}
readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.customReadinessProbe "context" $) | nindent 12 }}
{{- else if .Values.applicationSet.readinessProbe.enabled }}
readinessProbe:
tcpSocket:
port: probe
initialDelaySeconds: {{ .Values.applicationSet.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.applicationSet.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.applicationSet.readinessProbe.timeoutSeconds }}
successThreshold: {{ .Values.applicationSet.readinessProbe.successThreshold }}
failureThreshold: {{ .Values.applicationSet.readinessProbe.failureThreshold }}
{{- end }}
{{- if .Values.applicationSet.resources }}
resources: {{- toYaml .Values.applicationSet.resources | nindent 12 }}
{{- end }}
{{- if .Values.applicationSet.containerSecurityContext.enabled }}
securityContext: {{- omit .Values.applicationSet.containerSecurityContext "enabled" | toYaml | nindent 12 }}
{{- end }}
volumeMounts:
- mountPath: /app/config/ssh
name: ssh-known-hosts
{{- if .Values.config.tlsCerts }}
- mountPath: /app/config/tls
name: tls-certs
{{- end }}
{{- if .Values.config.gpgKeys }}
- mountPath: /app/config/gpg/source
name: gpg-keys
{{- end }}
- mountPath: /app/config/gpg/keys
name: gpg-keyring
- mountPath: /tmp
name: tmp
{{- if .Values.applicationSet.extraVolumeMounts }}
{{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.extraVolumeMounts "context" $) | nindent 12 }}
{{- end }}
volumes:
- name: ssh-known-hosts
configMap:
name: argocd-ssh-known-hosts-cm
{{- if .Values.config.tlsCerts }}
- name: tls-certs
configMap:
name: argocd-tls-certs-cm
{{- end }}
{{- if .Values.config.gpgKeys }}
- name: gpg-keys
configMap:
name: argocd-gpg-keys-cm
{{- end }}
- name: gpg-keyring
emptyDir: {}
- name: tmp
emptyDir: {}
{{- if .Values.applicationSet.extraVolumes }}
{{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.extraVolumes "context" $) | nindent 8 }}
{{- end }}
{{- end }}
@@ -0,0 +1,64 @@
{{- if and .Values.applicationSet.enabled .Values.applicationSet.webhook.ingress.enabled -}}
apiVersion: {{ include "common.capabilities.webhook.ingress.apiVersion" . }}
kind: Ingress
metadata:
name: {{ include "argocd.applicationSet" . }}
namespace: {{ .Release.Namespace | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: applicationSet
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.applicationSet.webhook.ingress.labels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.applicationSet.webhook.ingress.labels "context" $ ) | nindent 4 }}
{{- end }}
{{- if or .Values.applicationSet.webhook.ingress.annotations .Values.commonAnnotations .Values.applicationSet.webhook.ingress.certManager }}
annotations:
{{- if .Values.applicationSet.webhook.ingress.certManager }}
kubernetes.io/tls-acme: "true"
{{- end }}
{{- if .Values.applicationSet.webhook.ingress.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.applicationSet.webhook.ingress.annotations "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
spec:
{{- if and .Values.applicationSet.webhook.ingress.ingressClassName (eq "true" (include "common.webhook.ingress.supportsIngressClassname" .)) }}
ingressClassName: {{ .Values.applicationSet.webhook.ingress.ingressClassName | quote }}
{{- end }}
rules:
{{- if .Values.applicationSet.webhook.ingress.hostname }}
- host: {{ .Values.applicationSet.webhook.ingress.hostname }}
http:
paths:
{{- if .Values.applicationSet.webhook.ingress.extraPaths }}
{{- toYaml .Values.applicationSet.webhook.ingress.extraPaths | nindent 10 }}
{{- end }}
- path: {{ .Values.applicationSet.webhook.ingress.path }}
{{- if eq "true" (include "common.ingress.supportsPathType" .) }}
pathType: {{ .Values.applicationSet.webhook.ingress.pathType }}
{{- end }}
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "argocd.server" .) "servicePort" (ternary "https" "http" .Values.applicationSet.webhook.ingress.tls) "context" $) | nindent 14 }}
{{- end }}
{{- range .Values.applicationSet.webhook.ingress.extraHosts }}
- host: {{ .name | quote }}
http:
paths:
- path: {{ default "/" .path }}
{{- if eq "true" (include "common.ingress.supportsPathType" $) }}
pathType: {{ default "ImplementationSpecific" .pathType }}
{{- end }}
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "argocd.server" $) "servicePort" (ternary "https" "http" $.Values.applicationSet.webhook.ingress.tls) "context" $) | nindent 14 }}
{{- end }}
tls:
{{- if .Values.applicationSet.webhook.ingress.tls }}
- hosts:
- {{ .Values.applicationSet.webhook.ingress.hostname }}
secretName: {{ printf "%s-tls" .Values.applicationSet.webhook.ingress.hostname }}
{{- end }}
{{- if .Values.applicationSet.webhook.ingress.extraTls }}
{{- include "common.tplvalues.render" ( dict "value" .Values.applicationSet.webhook.ingress.extraTls "context" $ ) | nindent 4 }}
{{- end }}
{{- end -}}
@@ -0,0 +1,53 @@
{{- if and .Values.applicationSet.enabled .Values.applicationSet.metrics.enabled }}
apiVersion: v1
kind: Service
metadata:
name: {{ include "argocd.applicationSet" . }}-metrics
namespace: {{ .Release.Namespace | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: metrics
app.kubernetes.io/part-of: applicationSet
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- with .Values.applicationSet.metrics.service.annotations }}
annotations:
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.applicationSet.metrics.service.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.applicationSet.metrics.service.annotations "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
spec:
type: {{ .Values.applicationSet.metrics.service.type }}
{{- if and .Values.applicationSet.metrics.service.clusterIP (eq .Values.applicationSet.metrics.service.type "ClusterIP") }}
clusterIP: {{ .Values.applicationSet.metrics.service.clusterIP }}
{{- end }}
{{- if (or (eq .Values.applicationSet.metrics.service.type "LoadBalancer") (eq .Values.applicationSet.metrics.service.type "NodePort")) }}
externalTrafficPolicy: {{ .Values.applicationSet.metrics.service.externalTrafficPolicy | quote }}
{{- end }}
{{- if eq .Values.applicationSet.metrics.service.type "LoadBalancer" }}
loadBalancerSourceRanges: {{ .Values.applicationSet.metrics.service.loadBalancerSourceRanges }}
{{- end }}
{{- if (and (eq .Values.applicationSet.metrics.service.type "LoadBalancer") (not (empty .Values.applicationSet.metrics.service.loadBalancerIP))) }}
loadBalancerIP: {{ .Values.applicationSet.metrics.service.loadBalancerIP }}
{{- end }}
{{- if .Values.applicationSet.metrics.service.sessionAffinity }}
sessionAffinity: {{ .Values.applicationSet.metrics.service.sessionAffinity }}
{{- end }}
{{- if .Values.applicationSet.metrics.service.sessionAffinityConfig }}
sessionAffinityConfig: {{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.metrics.service.sessionAffinityConfig "context" $) | nindent 4 }}
{{- end }}
ports:
- name: http-metrics
port: {{ .Values.applicationSet.metrics.service.port }}
protocol: TCP
{{- if (and (or (eq .Values.applicationSet.service.type "NodePort") (eq .Values.applicationSet.service.type "LoadBalancer")) (not (empty .Values.applicationSet.metrics.service.nodePort))) }}
nodePort: {{ .Values.applicationSet.metrics.service.nodePort }}
{{- else if eq .Values.applicationSet.metrics.service.type "ClusterIP" }}
nodePort: null
{{- end }}
selector: {{- include "common.labels.matchLabels" . | nindent 4 }}
app.kubernetes.io/component: applicationSet
{{- end }}
@@ -0,0 +1,91 @@
{{- if and .Values.rbac.create .Values.applicationSet.enabled }}
kind: Role
apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }}
metadata:
name: {{ include "argocd.applicationSet" . }}
namespace: {{ .Release.Namespace | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
rules:
- apiGroups:
- argoproj.io
resources:
- applications
- applicationsets
- applicationsets/finalizers
- applicationsets/status
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- argoproj.io
resources:
- applicationsets/status
verbs:
- get
- patch
- update
- apiGroups:
- argoproj.io
resources:
- appprojects
verbs:
- get
- apiGroups:
- ""
resources:
- events
verbs:
- create
- get
- list
- patch
- watch
- apiGroups:
- ""
resources:
- secrets
- configmaps
verbs:
- get
- list
- watch
- apiGroups:
- apps
- extensions
resources:
- deployments
verbs:
- get
- list
- watch
# Leader election
- apiGroups:
- ""
resources:
- configmaps
verbs:
- create
- update
- delete
- patch
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
{{- end }}
@@ -0,0 +1,18 @@
{{- if and .Values.applicationSet.enabled .Values.applicationSet.serviceAccount.create .Values.rbac.create }}
kind: RoleBinding
apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }}
metadata:
name: {{ include "argocd.applicationSet" . }}
namespace: {{ .Release.Namespace | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
subjects:
- kind: ServiceAccount
name: {{ include "argocd.applicationSet.serviceAccountName" . }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ include "argocd.applicationSet" . }}
{{- end }}
@@ -0,0 +1,22 @@
{{- if and .Values.applicationSet.enabled .Values.rbac.create .Values.applicationSet.serviceAccount.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "argocd.applicationSet.serviceAccountName" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if or .Values.applicationSet.serviceAccount.annotations .Values.commonAnnotations }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: applicationSet
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
annotations:
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" (dict "value" .Values.commonAnnotations "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.applicationSet.serviceAccount.annotations }}
{{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.serviceAccount.annotations "context" $) | nindent 4 }}
{{- end }}
{{- end }}
automountServiceAccountToken: {{ .Values.applicationSet.serviceAccount.automountServiceAccountToken }}
{{- end }}
@@ -0,0 +1,55 @@
{{- if .Values.applicationSet.enabled }}
apiVersion: v1
kind: Service
metadata:
name: {{ include "argocd.applicationSet" . }}
namespace: {{ .Release.Namespace | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: applicationSet
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if or .Values.commonAnnotations .Values.applicationSet.service.annotations }}
annotations:
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.applicationSet.service.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.applicationSet.service.annotations "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
spec:
type: {{ .Values.applicationSet.service.type }}
{{- if and .Values.applicationSet.service.clusterIP (eq .Values.applicationSet.service.type "ClusterIP") }}
clusterIP: {{ .Values.applicationSet.service.clusterIP }}
{{- end }}
{{- if (or (eq .Values.applicationSet.service.type "LoadBalancer") (eq .Values.applicationSet.service.type "NodePort")) }}
externalTrafficPolicy: {{ .Values.applicationSet.service.externalTrafficPolicy | quote }}
{{- end }}
{{- if eq .Values.applicationSet.service.type "LoadBalancer" }}
loadBalancerSourceRanges: {{ .Values.applicationSet.service.loadBalancerSourceRanges }}
{{- end }}
{{- if (and (eq .Values.applicationSet.service.type "LoadBalancer") (not (empty .Values.applicationSet.service.loadBalancerIP))) }}
loadBalancerIP: {{ .Values.applicationSet.service.loadBalancerIP }}
{{- end }}
{{- if .Values.applicationSet.service.sessionAffinity }}
sessionAffinity: {{ .Values.applicationSet.service.sessionAffinity }}
{{- end }}
{{- if .Values.applicationSet.service.sessionAffinityConfig }}
sessionAffinityConfig: {{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.service.sessionAffinityConfig "context" $) | nindent 4 }}
{{- end }}
ports:
- name: webhook
port: {{ .Values.applicationSet.service.port }}
targetPort: webhook
{{- if (and (or (eq .Values.applicationSet.service.type "NodePort") (eq .Values.applicationSet.service.type "LoadBalancer")) (not (empty .Values.applicationSet.service.nodePort))) }}
nodePort: {{ .Values.applicationSet.service.nodePort }}
{{- else if eq .Values.applicationSet.service.type "ClusterIP" }}
nodePort: null
{{- end }}
{{- if .Values.applicationSet.service.extraPorts }}
{{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.service.extraPorts "context" $) | nindent 4 }}
{{- end }}
selector: {{- include "common.labels.matchLabels" . | nindent 4 }}
app.kubernetes.io/component: applicationSet
{{- end }}
@@ -0,0 +1,49 @@
{{- if and .Values.applicationSet.enabled .Values.applicationSet.metrics.enabled .Values.applicationSet.metrics.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "argo-cd.applicationSet" . }}
{{- if .Values.applicationSet.metrics.serviceMonitor.namespace }}
namespace: {{ .Values.applicationSet.metrics.serviceMonitor.namespace | quote }}
{{- else }}
namespace: {{ .Release.Namespace | quote }}
{{- end }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" (dict "value" .Values.commonLabels "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.applicationSet.metrics.serviceMonitor.selector }}
{{- include "common.tplvalues.render" (dict "value" .Values.applicationSet.metrics.serviceMonitor.selector "context" $) | nindent 4 }}
{{- end }}
app.kubernetes.io/component: applicationSet
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" (dict "value" .Values.commonAnnotations "context" $) | nindent 4 }}
{{- end }}
spec:
endpoints:
- port: http-metrics
path: /metrics
{{- if .Values.applicationSet.metrics.serviceMonitor.interval }}
interval: {{ .Values.applicationSet.metrics.serviceMonitor.interval }}
{{- end }}
{{- if .Values.applicationSet.metrics.serviceMonitor.scrapeTimeout }}
scrapeTimeout: {{ .Values.applicationSet.metrics.serviceMonitor.scrapeTimeout }}
{{- end }}
{{- if .Values.applicationSet.metrics.serviceMonitor.honorLabels }}
honorLabels: {{ .Values.applicationSet.metrics.serviceMonitor.honorLabels }}
{{- end }}
{{- if .Values.applicationSet.metrics.serviceMonitor.metricRelabelings }}
metricRelabelings: {{- include "common.tplvalues.render" ( dict "value" .Values.applicationSet.metrics.serviceMonitor.metricRelabelings "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.applicationSet.metrics.serviceMonitor.relabelings }}
relabelings: {- include "common.tplvalues.render" ( dict "value" .Values.applicationSet.metrics.serviceMonitor.relabelings "context" $) | nindent 8 }}
{{- end }}
namespaceSelector:
matchNames:
- {{ .Release.Namespace }}
selector:
matchLabels:
{{- include "common.labels.matchLabels" . | nindent 6 }}
app.kubernetes.io/component: metrics
app.kubernetes.io/part-of: applicationSet
{{- end }}
@@ -0,0 +1,19 @@
{{- if .Values.config.gpgKeys }}
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-gpg-keys-cm
namespace: {{ .Release.Namespace | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
# Mandatory label
# Ref: https://argoproj.github.io/argo-cd/operator-manual/declarative-setup/#atomic-configuration
app.kubernetes.io/part-of: argocd
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
data:
{{- include "common.tplvalues.render" (dict "value" .Values.config.gpgKeys "context" $) | nindent 2 }}
{{- end }}
@@ -152,9 +152,9 @@ spec:
args:
- argocd-repo-server
- --logformat
- {{ .Values.repoServer.logFormat }}
- {{ .Values.repoServer.logFormat | quote }}
- --loglevel
- {{ .Values.repoServer.logLevel }}
- {{ .Values.repoServer.logLevel | quote }}
- --redis
- {{ include "argocd.redisHost" . }}:{{ include "argocd.redisPort" . }}
{{- if .Values.repoServer.extraArgs }}
@@ -13,8 +13,9 @@ rules:
- argoproj.io
resources:
- applications
- applicationset
verbs:
- get
- list
- watch
{{- end }}
{{- end }}
+2 -1
View File
@@ -26,6 +26,7 @@ rules:
- argoproj.io
resources:
- applications
- applicationsets
- appprojects
verbs:
- create
@@ -42,4 +43,4 @@ rules:
verbs:
- create
- list
{{- end }}
{{- end }}
+417
View File
@@ -554,6 +554,413 @@ controller:
##
initContainers: []
## @section Argo CD ApplicationSet controller parameters
## ApplicationSet controller
##
applicationSet:
## @param applicationSet.enabled Enable ApplicationSet controller
##
enabled: false
## @param applicationSet.replicaCount The number of ApplicationSet controller pods to run
##
replicaCount: 1
## @param applicationSet.command Override default container command (useful when using custom images)
##
command: []
## Arguments that will be used by default for the application controller
## @param applicationSet.defaultArgs.enableLeaderElection Enable leader election
## @param applicationSet.defaultArgs.policy Default policy
## @param applicationSet.defaultArgs.debug Enable debug mode
## @param applicationSet.defaultArgs.dryRun Enable dry-run mode
##
defaultArgs:
enableLeaderElection: false
policy: "sync"
debug: "false"
dryRun: "false"
## @param applicationSet.args Override default container args (useful when using custom images). Overrides the defaultArgs.
##
args: []
## @param applicationSet.extraArgs Add extra arguments to the default arguments for the Argo CD applicationSet controller
##
extraArgs: []
## Argo CD applicationSet controller log format: text|json
## @param applicationSet.logFormat Format for the Argo CD applicationSet controller logs. Options: [text, json]
##
logFormat: text
## Argo CD applicationSet controller log level
## @param applicationSet.logLevel Log level for the Argo CD applicationSet controller
##
logLevel: info
## Argo CD applicationSet controller ports
## @param applicationSet.containerPorts.metrics Argo CD applicationSet controller metrics port number
## @param applicationSet.containerPorts.probe Argo CD applicationSet controller probe port number
##
containerPorts:
metrics: 8085
probe: 8081
## Metrics configuration for Argo CD applicationSet controller
##
metrics:
## @param applicationSet.metrics.enabled Enable Argo CD applicationSet controller metrics
##
enabled: false
service:
## @param applicationSet.metrics.service.type Argo CD applicationSet controller service type
##
type: ClusterIP
## @param applicationSet.metrics.service.port Argo CD applicationSet controller metrics service port
##
port: 8085
## Node ports to expose
## @param applicationSet.metrics.service.nodePort Node port for the applicationSet controller service
## NOTE: choose port between <30000-32767>
##
nodePort: ""
## @param applicationSet.metrics.service.clusterIP Argo CD applicationSet controller metrics service Cluster IP
## e.g.:
## clusterIP: None
##
clusterIP: ""
## @param applicationSet.metrics.service.loadBalancerIP Argo CD applicationSet controller service Load Balancer IP
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
##
loadBalancerIP: ""
## @param applicationSet.metrics.service.loadBalancerSourceRanges Argo CD applicationSet controller service Load Balancer sources
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
## e.g:
## loadBalancerSourceRanges:
## - 10.10.10.0/24
##
loadBalancerSourceRanges: []
## @param applicationSet.metrics.service.externalTrafficPolicy Argo CD applicationSet controller service external traffic policy
## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
##
externalTrafficPolicy: Cluster
## @param applicationSet.metrics.service.annotations Additional custom annotations for Argo CD applicationSet controller service
##
annotations: {}
## @param applicationSet.metrics.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
## If "ClientIP", consecutive client requests will be directed to the same Pod
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
##
sessionAffinity: None
## @param applicationSet.metrics.service.sessionAffinityConfig Additional settings for the sessionAffinity
## sessionAffinityConfig:
## clientIP:
## timeoutSeconds: 300
##
sessionAffinityConfig: {}
## Argo CD applicationSet controller metrics service monitor configuration
##
serviceMonitor:
## @param applicationSet.metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using PrometheusOperator
##
enabled: false
## @param applicationSet.metrics.serviceMonitor.namespace Namespace which Prometheus is running in
## e.g:
## namespace: monitoring
##
namespace: ""
## @param applicationSet.metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
##
jobLabel: ""
## @param applicationSet.metrics.serviceMonitor.interval Interval at which metrics should be scraped
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
##
interval: 30s
## @param applicationSet.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
##
scrapeTimeout: 10s
## @param applicationSet.metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
##
relabelings: []
## @param applicationSet.metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
##
metricRelabelings: []
## @param applicationSet.metrics.serviceMonitor.selector ServiceMonitor selector labels
## ref: https://github.com/bitnami/charts/tree/main/bitnami/prometheus-operator#prometheus-configuration
##
## selector:
## prometheus: my-prometheus
##
selector: {}
## @param applicationSet.metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
##
honorLabels: false
## Argo CD applicationSet controller service parameters
##
service:
## @param applicationSet.service.type Argo CD applicationSet controller service type
##
type: ClusterIP
## @param applicationSet.service.port Argo CD applicationSet controller service port
##
port: 7000
## Node ports to expose
## @param applicationSet.service.nodePort Node port for Argo CD applicationSet controller service
## NOTE: choose port between <30000-32767>
##
nodePort: ""
## @param applicationSet.service.clusterIP Argo CD applicationSet controller service Cluster IP
## e.g.:
## clusterIP: None
##
clusterIP: ""
## @param applicationSet.service.loadBalancerIP Argo CD applicationSet controller service Load Balancer IP
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
##
loadBalancerIP: ""
## @param applicationSet.service.loadBalancerSourceRanges Argo CD applicationSet controller service Load Balancer sources
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
## e.g:
## loadBalancerSourceRanges:
## - 10.10.10.0/24
##
loadBalancerSourceRanges: []
## @param applicationSet.service.externalTrafficPolicy Argo CD applicationSet controller service external traffic policy
## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
##
externalTrafficPolicy: Cluster
## @param applicationSet.service.annotations Additional custom annotations for Argo CD applicationSet controller service
##
annotations: {}
## @param applicationSet.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
##
extraPorts: []
## @param applicationSet.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
## If "ClientIP", consecutive client requests will be directed to the same Pod
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
##
sessionAffinity: None
## @param applicationSet.service.sessionAffinityConfig Additional settings for the sessionAffinity
## sessionAffinityConfig:
## clientIP:
## timeoutSeconds: 300
##
sessionAffinityConfig: {}
## ServiceAccount configuration for the Argo CD applicationSet controller
##
serviceAccount:
## @param applicationSet.serviceAccount.create Specifies whether a ServiceAccount should be created
##
create: true
## @param applicationSet.serviceAccount.name The name of the ServiceAccount to use.
## If not set and create is true, a name is generated using the common.names.fullname template
##
name: ""
## @param applicationSet.serviceAccount.automountServiceAccountToken Automount service account token for the applicationSet controller service account
##
automountServiceAccountToken: true
## @param applicationSet.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
##
annotations: {}
## @param applicationSet.podAffinityPreset Pod affinity preset. Ignored if `applicationSet.affinity` is set. Allowed values: `soft` or `hard`
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
##
podAffinityPreset: ""
## @param applicationSet.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `applicationSet.affinity` is set. Allowed values: `soft` or `hard`
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
##
podAntiAffinityPreset: soft
## Node applicationSet.affinity preset
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
##
nodeAffinityPreset:
## @param applicationSet.nodeAffinityPreset.type Node affinity preset type. Ignored if `applicationSet.affinity` is set. Allowed values: `soft` or `hard`
##
type: ""
## @param applicationSet.nodeAffinityPreset.key Node label key to match. Ignored if `applicationSet.affinity` is set
##
key: ""
## @param applicationSet.nodeAffinityPreset.values Node label values to match. Ignored if `applicationSet.affinity` is set
## E.g.
## values:
## - e2e-az1
## - e2e-az2
##
values: []
## @param applicationSet.affinity Affinity for Argo CD applicationSet controller pods assignment
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
## NOTE: `applicationSet.podAffinityPreset`, `applicationSet.podAntiAffinityPreset`, and `applicationSet.nodeAffinityPreset` will be ignored when it's set
##
affinity: {}
## @param applicationSet.podAnnotations Annotations for Argo CD applicationSet controller pods
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
##
podAnnotations: {}
## @param applicationSet.podLabels Extra labels for Argo CD applicationSet controller pods
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
##
podLabels: {}
## Configure Container Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
## @param applicationSet.containerSecurityContext.enabled Enabled Argo CD applicationSet controller containers' Security Context
## @param applicationSet.containerSecurityContext.runAsUser Set Argo CD applicationSet controller containers' Security Context runAsUser
## @param applicationSet.containerSecurityContext.allowPrivilegeEscalation Set Argo CD applicationSet controller containers' Security Context allowPrivilegeEscalation
## @param applicationSet.containerSecurityContext.capabilities.drop Set Argo CD applicationSet controller containers' Security Context capabilities to be dropped
## @param applicationSet.containerSecurityContext.readOnlyRootFilesystem Set Argo CD applicationSet controller containers' Security Context readOnlyRootFilesystem
## @param applicationSet.containerSecurityContext.runAsNonRoot Set Argo CD applicationSet controller container's Security Context runAsNonRoot
##
containerSecurityContext:
enabled: true
runAsUser: 1001
allowPrivilegeEscalation: false
capabilities:
drop:
- all
readOnlyRootFilesystem: false
runAsNonRoot: true
## @param applicationSet.livenessProbe.enabled Enable livenessProbe on Argo CD applicationSet controller nodes
## @param applicationSet.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
## @param applicationSet.livenessProbe.periodSeconds Period seconds for livenessProbe
## @param applicationSet.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
## @param applicationSet.livenessProbe.failureThreshold Failure threshold for livenessProbe
## @param applicationSet.livenessProbe.successThreshold Success threshold for livenessProbe
##
livenessProbe:
enabled: true
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
successThreshold: 1
## @param applicationSet.readinessProbe.enabled Enable readinessProbe on Argo CD applicationSet controller nodes
## @param applicationSet.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
## @param applicationSet.readinessProbe.periodSeconds Period seconds for readinessProbe
## @param applicationSet.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
## @param applicationSet.readinessProbe.failureThreshold Failure threshold for readinessProbe
## @param applicationSet.readinessProbe.successThreshold Success threshold for readinessProbe
##
readinessProbe:
enabled: true
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
successThreshold: 1
## @param applicationSet.customLivenessProbe Custom livenessProbe that overrides the default one
##
customLivenessProbe: {}
## @param applicationSet.customReadinessProbe Custom readinessProbe that overrides the default one
##
customReadinessProbe: {}
## Argo CD applicationSet controller resource requests and limits
## ref: https://kubernetes.io/docs/user-guide/compute-resources/
## @param applicationSet.resources.limits The resources limits for the Argo CD applicationSet controller containers
## @param applicationSet.resources.requests The requested resources for the Argo CD applicationSet controller containers
##
resources:
limits: {}
requests: {}
## Configure Pods Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
## @param applicationSet.podSecurityContext.enabled Enabled Argo CD applicationSet controller pods' Security Context
## @param applicationSet.podSecurityContext.fsGroup Set Argo CD applicationSet controller pod's Security Context fsGroup
##
podSecurityContext:
enabled: true
fsGroup: 1001
## @param applicationSet.nodeSelector Node labels for Argo CD applicationSet controller pods assignment
## ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
## @param applicationSet.tolerations Tolerations for Argo CD applicationSet controller pods assignment
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
## @param applicationSet.updateStrategy.type Argo CD applicationSet controller statefulset strategy type
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
##
updateStrategy:
## StrategyType
## Can be set to RollingUpdate or OnDelete
##
type: RollingUpdate
## @param applicationSet.priorityClassName Argo CD applicationSet controller pods' priorityClassName
##
priorityClassName: ""
## @param applicationSet.extraVolumes Optionally specify extra list of additional volumes for the Argo CD applicationSet controller pod(s)
##
extraVolumes: []
## @param applicationSet.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Argo CD applicationSet controller container(s)
##
extraVolumeMounts: []
## @param applicationSet.extraEnvVars Array with extra environment variables to add to Argo CD applicationSet controller nodes
## e.g:
## extraEnvVars:
## - name: FOO
## value: "bar"
##
extraEnvVars: []
## @param applicationSet.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Argo CD applicationSet controller nodes
##
extraEnvVarsCM: ""
## @param applicationSet.extraEnvVarsSecret Name of existing Secret containing extra env vars for Argo CD applicationSet controller nodes
##
extraEnvVarsSecret: ""
## Webhook for the Git Generator
## Ref: https://argocd-applicationset.readthedocs.io/en/master/Generators-Git/#webhook-configuration)
##
webhook:
ingress:
## @param applicationSet.webhook.ingress.enabled Enable an ingress resource for Webhooks
##
enabled: false
## DEPRECATED: Use server.ingress.annotations instead of server.ingress.certManager
## certManager: false
##
## @param applicationSet.webhook.ingress.annotations Additional ingress annotations
##
annotations: {}
## @param applicationSet.webhook.ingress.labels Additional ingress labels
##
labels: {}
## @param applicationSet.webhook.ingress.ingressClassName Defines which ingress controller will implement the resource
##
ingressClassName: ""
## @param applicationSet.webhook.ingress.hostname Ingress hostname for the Argo CD applicationSet ingress
## Hostname must be provided if Ingress is enabled.
##
hostname: ""
## @param applicationSet.webhook.ingress.path Argo CD applicationSet ingress path
##
path: /api/webhook
## @param applicationSet.webhook.ingress.pathType Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific`
##
pathType: Prefix
## @param applicationSet.webhook.ingress.extraHosts Extra hosts array for the Argo CD applicationSet ingress
## The list of additional hostnames to be covered with this ingress record.
## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
##
extraHosts: []
## @param applicationSet.webhook.ingress.extraPaths Extra paths for the Argo CD applicationSet ingress
## Any additional arbitrary paths that may need to be added to the ingress under the main host.
## For example: The ALB ingress controller requires a special rule for handling SSL redirection.
##
extraPaths: []
## - path: /*
## backend:
## serviceName: ssl-redirect
## servicePort: use-annotation
##
## @param applicationSet.webhook.ingress.extraTls Extra TLS configuration for the Argo CD applicationSet ingress
## The tls configuration for additional hostnames to be covered with this ingress record.
## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
##
extraTls: []
## - hosts:
## - argocd.server.local
## secretName: argocd.server.local-tls
##
## @param applicationSet.webhook.ingress.tls Ingress TLS configuration
##
tls: []
## @section Argo CD server Parameters
@@ -2227,10 +2634,20 @@ config:
##
tlsCerts: {}
## @param config.gpgKeys GnuPG public keys to add to the keyring
## Note: Public keys should be exported with `gpg --export --armor <KEY>`
##
gpgKeys: {}
# 4AEE18F83AFDEB23: |
# -----BEGIN PGP PUBLIC KEY BLOCK-----
# ...
# -----END PGP PUBLIC KEY BLOCK-----
## Argo CD general secret configuration
##
secret:
## @param config.secret.create Whether to create or not the secret
##
create: true
## Annotations to be added to argocd-secret
## @param config.secret.annotations General secret extra annotations