summaryrefslogtreecommitdiff
path: root/astroshop-platform/argocd-helmchart/templates
diff options
context:
space:
mode:
authorSaumit <justsaumit@protonmail.com>2025-10-11 02:34:38 +0530
committerSaumit <justsaumit@protonmail.com>2025-10-11 02:34:38 +0530
commit88a326bacdffde9e065b08ba893a17149584e72e (patch)
tree20e380438497afb8c4b33a932505602590721690 /astroshop-platform/argocd-helmchart/templates
parentef773bd27019ec6597bd12237e3b4f4f0f46f244 (diff)
platform: Adding argocd helm chart
Diffstat (limited to 'astroshop-platform/argocd-helmchart/templates')
-rw-r--r--astroshop-platform/argocd-helmchart/templates/NOTES.txt37
-rw-r--r--astroshop-platform/argocd-helmchart/templates/_common.tpl147
-rw-r--r--astroshop-platform/argocd-helmchart/templates/_helpers.tpl321
-rw-r--r--astroshop-platform/argocd-helmchart/templates/_versions.tpl7
-rw-r--r--astroshop-platform/argocd-helmchart/templates/aggregate-roles.yaml70
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrole.yaml23
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrolebinding.yaml16
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/deployment.yaml453
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/metrics.yaml35
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/networkpolicy.yaml20
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/pdb.yaml27
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/prometheusrule.yaml24
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/role.yaml64
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/rolebinding.yaml15
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/serviceaccount.yaml19
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/servicemonitor.yaml51
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/statefulset.yaml465
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/vpa.yaml33
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-applicationset/certificate.yaml39
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-applicationset/clusterrole.yaml90
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-applicationset/clusterrolebinding.yaml16
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-applicationset/deployment.yaml375
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-applicationset/ingress.yaml62
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-applicationset/metrics.yaml35
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-applicationset/networkpolicy.yaml24
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-applicationset/pdb.yaml27
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-applicationset/role.yaml89
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-applicationset/rolebinding.yaml15
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-applicationset/service.yaml25
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-applicationset/serviceaccount.yaml19
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-applicationset/servicemonitor.yaml51
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-commit-server/deployment.yaml222
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-commit-server/metrics.yaml35
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-commit-server/networkpolicy.yaml25
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-commit-server/service.yaml26
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-commit-server/serviceaccount.yaml19
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-cm.yaml17
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-cmd-params-cm.yaml17
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-cmp-cm.yaml25
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-dex-server-tls-secret.yaml25
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-gpg-keys-cm.yaml17
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-notifications-cm.yaml28
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-notifications-secret.yaml23
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-rbac-cm.yaml19
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-repo-server-tls-secret.yaml25
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-secret.yaml49
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-server-tls-secret.yaml22
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-ssh-known-hosts-cm.yaml21
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-styles-cm.yaml12
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-tls-certs-cm.yaml19
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/cluster-secrets.yaml38
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/externalredis-secret.yaml23
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/repository-credentials-secret.yaml21
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-configs/repository-secret.yaml21
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-notifications/clusterrole.yaml52
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-notifications/clusterrolebinding.yaml16
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-notifications/deployment.yaml220
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-notifications/metrics.yaml35
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-notifications/networkpolicy.yaml20
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-notifications/pdb.yaml27
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-notifications/role.yaml45
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-notifications/rolebinding.yaml17
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-notifications/serviceaccount.yaml19
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-notifications/servicemonitor.yaml51
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-repo-server/clusterrole.yaml23
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-repo-server/clusterrolebinding.yaml16
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-repo-server/deployment.yaml537
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-repo-server/hpa.yaml41
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-repo-server/metrics.yaml35
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-repo-server/networkpolicy.yaml38
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-repo-server/pdb.yaml27
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-repo-server/role.yaml13
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-repo-server/rolebinding.yaml17
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-repo-server/service.yaml28
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-repo-server/serviceaccount.yaml19
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-repo-server/servicemonitor.yaml51
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/aws/ingress.yaml71
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/aws/service.yaml26
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/backendtlspolicy.yaml26
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/certificate.yaml50
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/clusterrole.yaml78
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/clusterrolebinding.yaml16
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/deployment.yaml575
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/gke/backendconfig.yaml13
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/gke/frontendconfig.yaml13
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/gke/ingress.yaml68
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/gke/managedcertificate.yaml15
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/grpcroute.yaml43
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/hpa.yaml41
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/httproute.yaml43
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/ingress-grpc.yaml63
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/ingress.yaml69
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/metrics.yaml35
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/networkpolicy.yaml17
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/openshift/route.yaml27
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/pdb.yaml27
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/role.yaml50
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/rolebinding.yaml15
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/service.yaml59
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/serviceaccount.yaml19
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-server/servicemonitor.yaml51
-rw-r--r--astroshop-platform/argocd-helmchart/templates/crds/crd-application.yaml5903
-rw-r--r--astroshop-platform/argocd-helmchart/templates/crds/crd-applicationset.yaml17737
-rw-r--r--astroshop-platform/argocd-helmchart/templates/crds/crd-project.yaml379
-rw-r--r--astroshop-platform/argocd-helmchart/templates/dex/deployment.yaml254
-rw-r--r--astroshop-platform/argocd-helmchart/templates/dex/networkpolicy.yaml30
-rw-r--r--astroshop-platform/argocd-helmchart/templates/dex/pdb.yaml27
-rw-r--r--astroshop-platform/argocd-helmchart/templates/dex/role.yaml19
-rw-r--r--astroshop-platform/argocd-helmchart/templates/dex/rolebinding.yaml17
-rw-r--r--astroshop-platform/argocd-helmchart/templates/dex/service.yaml37
-rw-r--r--astroshop-platform/argocd-helmchart/templates/dex/serviceaccount.yaml16
-rw-r--r--astroshop-platform/argocd-helmchart/templates/dex/servicemonitor.yaml48
-rw-r--r--astroshop-platform/argocd-helmchart/templates/extra-manifests.yaml8
-rw-r--r--astroshop-platform/argocd-helmchart/templates/networkpolicy-default-deny.yaml13
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis-secret-init/job.yaml70
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis-secret-init/role.yaml27
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis-secret-init/rolebinding.yaml19
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis-secret-init/serviceaccount.yaml16
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/deployment.yaml223
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/health-configmap.yaml37
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/metrics.yaml35
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/networkpolicy.yaml35
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/pdb.yaml28
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/service.yaml27
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/serviceaccount.yaml16
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/servicemonitor.yaml49
126 files changed, 31370 insertions, 0 deletions
diff --git a/astroshop-platform/argocd-helmchart/templates/NOTES.txt b/astroshop-platform/argocd-helmchart/templates/NOTES.txt
new file mode 100644
index 0000000..049f5f2
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/NOTES.txt
@@ -0,0 +1,37 @@
+{{- if .Values.notifications.logLevel }}
+DEPRECATED option notifications.logLevel - Use `configs.params."notificationscontroller.log.level"`
+{{- end }}
+{{- if .Values.notifications.logFormat }}
+DEPRECATED option notifications.logFormat - Use `configs.params."notificationscontroller.log.format"`
+{{- end }}
+{{- if .Values.dex.logLevel }}
+DEPRECATED option dex.logLevel - Use `configs.params."dexserver.log.level"`
+{{- end }}
+{{- if .Values.dex.logFormat }}
+DEPRECATED option dex.logFormat - Use `configs.params."dexserver.log.format"`
+{{- end }}
+In order to access the server UI you have the following options:
+
+{{ $rootpath := default "" (index .Values "configs" "params" "server.rootpath") -}}
+1. kubectl port-forward service/{{ include "argo-cd.fullname" . }}-server -n {{ include "argo-cd.namespace" . }} 8080:443
+{{ if $rootpath }}
+ and then open the browser on http://localhost:8080/{{ $rootpath }} and accept the certificate
+{{ else }}
+ and then open the browser on http://localhost:8080 and accept the certificate
+{{ end }}
+2. enable ingress in the values file `server.ingress.enabled` and either
+ - Add the annotation for ssl passthrough: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#option-1-ssl-passthrough
+ - Set the `configs.params."server.insecure"` in the values file and terminate SSL at your ingress: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#option-2-multiple-ingress-objects-and-hosts
+
+
+{{ if eq (toString (index .Values.configs.cm "admin.enabled")) "true" -}}
+After reaching the UI the first time you can login with username: admin and the random password generated during the installation. You can find the password by running:
+
+kubectl -n {{ include "argo-cd.namespace" . }} get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
+
+(You should delete the initial secret afterwards as suggested by the Getting Started Guide: https://argo-cd.readthedocs.io/en/stable/getting_started/#4-login-using-the-cli)
+{{ else if or (index .Values.configs.cm "dex.config") (index .Values.configs.cm "oidc.config") -}}
+After reaching the UI the first time you can login using Dex or OIDC.
+{{ else -}}
+After reaching the UI the first time you cannot login with username and password since you've disabled it. You should enable admin back or configure Dex via `configs.cm.dex.config` or OIDC via `configs.cm.oidc.config`.
+{{ end -}}
diff --git a/astroshop-platform/argocd-helmchart/templates/_common.tpl b/astroshop-platform/argocd-helmchart/templates/_common.tpl
new file mode 100644
index 0000000..4173876
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/_common.tpl
@@ -0,0 +1,147 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "argo-cd.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "argo-cd.fullname" -}}
+{{- if .Values.fullnameOverride -}}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- if contains $name .Release.Name -}}
+{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "argo-cd.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create Argo CD app version
+*/}}
+{{- define "argo-cd.defaultTag" -}}
+{{- default .Chart.AppVersion .Values.global.image.tag }}
+{{- end -}}
+
+{{/*
+Return valid version label
+*/}}
+{{- define "argo-cd.versionLabelValue" -}}
+{{ regexReplaceAll "[^-A-Za-z0-9_.]" (include "argo-cd.defaultTag" .) "-" | trunc 63 | trimAll "-" | trimAll "_" | trimAll "." | quote }}
+{{- end -}}
+
+{{/*
+Common labels
+*/}}
+{{- define "argo-cd.labels" -}}
+helm.sh/chart: {{ include "argo-cd.chart" .context }}
+{{ include "argo-cd.selectorLabels" (dict "context" .context "component" .component "name" .name) }}
+app.kubernetes.io/managed-by: {{ .context.Release.Service }}
+app.kubernetes.io/part-of: argocd
+app.kubernetes.io/version: {{ include "argo-cd.versionLabelValue" .context }}
+{{- with .context.Values.global.additionalLabels }}
+{{ toYaml . }}
+{{- end }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "argo-cd.selectorLabels" -}}
+{{- if .name -}}
+app.kubernetes.io/name: {{ include "argo-cd.name" .context }}-{{ .name }}
+{{ end -}}
+app.kubernetes.io/instance: {{ .context.Release.Name }}
+{{- if .component }}
+app.kubernetes.io/component: {{ .component }}
+{{- end }}
+{{- end }}
+
+{{/*
+Common affinity definition
+Pod affinity
+ - Soft prefers different nodes
+ - Hard requires different nodes and prefers different availibility zones
+Node affinity
+ - Soft prefers given user expressions
+ - Hard requires given user expressions
+*/}}
+{{- define "argo-cd.affinity" -}}
+{{- with .component.affinity -}}
+ {{- toYaml . -}}
+{{- else -}}
+{{- $preset := .context.Values.global.affinity -}}
+{{- if (eq $preset.podAntiAffinity "soft") }}
+podAntiAffinity:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ - weight: 100
+ podAffinityTerm:
+ labelSelector:
+ matchLabels:
+ app.kubernetes.io/name: {{ include "argo-cd.name" .context }}-{{ .component.name }}
+ topologyKey: kubernetes.io/hostname
+{{- else if (eq $preset.podAntiAffinity "hard") }}
+podAntiAffinity:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ - weight: 100
+ podAffinityTerm:
+ labelSelector:
+ matchLabels:
+ app.kubernetes.io/name: {{ include "argo-cd.name" .context }}-{{ .component.name }}
+ topologyKey: topology.kubernetes.io/zone
+ requiredDuringSchedulingIgnoredDuringExecution:
+ - labelSelector:
+ matchLabels:
+ app.kubernetes.io/name: {{ include "argo-cd.name" .context }}-{{ .component.name }}
+ topologyKey: kubernetes.io/hostname
+{{- end }}
+{{- with $preset.nodeAffinity.matchExpressions }}
+{{- if (eq $preset.nodeAffinity.type "soft") }}
+nodeAffinity:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ - weight: 1
+ preference:
+ matchExpressions:
+ {{- toYaml . | nindent 6 }}
+{{- else if (eq $preset.nodeAffinity.type "hard") }}
+nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ {{- toYaml . | nindent 6 }}
+{{- end }}
+{{- end -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Common deployment strategy definition
+- Recreate don't have additional fields, we need to remove them if added by the mergeOverwrite
+*/}}
+{{- define "argo-cd.strategy" -}}
+{{- $preset := . -}}
+{{- if (eq (toString $preset.type) "Recreate") }}
+type: Recreate
+{{- else if (eq (toString $preset.type) "RollingUpdate") }}
+type: RollingUpdate
+{{- with $preset.rollingUpdate }}
+rollingUpdate:
+ {{- toYaml . | nindent 2 }}
+{{- end }}
+{{- end }}
+{{- end -}}
diff --git a/astroshop-platform/argocd-helmchart/templates/_helpers.tpl b/astroshop-platform/argocd-helmchart/templates/_helpers.tpl
new file mode 100644
index 0000000..a7dcb3c
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/_helpers.tpl
@@ -0,0 +1,321 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Create controller name and version as used by the chart label.
+Truncated at 52 chars because StatefulSet label 'controller-revision-hash' is limited
+to 63 chars and it includes 10 chars of hash and a separating '-'.
+*/}}
+{{- define "argo-cd.controller.fullname" -}}
+{{- printf "%s-%s" (include "argo-cd.fullname" .) .Values.controller.name | trunc 52 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create the name of the controller service account to use
+*/}}
+{{- define "argo-cd.controller.serviceAccountName" -}}
+{{- if .Values.controller.serviceAccount.create -}}
+ {{ default (include "argo-cd.controller.fullname" .) .Values.controller.serviceAccount.name }}
+{{- else -}}
+ {{ default "default" .Values.controller.serviceAccount.name }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create dex name and version as used by the chart label.
+*/}}
+{{- define "argo-cd.dex.fullname" -}}
+{{- printf "%s-%s" (include "argo-cd.fullname" .) .Values.dex.name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create Dex server endpoint
+*/}}
+{{- define "argo-cd.dex.server" -}}
+{{- $insecure := index .Values.configs.params "dexserver.disable.tls" | toString -}}
+{{- $scheme := (eq $insecure "true") | ternary "http" "https" -}}
+{{- $host := include "argo-cd.dex.fullname" . -}}
+{{- $port := int .Values.dex.servicePortHttp -}}
+{{- printf "%s://%s:%d" $scheme $host $port }}
+{{- end }}
+
+{{/*
+Create the name of the dex service account to use
+*/}}
+{{- define "argo-cd.dex.serviceAccountName" -}}
+{{- if .Values.dex.serviceAccount.create -}}
+ {{ default (include "argo-cd.dex.fullname" .) .Values.dex.serviceAccount.name }}
+{{- else -}}
+ {{ default "default" .Values.dex.serviceAccount.name }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create redis name and version as used by the chart label.
+*/}}
+{{- define "argo-cd.redis.fullname" -}}
+{{- $redisHa := (index .Values "redis-ha") -}}
+{{- $redisHaContext := dict "Chart" (dict "Name" "redis-ha") "Release" .Release "Values" $redisHa -}}
+{{- if $redisHa.enabled -}}
+ {{- if $redisHa.haproxy.enabled -}}
+ {{- printf "%s-haproxy" (include "redis-ha.fullname" $redisHaContext) | trunc 63 | trimSuffix "-" -}}
+ {{- end -}}
+{{- else -}}
+{{- printf "%s-%s" (include "argo-cd.fullname" .) .Values.redis.name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return Redis server endpoint
+*/}}
+{{- define "argo-cd.redis.server" -}}
+{{- $redisHa := (index .Values "redis-ha") -}}
+{{- if or (and .Values.redis.enabled (not $redisHa.enabled)) (and $redisHa.enabled $redisHa.haproxy.enabled) }}
+ {{- printf "%s:%s" (include "argo-cd.redis.fullname" .) (toString .Values.redis.servicePort) }}
+{{- else if and .Values.externalRedis.host .Values.externalRedis.port }}
+ {{- printf "%s:%s" .Values.externalRedis.host (toString .Values.externalRedis.port) }}
+{{- end }}
+{{- end -}}
+
+{{/*
+Create the name of the redis service account to use
+*/}}
+{{- define "argo-cd.redis.serviceAccountName" -}}
+{{- if .Values.redis.serviceAccount.create -}}
+ {{ default (include "argo-cd.redis.fullname" .) .Values.redis.serviceAccount.name }}
+{{- else -}}
+ {{ default "default" .Values.redis.serviceAccount.name }}
+{{- end -}}
+{{- end -}}
+
+
+{{/*
+Create Redis secret-init name
+*/}}
+{{- define "argo-cd.redisSecretInit.fullname" -}}
+{{- printf "%s-%s" (include "argo-cd.fullname" .) .Values.redisSecretInit.name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create the name of the Redis secret-init service account to use
+*/}}
+{{- define "argo-cd.redisSecretInit.serviceAccountName" -}}
+{{- if .Values.redisSecretInit.serviceAccount.create -}}
+ {{ default (include "argo-cd.redisSecretInit.fullname" .) .Values.redisSecretInit.serviceAccount.name }}
+{{- else -}}
+ {{ default "default" .Values.redisSecretInit.serviceAccount.name }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create argocd server name and version as used by the chart label.
+*/}}
+{{- define "argo-cd.server.fullname" -}}
+{{- printf "%s-%s" (include "argo-cd.fullname" .) .Values.server.name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create the name of the Argo CD server service account to use
+*/}}
+{{- define "argo-cd.server.serviceAccountName" -}}
+{{- if .Values.server.serviceAccount.create -}}
+ {{ default (include "argo-cd.server.fullname" .) .Values.server.serviceAccount.name }}
+{{- else -}}
+ {{ default "default" .Values.server.serviceAccount.name }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create argocd repo-server name and version as used by the chart label.
+*/}}
+{{- define "argo-cd.repoServer.fullname" -}}
+{{- printf "%s-%s" (include "argo-cd.fullname" .) .Values.repoServer.name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create the name of the repo-server service account to use
+*/}}
+{{- define "argo-cd.repoServer.serviceAccountName" -}}
+{{- if .Values.repoServer.serviceAccount.create -}}
+ {{ default (include "argo-cd.repoServer.fullname" .) .Values.repoServer.serviceAccount.name }}
+{{- else -}}
+ {{ default "default" .Values.repoServer.serviceAccount.name }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create argocd application set name and version as used by the chart label.
+*/}}
+{{- define "argo-cd.applicationSet.fullname" -}}
+{{- printf "%s-%s" (include "argo-cd.fullname" .) .Values.applicationSet.name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create the name of the application set service account to use
+*/}}
+{{- define "argo-cd.applicationSet.serviceAccountName" -}}
+{{- if .Values.applicationSet.serviceAccount.create -}}
+ {{ default (include "argo-cd.applicationSet.fullname" .) .Values.applicationSet.serviceAccount.name }}
+{{- else -}}
+ {{ default "default" .Values.applicationSet.serviceAccount.name }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create argocd notifications name and version as used by the chart label.
+*/}}
+{{- define "argo-cd.notifications.fullname" -}}
+{{- printf "%s-%s" (include "argo-cd.fullname" .) .Values.notifications.name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create the name of the notifications service account to use
+*/}}
+{{- define "argo-cd.notifications.serviceAccountName" -}}
+{{- if .Values.notifications.serviceAccount.create -}}
+ {{ default (include "argo-cd.notifications.fullname" .) .Values.notifications.serviceAccount.name }}
+{{- else -}}
+ {{ default "default" .Values.notifications.serviceAccount.name }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create argocd commit-server name and version as used by the chart label.
+*/}}
+{{- define "argo-cd.commitServer.fullname" -}}
+{{- printf "%s-%s" (include "argo-cd.fullname" .) .Values.commitServer.name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create the name of the commit-server service account to use
+*/}}
+{{- define "argo-cd.commitServer.serviceAccountName" -}}
+{{- if .Values.commitServer.serviceAccount.create -}}
+ {{ default (include "argo-cd.commitServer.fullname" .) .Values.commitServer.serviceAccount.name }}
+{{- else -}}
+ {{ default "default" .Values.commitServer.serviceAccount.name }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Argo Configuration Preset Values (Influenced by Values configuration)
+*/}}
+{{- define "argo-cd.config.cm.presets" -}}
+{{- $presets := dict -}}
+{{- $_ := set $presets "url" (printf "https://%s" .Values.global.domain) -}}
+{{- if eq (toString (index .Values.configs.cm "statusbadge.enabled")) "true" -}}
+{{- $_ := set $presets "statusbadge.url" (printf "https://%s/" .Values.global.domain) -}}
+{{- end -}}
+{{- if .Values.configs.styles -}}
+{{- $_ := set $presets "ui.cssurl" "./custom/custom.styles.css" -}}
+{{- end -}}
+{{- toYaml $presets }}
+{{- end -}}
+
+{{/*
+Merge Argo Configuration with Preset Configuration
+*/}}
+{{- define "argo-cd.config.cm" -}}
+{{- $config := omit .Values.configs.cm "create" "annotations" -}}
+{{- $preset := include "argo-cd.config.cm.presets" . | fromYaml | default dict -}}
+{{- range $key, $value := mergeOverwrite $preset $config }}
+{{- $fmted := $value | toString }}
+{{- if not (eq $fmted "") }}
+{{ $key }}: {{ $fmted | toYaml }}
+{{- end }}
+{{- end }}
+{{- end -}}
+
+{{/*
+Argo Params Default Configuration Presets
+NOTE: Configuration keys must be stored as dict because YAML treats dot as separator
+*/}}
+{{- define "argo-cd.config.params.presets" -}}
+{{- $presets := dict -}}
+{{- $_ := set $presets "repo.server" (printf "%s:%s" (include "argo-cd.repoServer.fullname" .) (.Values.repoServer.service.port | toString)) -}}
+{{- $_ := set $presets "server.repo.server.strict.tls" (.Values.repoServer.certificateSecret.enabled | toString ) -}}
+{{- $_ := set $presets "redis.server" (include "argo-cd.redis.server" .) -}}
+{{- $_ := set $presets "applicationsetcontroller.enable.leader.election" (gt ((.Values.applicationSet.replicas | default .Values.applicationSet.replicaCount) | int64) 1) -}}
+{{- if .Values.dex.enabled -}}
+{{- $_ := set $presets "server.dex.server" (include "argo-cd.dex.server" .) -}}
+{{- $_ := set $presets "server.dex.server.strict.tls" .Values.dex.certificateSecret.enabled -}}
+{{- end -}}
+{{- if .Values.commitServer.enabled -}}
+{{- $_ := set $presets "commit.server" (printf "%s:%s" (include "argo-cd.commitServer.fullname" .) (.Values.commitServer.service.port | toString)) -}}
+{{- end -}}
+{{- range $component := tuple "applicationsetcontroller" "controller" "server" "reposerver" "notificationscontroller" "dexserver" "commitserver" -}}
+{{- $_ := set $presets (printf "%s.log.format" $component) $.Values.global.logging.format -}}
+{{- $_ := set $presets (printf "%s.log.level" $component) $.Values.global.logging.level -}}
+{{- end -}}
+{{- toYaml $presets }}
+{{- end -}}
+
+{{/*
+Merge Argo Params Configuration with Preset Configuration
+*/}}
+{{- define "argo-cd.config.params" -}}
+{{- $config := omit .Values.configs.params "create" "annotations" }}
+{{- $preset := include "argo-cd.config.params.presets" . | fromYaml | default dict -}}
+{{- range $key, $value := mergeOverwrite $preset $config }}
+{{ $key }}: {{ toString $value | toYaml }}
+{{- end }}
+{{- end -}}
+
+{{/*
+Expand the namespace of the release.
+Allows overriding it for multi-namespace deployments in combined charts.
+*/}}
+{{- define "argo-cd.namespace" -}}
+{{- default .Release.Namespace .Values.namespaceOverride | trunc 63 | trimSuffix "-" -}}
+{{- end }}
+
+{{/*
+Dual stack definition
+*/}}
+{{- define "argo-cd.dualStack" -}}
+{{- with .Values.global.dualStack.ipFamilyPolicy }}
+ipFamilyPolicy: {{ . }}
+{{- end }}
+{{- with .Values.global.dualStack.ipFamilies }}
+ipFamilies: {{ toYaml . | nindent 4 }}
+{{- end }}
+{{- end }}
+
+{{/*
+secretKeyRef of env variable REDIS_USERNAME
+*/}}
+{{- define "argo-cd.redisUsernameSecretRef" -}}
+ {{- if .Values.externalRedis.host -}}
+name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }}
+key: redis-username
+optional: {{ if .Values.externalRedis.username }}false{{ else }}true{{ end }}
+
+ {{- else -}}
+name: "argocd-redis"
+key: redis-username
+optional: true
+ {{- end -}}
+{{- end -}}
+
+{{/*
+secretKeyRef of env variable REDIS_PASSWORD
+*/}}
+{{- define "argo-cd.redisPasswordSecretRef" -}}
+ {{- if .Values.externalRedis.host -}}
+ {{- /* External Redis use case */ -}}
+ {{- /* Secret is required when specifying existingSecret or a password, otherwise it is optional */ -}}
+name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }}
+key: redis-password
+optional: {{ if or .Values.externalRedis.existingSecret .Values.externalRedis.password }}false{{ else }}true{{ end }}
+
+ {{- else if and .Values.redisSecretInit.enabled -}}
+ {{- /* Default case where Secret is generated by the Job with Helm pre-install hooks */ -}}
+name: "argocd-redis" # hard-coded in Job command and embedded Redis deployments (standalone and redis-ha)
+key: auth
+optional: false # Secret is not optional in this case !
+
+ {{- else -}}
+ {{- /* All other use cases (e.g. disabled pre-install Job) */ -}}
+name: "argocd-redis"
+key: auth
+optional: true
+ {{- end -}}
+{{- end -}}
diff --git a/astroshop-platform/argocd-helmchart/templates/_versions.tpl b/astroshop-platform/argocd-helmchart/templates/_versions.tpl
new file mode 100644
index 0000000..966dad9
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/_versions.tpl
@@ -0,0 +1,7 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Return the target Kubernetes version
+*/}}
+{{- define "argo-cd.kubeVersion" -}}
+{{- default .Capabilities.KubeVersion.Version .Values.kubeVersionOverride }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/aggregate-roles.yaml b/astroshop-platform/argocd-helmchart/templates/aggregate-roles.yaml
new file mode 100644
index 0000000..12d0e00
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/aggregate-roles.yaml
@@ -0,0 +1,70 @@
+{{- if .Values.createAggregateRoles }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: {{ include "argo-cd.fullname" . }}-aggregate-to-view
+ labels:
+ rbac.authorization.k8s.io/aggregate-to-view: "true"
+ {{- include "argo-cd.labels" (dict "context" .) | nindent 4 }}
+rules:
+- apiGroups:
+ - argoproj.io
+ resources:
+ - applications
+ - applicationsets
+ - appprojects
+ verbs:
+ - get
+ - list
+ - watch
+
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: {{ include "argo-cd.fullname" . }}-aggregate-to-edit
+ labels:
+ rbac.authorization.k8s.io/aggregate-to-edit: "true"
+ {{- include "argo-cd.labels" (dict "context" .) | nindent 4 }}
+rules:
+- apiGroups:
+ - argoproj.io
+ resources:
+ - applications
+ - applicationsets
+ - appprojects
+ verbs:
+ - create
+ - delete
+ - deletecollection
+ - get
+ - list
+ - patch
+ - update
+ - watch
+
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: {{ include "argo-cd.fullname" . }}-aggregate-to-admin
+ labels:
+ rbac.authorization.k8s.io/aggregate-to-admin: "true"
+ {{- include "argo-cd.labels" (dict "context" .) | nindent 4 }}
+rules:
+- apiGroups:
+ - argoproj.io
+ resources:
+ - applications
+ - applicationsets
+ - appprojects
+ verbs:
+ - create
+ - delete
+ - deletecollection
+ - get
+ - list
+ - patch
+ - update
+ - watch
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrole.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrole.yaml
new file mode 100644
index 0000000..615b56f
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrole.yaml
@@ -0,0 +1,23 @@
+{{- if .Values.createClusterRoles }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: {{ include "argo-cd.controller.fullname" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+rules:
+ {{- if .Values.controller.clusterRoleRules.enabled }}
+ {{- toYaml .Values.controller.clusterRoleRules.rules | nindent 2 }}
+ {{- else }}
+ - apiGroups:
+ - '*'
+ resources:
+ - '*'
+ verbs:
+ - '*'
+ - nonResourceURLs:
+ - '*'
+ verbs:
+ - '*'
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrolebinding.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrolebinding.yaml
new file mode 100644
index 0000000..6076c53
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrolebinding.yaml
@@ -0,0 +1,16 @@
+{{- if .Values.createClusterRoles }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: {{ include "argo-cd.controller.fullname" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: {{ include "argo-cd.controller.fullname" . }}
+subjects:
+- kind: ServiceAccount
+ name: {{ include "argo-cd.controller.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/deployment.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/deployment.yaml
new file mode 100644
index 0000000..9e8383a
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/deployment.yaml
@@ -0,0 +1,453 @@
+{{- if .Values.controller.dynamicClusterDistribution }}
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.controller.deploymentAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ name: {{ template "argo-cd.controller.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentLabels) .Values.controller.deploymentLabels) }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ replicas: {{ .Values.controller.replicas }}
+ revisionHistoryLimit: {{ .Values.controller.revisionHistoryLimit | default .Values.global.revisionHistoryLimit }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 6 }}
+ template:
+ metadata:
+ annotations:
+ checksum/cmd-params: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmd-params-cm.yaml") . | sha256sum }}
+ {{- if .Values.configs.cm.create }}
+ checksum/cm: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cm.yaml") . | sha256sum }}
+ {{- end }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.controller.podAnnotations) }}
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 8 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.controller.podLabels) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ spec:
+ {{- with .Values.controller.runtimeClassName | default .Values.global.runtimeClassName }}
+ runtimeClassName: {{ . }}
+ {{- end }}
+ {{- with .Values.controller.imagePullSecrets | default .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.hostAliases }}
+ hostAliases:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.securityContext }}
+ securityContext:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.priorityClassName | default .Values.global.priorityClassName }}
+ priorityClassName: {{ . }}
+ {{- end }}
+ {{- if .Values.controller.terminationGracePeriodSeconds }}
+ terminationGracePeriodSeconds: {{ .Values.controller.terminationGracePeriodSeconds }}
+ {{- end }}
+ serviceAccountName: {{ include "argo-cd.controller.serviceAccountName" . }}
+ automountServiceAccountToken: {{ .Values.controller.automountServiceAccountToken }}
+ containers:
+ - args:
+ - /usr/local/bin/argocd-application-controller
+ - --metrics-port={{ .Values.controller.containerPorts.metrics }}
+ {{- if .Values.controller.metrics.applicationLabels.enabled }}
+ {{- range .Values.controller.metrics.applicationLabels.labels }}
+ - --metrics-application-labels
+ - {{ . }}
+ {{- end }}
+ {{- end }}
+ {{- with .Values.controller.extraArgs }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ image: {{ default .Values.global.image.repository .Values.controller.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.controller.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.controller.image.imagePullPolicy }}
+ name: {{ .Values.controller.name }}
+ env:
+ {{- with (concat .Values.global.env .Values.controller.env) }}
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ - name: ARGOCD_ENABLE_DYNAMIC_CLUSTER_DISTRIBUTION
+ value: "true"
+ - name: ARGOCD_CONTROLLER_HEARTBEAT_TIME
+ value: {{ .Values.controller.heartbeatTime | quote }}
+ - name: ARGOCD_APPLICATION_CONTROLLER_NAME
+ value: {{ template "argo-cd.controller.fullname" . }}
+ - name: ARGOCD_RECONCILIATION_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cm
+ key: timeout.reconciliation
+ optional: true
+ - name: ARGOCD_HARD_RECONCILIATION_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cm
+ key: timeout.hard.reconciliation
+ optional: true
+ - name: ARGOCD_RECONCILIATION_JITTER
+ valueFrom:
+ configMapKeyRef:
+ key: timeout.reconciliation.jitter
+ name: argocd-cm
+ optional: true
+ - name: ARGOCD_REPO_ERROR_GRACE_PERIOD_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.error.grace.period.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: repo.server
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_TIMEOUT_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.server.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_STATUS_PROCESSORS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.status.processors
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OPERATION_PROCESSORS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.operation.processors
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_LOGFORMAT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.log.format
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_LOGLEVEL
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.log.level
+ optional: true
+ - name: ARGOCD_LOG_FORMAT_TIMESTAMP
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: log.format.timestamp
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_METRICS_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.metrics.cache.expiration
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_TIMEOUT_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_TIMEOUT_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_FACTOR
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.factor
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_CAP_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.cap.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_COOLDOWN_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.cooldown.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SYNC_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.sync.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_PLAINTEXT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.server.plaintext
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_STRICT_TLS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.server.strict.tls
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_PERSIST_RESOURCE_HEALTH
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.resource.health.persist
+ optional: true
+ - name: ARGOCD_APP_STATE_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.app.state.cache.expiration
+ optional: true
+ - name: REDIS_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.server
+ optional: true
+ - name: REDIS_COMPRESSION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.compression
+ optional: true
+ - name: REDISDB
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.db
+ optional: true
+ - name: REDIS_USERNAME
+ valueFrom:
+ secretKeyRef:
+ {{- include "argo-cd.redisUsernameSecretRef" . | nindent 16 }}
+ - name: REDIS_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ {{- include "argo-cd.redisPasswordSecretRef" . | nindent 16 }}
+ - name: REDIS_SENTINEL_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }}
+ key: redis-sentinel-username
+ optional: true
+ - name: REDIS_SENTINEL_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }}
+ key: redis-sentinel-password
+ optional: true
+ - name: ARGOCD_DEFAULT_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.default.cache.expiration
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_ADDRESS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.address
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_INSECURE
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.insecure
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_HEADERS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.headers
+ optional: true
+ - name: ARGOCD_APPLICATION_NAMESPACES
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: application.namespaces
+ optional: true
+ - name: ARGOCD_CONTROLLER_SHARDING_ALGORITHM
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.sharding.algorithm
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_KUBECTL_PARALLELISM_LIMIT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.kubectl.parallelism.limit
+ optional: true
+ - name: ARGOCD_K8SCLIENT_RETRY_MAX
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.k8sclient.retry.max
+ optional: true
+ - name: ARGOCD_K8SCLIENT_RETRY_BASE_BACKOFF
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.k8sclient.retry.base.backoff
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SERVER_SIDE_DIFF
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.diff.server.side
+ optional: true
+ - name: ARGOCD_IGNORE_NORMALIZER_JQ_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.ignore.normalizer.jq.timeout
+ optional: true
+ - name: ARGOCD_HYDRATOR_ENABLED
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: hydrator.enabled
+ optional: true
+ - name: ARGOCD_CLUSTER_CACHE_BATCH_EVENTS_PROCESSING
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.cluster.cache.batch.events.processing
+ optional: true
+ - name: ARGOCD_CLUSTER_CACHE_EVENTS_PROCESSING_INTERVAL
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.cluster.cache.events.processing.interval
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_COMMIT_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: commit.server
+ optional: true
+ {{- with .Values.controller.envFrom }}
+ envFrom:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ ports:
+ - name: metrics
+ containerPort: {{ .Values.controller.containerPorts.metrics }}
+ protocol: TCP
+ readinessProbe:
+ httpGet:
+ path: /healthz
+ port: metrics
+ initialDelaySeconds: {{ .Values.controller.readinessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.controller.readinessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.controller.readinessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.controller.readinessProbe.successThreshold }}
+ failureThreshold: {{ .Values.controller.readinessProbe.failureThreshold }}
+ resources:
+ {{- toYaml .Values.controller.resources | nindent 10 }}
+ {{- with .Values.controller.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ workingDir: /home/argocd
+ volumeMounts:
+ {{- with .Values.controller.volumeMounts }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ - mountPath: /app/config/controller/tls
+ name: argocd-repo-server-tls
+ - mountPath: /home/argocd
+ name: argocd-home
+ - name: argocd-cmd-params-cm
+ mountPath: /home/argocd/params
+ {{- with .Values.controller.extraContainers }}
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with .Values.controller.initContainers }}
+ initContainers:
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.controller) }}
+ affinity:
+ {{- trim . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.nodeSelector | default .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.tolerations | default .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- range $constraint := . }}
+ - {{ toYaml $constraint | nindent 8 | trim }}
+ {{- if not $constraint.labelSelector }}
+ labelSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" $ "name" $.Values.controller.name) | nindent 12 }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ volumes:
+ {{- with .Values.controller.volumes }}
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+ - name: argocd-home
+ {{- if .Values.controller.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.controller.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+
+ - name: argocd-repo-server-tls
+ secret:
+ secretName: argocd-repo-server-tls
+ optional: true
+ items:
+ - key: tls.crt
+ path: tls.crt
+ - key: tls.key
+ path: tls.key
+ - key: ca.crt
+ path: ca.crt
+ - name: argocd-cmd-params-cm
+ configMap:
+ optional: true
+ name: argocd-cmd-params-cm
+ items:
+ - key: controller.profile.enabled
+ path: profiler.enabled
+ {{- if .Values.controller.hostNetwork }}
+ hostNetwork: {{ .Values.controller.hostNetwork }}
+ {{- end }}
+ {{- with .Values.controller.dnsConfig }}
+ dnsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ dnsPolicy: {{ .Values.controller.dnsPolicy }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/metrics.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/metrics.yaml
new file mode 100644
index 0000000..086dfe9
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/metrics.yaml
@@ -0,0 +1,35 @@
+{{- if .Values.controller.metrics.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "argo-cd.controller.fullname" . }}-metrics
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" "metrics") | nindent 4 }}
+ {{- with .Values.controller.metrics.service.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- if or .Values.controller.metrics.service.annotations .Values.global.addPrometheusAnnotations }}
+ annotations:
+ {{- if .Values.global.addPrometheusAnnotations }}
+ prometheus.io/port: {{ .Values.controller.metrics.service.servicePort | quote }}
+ prometheus.io/scrape: "true"
+ {{- end }}
+ {{- range $key, $value := .Values.controller.metrics.service.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ type: {{ .Values.controller.metrics.service.type }}
+ {{- if and .Values.controller.metrics.service.clusterIP (eq .Values.controller.metrics.service.type "ClusterIP") }}
+ clusterIP: {{ .Values.controller.metrics.service.clusterIP }}
+ {{- end }}
+ {{- include "argo-cd.dualStack" . | indent 2 }}
+ ports:
+ - name: {{ .Values.controller.metrics.service.portName }}
+ protocol: TCP
+ port: {{ .Values.controller.metrics.service.servicePort }}
+ targetPort: metrics
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/networkpolicy.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/networkpolicy.yaml
new file mode 100644
index 0000000..cd710ab
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/networkpolicy.yaml
@@ -0,0 +1,20 @@
+{{- if or .Values.controller.networkPolicy.create .Values.global.networkPolicy.create }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+ name: {{ template "argo-cd.controller.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+spec:
+ ingress:
+ - from:
+ - namespaceSelector: {}
+ ports:
+ - port: metrics
+ podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 6 }}
+ policyTypes:
+ - Ingress
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/pdb.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/pdb.yaml
new file mode 100644
index 0000000..bef0979
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/pdb.yaml
@@ -0,0 +1,27 @@
+{{- if .Values.controller.pdb.enabled }}
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: {{ include "argo-cd.controller.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+ {{- with .Values.controller.pdb.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.controller.pdb.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ {{- with .Values.controller.pdb.maxUnavailable }}
+ maxUnavailable: {{ . }}
+ {{- else }}
+ minAvailable: {{ .Values.controller.pdb.minAvailable | default 0 }}
+ {{- end }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 6 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/prometheusrule.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/prometheusrule.yaml
new file mode 100644
index 0000000..6ddc7f4
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/prometheusrule.yaml
@@ -0,0 +1,24 @@
+{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.controller.metrics.enabled .Values.controller.metrics.rules.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: PrometheusRule
+metadata:
+ name: {{ template "argo-cd.controller.fullname" . }}
+ namespace: {{ default (include "argo-cd.namespace" .) .Values.controller.metrics.rules.namespace | quote }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+ {{- if .Values.controller.metrics.rules.selector }}
+{{- toYaml .Values.controller.metrics.rules.selector | nindent 4 }}
+ {{- end }}
+ {{- if .Values.controller.metrics.rules.additionalLabels }}
+{{- toYaml .Values.controller.metrics.rules.additionalLabels | nindent 4 }}
+ {{- end }}
+ {{- with .Values.controller.metrics.rules.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ groups:
+ - name: argocd
+ rules:
+{{- toYaml .Values.controller.metrics.rules.spec | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/role.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/role.yaml
new file mode 100644
index 0000000..9165e96
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/role.yaml
@@ -0,0 +1,64 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: {{ template "argo-cd.controller.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+rules:
+{{- with .Values.controller.roleRules }}
+{{- toYaml . | nindent 2 }}
+{{- else }}
+- apiGroups:
+ - ""
+ resources:
+ - secrets
+ - configmaps
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - argoproj.io
+ resources:
+ - applications
+ - applicationsets
+ - appprojects
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+- apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - list
+- apiGroups:
+ - apps
+ resources:
+ - deployments
+ verbs:
+ - get
+ - list
+ - watch
+{{- if and (not .Values.createClusterRoles) .Values.controller.dynamicClusterDistribution }}
+- apiGroups:
+ - ""
+ resources:
+ - configmaps
+ resourceNames:
+ - argocd-app-controller-shard-cm
+ verbs:
+ - get
+ - list
+ - watch
+ - create
+ - update
+{{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/rolebinding.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/rolebinding.yaml
new file mode 100644
index 0000000..4868163
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/rolebinding.yaml
@@ -0,0 +1,15 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: {{ include "argo-cd.controller.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: {{ include "argo-cd.controller.fullname" . }}
+subjects:
+ - kind: ServiceAccount
+ name: {{ include "argo-cd.controller.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/serviceaccount.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/serviceaccount.yaml
new file mode 100644
index 0000000..575cbf6
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/serviceaccount.yaml
@@ -0,0 +1,19 @@
+{{- if .Values.controller.serviceAccount.create }}
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: {{ .Values.controller.serviceAccount.automountServiceAccountToken }}
+metadata:
+ name: {{ include "argo-cd.controller.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ {{- with .Values.controller.serviceAccount.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+ {{- with .Values.controller.serviceAccount.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/servicemonitor.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/servicemonitor.yaml
new file mode 100644
index 0000000..d191247
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/servicemonitor.yaml
@@ -0,0 +1,51 @@
+{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.controller.metrics.enabled .Values.controller.metrics.serviceMonitor.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "argo-cd.controller.fullname" . }}
+ namespace: {{ default (include "argo-cd.namespace" .) .Values.controller.metrics.serviceMonitor.namespace | quote }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+ {{- with .Values.controller.metrics.serviceMonitor.selector }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.controller.metrics.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.controller.metrics.serviceMonitor.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ endpoints:
+ - port: {{ .Values.controller.metrics.service.portName }}
+ {{- with .Values.controller.metrics.serviceMonitor.interval }}
+ interval: {{ . }}
+ {{- end }}
+ {{- with .Values.controller.metrics.serviceMonitor.scrapeTimeout }}
+ scrapeTimeout: {{ . }}
+ {{- end }}
+ path: /metrics
+ {{- with .Values.controller.metrics.serviceMonitor.relabelings }}
+ relabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.metrics.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ honorLabels: {{ .Values.controller.metrics.serviceMonitor.honorLabels }}
+ {{- with .Values.controller.metrics.serviceMonitor.scheme }}
+ scheme: {{ . }}
+ {{- end }}
+ {{- with .Values.controller.metrics.serviceMonitor.tlsConfig }}
+ tlsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - {{ include "argo-cd.namespace" . }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.controller.name "name" "metrics") | nindent 6 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/statefulset.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/statefulset.yaml
new file mode 100644
index 0000000..2598424
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/statefulset.yaml
@@ -0,0 +1,465 @@
+{{- if not .Values.controller.dynamicClusterDistribution | default false }}
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.statefulsetAnnotations) .Values.controller.statefulsetAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ name: {{ template "argo-cd.controller.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+spec:
+ replicas: {{ .Values.controller.replicas }}
+ revisionHistoryLimit: {{ .Values.controller.revisionHistoryLimit | default .Values.global.revisionHistoryLimit }}
+ serviceName: {{ include "argo-cd.controller.fullname" . }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 6 }}
+ template:
+ metadata:
+ annotations:
+ checksum/cmd-params: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmd-params-cm.yaml") . | sha256sum }}
+ {{- if .Values.configs.cm.create }}
+ checksum/cm: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cm.yaml") . | sha256sum }}
+ {{- end }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.controller.podAnnotations) }}
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 8 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.controller.podLabels) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ spec:
+ {{- with .Values.controller.runtimeClassName | default .Values.global.runtimeClassName }}
+ runtimeClassName: {{ . }}
+ {{- end }}
+ {{- with .Values.controller.imagePullSecrets | default .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.hostAliases }}
+ hostAliases:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.securityContext }}
+ securityContext:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.priorityClassName | default .Values.global.priorityClassName }}
+ priorityClassName: {{ . }}
+ {{- end }}
+ {{- if .Values.controller.terminationGracePeriodSeconds }}
+ terminationGracePeriodSeconds: {{ .Values.controller.terminationGracePeriodSeconds }}
+ {{- end }}
+ serviceAccountName: {{ include "argo-cd.controller.serviceAccountName" . }}
+ automountServiceAccountToken: {{ .Values.controller.automountServiceAccountToken }}
+ containers:
+ - args:
+ - /usr/local/bin/argocd-application-controller
+ - --metrics-port={{ .Values.controller.containerPorts.metrics }}
+ {{- if .Values.controller.metrics.applicationLabels.enabled }}
+ {{- range .Values.controller.metrics.applicationLabels.labels }}
+ - --metrics-application-labels
+ - {{ . }}
+ {{- end }}
+ {{- end }}
+ {{- with .Values.controller.extraArgs }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ image: {{ default .Values.global.image.repository .Values.controller.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.controller.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.controller.image.imagePullPolicy }}
+ name: {{ .Values.controller.name }}
+ env:
+ {{- with (concat .Values.global.env .Values.controller.env) }}
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ - name: ARGOCD_CONTROLLER_REPLICAS
+ value: {{ .Values.controller.replicas | quote }}
+ - name: ARGOCD_APPLICATION_CONTROLLER_NAME
+ value: {{ template "argo-cd.controller.fullname" . }}
+ - name: ARGOCD_RECONCILIATION_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cm
+ key: timeout.reconciliation
+ optional: true
+ - name: ARGOCD_HARD_RECONCILIATION_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cm
+ key: timeout.hard.reconciliation
+ optional: true
+ - name: ARGOCD_RECONCILIATION_JITTER
+ valueFrom:
+ configMapKeyRef:
+ key: timeout.reconciliation.jitter
+ name: argocd-cm
+ optional: true
+ - name: ARGOCD_REPO_ERROR_GRACE_PERIOD_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.error.grace.period.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: repo.server
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_TIMEOUT_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.server.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_STATUS_PROCESSORS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.status.processors
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OPERATION_PROCESSORS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.operation.processors
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_LOGFORMAT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.log.format
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_LOGLEVEL
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.log.level
+ optional: true
+ - name: ARGOCD_LOG_FORMAT_TIMESTAMP
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: log.format.timestamp
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_METRICS_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.metrics.cache.expiration
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_TIMEOUT_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_TIMEOUT_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_FACTOR
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.factor
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_CAP_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.cap.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_COOLDOWN_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.cooldown.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SYNC_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.sync.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_PLAINTEXT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.server.plaintext
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_STRICT_TLS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.server.strict.tls
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_PERSIST_RESOURCE_HEALTH
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.resource.health.persist
+ optional: true
+ - name: ARGOCD_APP_STATE_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.app.state.cache.expiration
+ optional: true
+ - name: REDIS_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.server
+ optional: true
+ - name: REDIS_COMPRESSION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.compression
+ optional: true
+ - name: REDISDB
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.db
+ optional: true
+ - name: REDIS_USERNAME
+ valueFrom:
+ secretKeyRef:
+ {{- include "argo-cd.redisUsernameSecretRef" . | nindent 16 }}
+ - name: REDIS_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ {{- include "argo-cd.redisPasswordSecretRef" . | nindent 16 }}
+ - name: REDIS_SENTINEL_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }}
+ key: redis-sentinel-username
+ optional: true
+ - name: REDIS_SENTINEL_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }}
+ key: redis-sentinel-password
+ optional: true
+ - name: ARGOCD_DEFAULT_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.default.cache.expiration
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_ADDRESS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.address
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_INSECURE
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.insecure
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_HEADERS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.headers
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_ATTRS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.attrs
+ optional: true
+ - name: ARGOCD_APPLICATION_NAMESPACES
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: application.namespaces
+ optional: true
+ - name: ARGOCD_CONTROLLER_SHARDING_ALGORITHM
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.sharding.algorithm
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_KUBECTL_PARALLELISM_LIMIT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.kubectl.parallelism.limit
+ optional: true
+ - name: ARGOCD_K8SCLIENT_RETRY_MAX
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.k8sclient.retry.max
+ optional: true
+ - name: ARGOCD_K8SCLIENT_RETRY_BASE_BACKOFF
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.k8sclient.retry.base.backoff
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SERVER_SIDE_DIFF
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.diff.server.side
+ optional: true
+ - name: ARGOCD_IGNORE_NORMALIZER_JQ_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.ignore.normalizer.jq.timeout
+ optional: true
+ - name: ARGOCD_HYDRATOR_ENABLED
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: hydrator.enabled
+ optional: true
+ - name: ARGOCD_CLUSTER_CACHE_BATCH_EVENTS_PROCESSING
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.cluster.cache.batch.events.processing
+ optional: true
+ - name: ARGOCD_CLUSTER_CACHE_EVENTS_PROCESSING_INTERVAL
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.cluster.cache.events.processing.interval
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_COMMIT_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: commit.server
+ optional: true
+ - name: KUBECACHEDIR
+ value: /tmp/kubecache
+ {{- with .Values.controller.envFrom }}
+ envFrom:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ ports:
+ - name: metrics
+ containerPort: {{ .Values.controller.containerPorts.metrics }}
+ protocol: TCP
+ readinessProbe:
+ httpGet:
+ path: /healthz
+ port: metrics
+ initialDelaySeconds: {{ .Values.controller.readinessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.controller.readinessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.controller.readinessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.controller.readinessProbe.successThreshold }}
+ failureThreshold: {{ .Values.controller.readinessProbe.failureThreshold }}
+ resources:
+ {{- toYaml .Values.controller.resources | nindent 10 }}
+ {{- with .Values.controller.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ workingDir: /home/argocd
+ volumeMounts:
+ {{- with .Values.controller.volumeMounts }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ - mountPath: /app/config/controller/tls
+ name: argocd-repo-server-tls
+ - mountPath: /home/argocd
+ name: argocd-home
+ - name: argocd-cmd-params-cm
+ mountPath: /home/argocd/params
+ - name: argocd-application-controller-tmp
+ mountPath: /tmp
+ {{- with .Values.controller.extraContainers }}
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with .Values.controller.initContainers }}
+ initContainers:
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.controller) }}
+ affinity:
+ {{- trim . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.nodeSelector | default .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.tolerations | default .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- range $constraint := . }}
+ - {{ toYaml $constraint | nindent 8 | trim }}
+ {{- if not $constraint.labelSelector }}
+ labelSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" $ "name" $.Values.controller.name) | nindent 12 }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ volumes:
+ {{- with .Values.controller.volumes }}
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+ - name: argocd-home
+ {{- if .Values.controller.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.controller.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ - name: argocd-application-controller-tmp
+ {{- if .Values.controller.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.controller.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ - name: argocd-repo-server-tls
+ secret:
+ secretName: argocd-repo-server-tls
+ optional: true
+ items:
+ - key: tls.crt
+ path: tls.crt
+ - key: tls.key
+ path: tls.key
+ - key: ca.crt
+ path: ca.crt
+ - name: argocd-cmd-params-cm
+ configMap:
+ optional: true
+ name: argocd-cmd-params-cm
+ items:
+ - key: controller.profile.enabled
+ path: profiler.enabled
+ {{- if .Values.controller.hostNetwork }}
+ hostNetwork: {{ .Values.controller.hostNetwork }}
+ {{- end }}
+ {{- with .Values.controller.dnsConfig }}
+ dnsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ dnsPolicy: {{ .Values.controller.dnsPolicy }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/vpa.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/vpa.yaml
new file mode 100644
index 0000000..c5cf402
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/vpa.yaml
@@ -0,0 +1,33 @@
+{{- if and (.Values.controller.vpa) (.Values.controller.vpa.enabled) }}
+apiVersion: autoscaling.k8s.io/v1
+kind: VerticalPodAutoscaler
+metadata:
+ name: {{ include "argo-cd.controller.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+ {{- with .Values.controller.vpa.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.controller.vpa.annotations }}
+ annnotaions:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ targetRef:
+ apiVersion: "apps/v1"
+ {{- if .Values.controller.dynamicClusterDistribution }}
+ kind: Deployment
+ {{- else }}
+ kind: StatefulSet
+ {{- end }}
+ name: {{ template "argo-cd.controller.fullname" . }}
+ updatePolicy:
+ updateMode: {{ .Values.controller.vpa.updateMode }}
+ resourcePolicy:
+ containerPolicies:
+ - containerName: {{ .Values.controller.name }}
+ {{ with .Values.controller.vpa.containerPolicy }}
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/certificate.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/certificate.yaml
new file mode 100644
index 0000000..fce26bf
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/certificate.yaml
@@ -0,0 +1,39 @@
+{{- if .Values.applicationSet.certificate.enabled -}}
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.certificateAnnotations) .Values.applicationSet.certificate.annotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ name: {{ template "argo-cd.applicationSet.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }}
+spec:
+ secretName: argocd-applicationset-controller-tls
+ commonName: {{ .Values.applicationSet.certificate.domain | default .Values.global.domain }}
+ dnsNames:
+ - {{ .Values.applicationSet.certificate.domain | default .Values.global.domain }}
+ {{- range .Values.applicationSet.certificate.additionalHosts }}
+ - {{ . | quote }}
+ {{- end }}
+ {{- with .Values.applicationSet.certificate.duration }}
+ duration: {{ . | quote }}
+ {{- end }}
+ {{- with .Values.applicationSet.certificate.renewBefore }}
+ renewBefore: {{ . | quote }}
+ {{- end }}
+ issuerRef:
+ {{- with .Values.applicationSet.certificate.issuer.group }}
+ group: {{ . | quote }}
+ {{- end }}
+ kind: {{ .Values.applicationSet.certificate.issuer.kind | quote }}
+ name: {{ .Values.applicationSet.certificate.issuer.name | quote }}
+ {{- with .Values.applicationSet.certificate.privateKey }}
+ privateKey:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/clusterrole.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/clusterrole.yaml
new file mode 100644
index 0000000..2723e3d
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/clusterrole.yaml
@@ -0,0 +1,90 @@
+{{- if .Values.applicationSet.allowAnyNamespace }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: {{ include "argo-cd.applicationSet.fullname" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }}
+rules:
+ - apiGroups:
+ - argoproj.io
+ resources:
+ - applications
+ - applicationsets
+ - applicationsets/finalizers
+ 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
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - list
+ - patch
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ verbs:
+ - create
+ - update
+ - delete
+ - get
+ - list
+ - patch
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - secrets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ - extensions
+ resources:
+ - deployments
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/clusterrolebinding.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/clusterrolebinding.yaml
new file mode 100644
index 0000000..9dcae8d
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/clusterrolebinding.yaml
@@ -0,0 +1,16 @@
+{{- if .Values.applicationSet.allowAnyNamespace }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: {{ template "argo-cd.applicationSet.fullname" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: {{ template "argo-cd.applicationSet.fullname" . }}
+subjects:
+ - kind: ServiceAccount
+ name: {{ template "argo-cd.applicationSet.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/deployment.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/deployment.yaml
new file mode 100644
index 0000000..42b17b6
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/deployment.yaml
@@ -0,0 +1,375 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.applicationSet.deploymentAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ name: {{ include "argo-cd.applicationSet.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentLabels) .Values.applicationSet.deploymentLabels) }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ {{- with include "argo-cd.strategy" (mergeOverwrite (deepCopy .Values.global.deploymentStrategy) .Values.applicationSet.deploymentStrategy) }}
+ strategy:
+ {{- trim . | nindent 4 }}
+ {{- end }}
+ replicas: {{ .Values.applicationSet.replicas }}
+ revisionHistoryLimit: {{ .Values.global.revisionHistoryLimit }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.applicationSet.name) | nindent 6 }}
+ template:
+ metadata:
+ annotations:
+ checksum/cmd-params: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmd-params-cm.yaml") . | sha256sum }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.applicationSet.podAnnotations) }}
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 8 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.applicationSet.podLabels) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ spec:
+ {{- with .Values.applicationSet.runtimeClassName | default .Values.global.runtimeClassName }}
+ runtimeClassName: {{ . }}
+ {{- end }}
+ {{- with .Values.applicationSet.imagePullSecrets | default .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.hostAliases }}
+ hostAliases:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.securityContext }}
+ securityContext:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.applicationSet.priorityClassName | default .Values.global.priorityClassName }}
+ priorityClassName: {{ . }}
+ {{- end }}
+ {{- if .Values.applicationSet.terminationGracePeriodSeconds }}
+ terminationGracePeriodSeconds: {{ .Values.applicationSet.terminationGracePeriodSeconds }}
+ {{- end }}
+ serviceAccountName: {{ include "argo-cd.applicationSet.serviceAccountName" . }}
+ automountServiceAccountToken: {{ .Values.applicationSet.automountServiceAccountToken }}
+ containers:
+ - name: {{ .Values.applicationSet.name }}
+ image: {{ default .Values.global.image.repository .Values.applicationSet.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.applicationSet.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.applicationSet.image.imagePullPolicy }}
+ args:
+ - /usr/local/bin/argocd-applicationset-controller
+ - --metrics-addr=:{{ .Values.applicationSet.containerPorts.metrics }}
+ - --probe-addr=:{{ .Values.applicationSet.containerPorts.probe }}
+ - --webhook-addr=:{{ .Values.applicationSet.containerPorts.webhook }}
+ {{- with .Values.applicationSet.extraArgs }}
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
+ env:
+ {{- with (concat .Values.global.env .Values.applicationSet.extraEnv) }}
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_GLOBAL_PRESERVED_ANNOTATIONS
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.global.preserved.annotations
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_GLOBAL_PRESERVED_LABELS
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.global.preserved.labels
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_LEADER_ELECTION
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.enable.leader.election
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER
+ valueFrom:
+ configMapKeyRef:
+ key: repo.server
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_POLICY
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.policy
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_POLICY_OVERRIDE
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.enable.policy.override
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_DEBUG
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.debug
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_LOGFORMAT
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.log.format
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_LOGLEVEL
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.log.level
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_LOG_FORMAT_TIMESTAMP
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: log.format.timestamp
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_DRY_RUN
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.dryrun
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_GIT_MODULES_ENABLED
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.enable.git.submodule
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_PROGRESSIVE_SYNCS
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.enable.progressive.syncs
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_TOKENREF_STRICT_MODE
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.enable.tokenref.strict.mode
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_NEW_GIT_FILE_GLOBBING
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.enable.new.git.file.globbing
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER_PLAINTEXT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: applicationsetcontroller.repo.server.plaintext
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER_STRICT_TLS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: applicationsetcontroller.repo.server.strict.tls
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER_TIMEOUT_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: applicationsetcontroller.repo.server.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_CONCURRENT_RECONCILIATIONS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: applicationsetcontroller.concurrent.reconciliations.max
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_NAMESPACES
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.namespaces
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_SCM_ROOT_CA_PATH
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.scm.root.ca.path
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_ALLOWED_SCM_PROVIDERS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: applicationsetcontroller.allowed.scm.providers
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_SCM_PROVIDERS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: applicationsetcontroller.enable.scm.providers
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_GITHUB_API_METRICS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: applicationsetcontroller.enable.github.api.metrics
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_WEBHOOK_PARALLELISM_LIMIT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: applicationsetcontroller.webhook.parallelism.limit
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_REQUEUE_AFTER
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.requeue.after
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_MAX_RESOURCES_STATUS_COUNT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: applicationsetcontroller.status.max.resources.count
+ optional: true
+ {{- with .Values.applicationSet.extraEnvFrom }}
+ envFrom:
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
+ ports:
+ - name: metrics
+ containerPort: {{ .Values.applicationSet.containerPorts.metrics }}
+ protocol: TCP
+ - name: probe
+ containerPort: {{ .Values.applicationSet.containerPorts.probe }}
+ protocol: TCP
+ - name: webhook
+ containerPort: {{ .Values.applicationSet.containerPorts.webhook }}
+ protocol: TCP
+ {{- 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.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 }}
+ resources:
+ {{- toYaml .Values.applicationSet.resources | nindent 12 }}
+ {{- with .Values.applicationSet.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
+ volumeMounts:
+ {{- with .Values.applicationSet.extraVolumeMounts }}
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
+ - mountPath: /app/config/ssh
+ name: ssh-known-hosts
+ - mountPath: /app/config/tls
+ name: tls-certs
+ - mountPath: /app/config/gpg/source
+ name: gpg-keys
+ - mountPath: /app/config/gpg/keys
+ name: gpg-keyring
+ - mountPath: /app/config/reposerver/tls
+ name: argocd-repo-server-tls
+ - mountPath: /tmp
+ name: tmp
+ {{- with .Values.applicationSet.extraContainers }}
+ {{- tpl (toYaml .) $ | nindent 8 }}
+ {{- end }}
+ {{- with .Values.applicationSet.initContainers }}
+ initContainers:
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.applicationSet) }}
+ affinity:
+ {{- trim . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.applicationSet.nodeSelector | default .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.applicationSet.tolerations | default .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.applicationSet.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- range $constraint := . }}
+ - {{ toYaml $constraint | nindent 8 | trim }}
+ {{- if not $constraint.labelSelector }}
+ labelSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" $ "name" $.Values.applicationSet.name) | nindent 12 }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ volumes:
+ {{- with .Values.applicationSet.extraVolumes }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ - name: ssh-known-hosts
+ configMap:
+ name: argocd-ssh-known-hosts-cm
+ - name: tls-certs
+ configMap:
+ name: argocd-tls-certs-cm
+ - name: gpg-keys
+ configMap:
+ name: argocd-gpg-keys-cm
+ - name: gpg-keyring
+ {{- if .Values.applicationSet.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.applicationSet.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ - name: tmp
+ {{- if .Values.applicationSet.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.applicationSet.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ - name: argocd-repo-server-tls
+ secret:
+ secretName: argocd-repo-server-tls
+ optional: true
+ items:
+ - key: tls.crt
+ path: tls.crt
+ - key: tls.key
+ path: tls.key
+ - key: ca.crt
+ path: ca.crt
+ {{- with .Values.applicationSet.dnsConfig }}
+ dnsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ dnsPolicy: {{ .Values.applicationSet.dnsPolicy }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/ingress.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/ingress.yaml
new file mode 100644
index 0000000..5cdf0cf
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/ingress.yaml
@@ -0,0 +1,62 @@
+{{- if .Values.applicationSet.ingress.enabled -}}
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: {{ include "argo-cd.applicationSet.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }}
+ {{- with .Values.applicationSet.ingress.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.applicationSet.ingress.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ {{- with .Values.applicationSet.ingress.ingressClassName }}
+ ingressClassName: {{ . }}
+ {{- end }}
+ rules:
+ - host: {{ .Values.applicationSet.ingress.hostname | default .Values.global.domain }}
+ http:
+ paths:
+ {{- with .Values.applicationSet.ingress.extraPaths }}
+ {{- tpl (toYaml .) $ | nindent 10 }}
+ {{- end }}
+ - path: {{ .Values.applicationSet.ingress.path }}
+ pathType: {{ .Values.applicationSet.ingress.pathType }}
+ backend:
+ service:
+ name: {{ include "argo-cd.applicationSet.fullname" . }}
+ port:
+ number: {{ .Values.applicationSet.service.port }}
+ {{- range .Values.applicationSet.ingress.extraHosts }}
+ - host: {{ .name | quote }}
+ http:
+ paths:
+ - path: {{ default $.Values.applicationSet.ingress.path .path }}
+ pathType: {{ default $.Values.applicationSet.ingress.pathType .pathType }}
+ backend:
+ service:
+ name: {{ include "argo-cd.applicationSet.fullname" $ }}
+ port:
+ number: {{ $.Values.applicationSet.service.port }}
+ {{- end }}
+ {{- with .Values.applicationSet.ingress.extraRules }}
+ {{- tpl (toYaml .) $ | nindent 4 }}
+ {{- end }}
+ {{- if or .Values.applicationSet.ingress.tls .Values.applicationSet.ingress.extraTls }}
+ tls:
+ {{- if .Values.applicationSet.ingress.tls }}
+ - hosts:
+ - {{ .Values.applicationSet.ingress.hostname | default .Values.global.domain }}
+ secretName: argocd-applicationset-controller-tls
+ {{- end }}
+ {{- with .Values.applicationSet.ingress.extraTls }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/metrics.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/metrics.yaml
new file mode 100644
index 0000000..de5638a
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/metrics.yaml
@@ -0,0 +1,35 @@
+{{- if .Values.applicationSet.metrics.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "argo-cd.applicationSet.fullname" . }}-metrics
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" "metrics") | nindent 4 }}
+ {{- with .Values.applicationSet.metrics.service.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- if or .Values.applicationSet.metrics.service.annotations .Values.global.addPrometheusAnnotations }}
+ annotations:
+ {{- if .Values.global.addPrometheusAnnotations }}
+ prometheus.io/port: {{ .Values.applicationSet.metrics.service.servicePort | quote }}
+ prometheus.io/scrape: "true"
+ {{- end }}
+ {{- range $key, $value := .Values.applicationSet.metrics.service.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- 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 }}
+ {{- include "argo-cd.dualStack" . | indent 2 }}
+ ports:
+ - name: {{ .Values.applicationSet.metrics.service.portName }}
+ protocol: TCP
+ port: {{ .Values.applicationSet.metrics.service.servicePort }}
+ targetPort: metrics
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.applicationSet.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/networkpolicy.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/networkpolicy.yaml
new file mode 100644
index 0000000..f249cfc
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/networkpolicy.yaml
@@ -0,0 +1,24 @@
+{{- if and (or .Values.applicationSet.networkPolicy.create .Values.global.networkPolicy.create) (or .Values.applicationSet.metrics.enabled .Values.applicationSet.ingress.enabled) }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ name: {{ template "argo-cd.applicationSet.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }}
+spec:
+ ingress:
+ {{- if .Values.applicationSet.ingress.enabled }}
+ - ports:
+ - port: webhook
+ {{- end }}
+ - from:
+ - namespaceSelector: {}
+ ports:
+ - port: metrics
+ podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.applicationSet.name) | nindent 6 }}
+ policyTypes:
+ - Ingress
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/pdb.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/pdb.yaml
new file mode 100644
index 0000000..5d0ebc8
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/pdb.yaml
@@ -0,0 +1,27 @@
+{{- if .Values.applicationSet.pdb.enabled }}
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: {{ include "argo-cd.applicationSet.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }}
+ {{- with .Values.applicationSet.pdb.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.applicationSet.pdb.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ {{- with .Values.applicationSet.pdb.maxUnavailable }}
+ maxUnavailable: {{ . }}
+ {{- else }}
+ minAvailable: {{ .Values.applicationSet.pdb.minAvailable | default 0 }}
+ {{- end }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.applicationSet.name) | nindent 6 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/role.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/role.yaml
new file mode 100644
index 0000000..d8cfed6
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/role.yaml
@@ -0,0 +1,89 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: {{ include "argo-cd.applicationSet.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }}
+rules:
+ - apiGroups:
+ - argoproj.io
+ resources:
+ - applications
+ - applicationsets
+ - applicationsets/finalizers
+ 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
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - list
+ - patch
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ verbs:
+ - create
+ - update
+ - delete
+ - get
+ - list
+ - patch
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - secrets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ - extensions
+ resources:
+ - deployments
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/rolebinding.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/rolebinding.yaml
new file mode 100644
index 0000000..5d4f1e4
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/rolebinding.yaml
@@ -0,0 +1,15 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: {{ include "argo-cd.applicationSet.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: {{ include "argo-cd.applicationSet.fullname" . }}
+subjects:
+ - kind: ServiceAccount
+ name: {{ include "argo-cd.applicationSet.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/service.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/service.yaml
new file mode 100644
index 0000000..bf58c6b
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/service.yaml
@@ -0,0 +1,25 @@
+apiVersion: v1
+kind: Service
+metadata:
+{{- if .Values.applicationSet.service.annotations }}
+ annotations:
+ {{- range $key, $value := .Values.applicationSet.service.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+{{- end }}
+ name: {{ template "argo-cd.applicationSet.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }}
+{{- with .Values.applicationSet.service.labels }}
+{{- toYaml . | nindent 4 }}
+{{- end }}
+spec:
+ type: {{ .Values.applicationSet.service.type }}
+ {{- include "argo-cd.dualStack" . | indent 2 }}
+ ports:
+ - name: {{ .Values.applicationSet.service.portName }}
+ port: {{ .Values.applicationSet.service.port }}
+ targetPort: webhook
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.applicationSet.name) | nindent 4 }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/serviceaccount.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/serviceaccount.yaml
new file mode 100644
index 0000000..4869cad
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/serviceaccount.yaml
@@ -0,0 +1,19 @@
+{{- if .Values.applicationSet.serviceAccount.create }}
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: {{ .Values.applicationSet.serviceAccount.automountServiceAccountToken }}
+metadata:
+ name: {{ include "argo-cd.applicationSet.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ {{- with .Values.applicationSet.serviceAccount.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }}
+ {{- with .Values.applicationSet.serviceAccount.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/servicemonitor.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/servicemonitor.yaml
new file mode 100644
index 0000000..52d7070
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-applicationset/servicemonitor.yaml
@@ -0,0 +1,51 @@
+{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.applicationSet.metrics.enabled .Values.applicationSet.metrics.serviceMonitor.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "argo-cd.applicationSet.fullname" . }}
+ namespace: {{ default (include "argo-cd.namespace" .) .Values.applicationSet.metrics.serviceMonitor.namespace | quote }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }}
+ {{- with .Values.applicationSet.metrics.serviceMonitor.selector }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.applicationSet.metrics.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.applicationSet.metrics.serviceMonitor.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ endpoints:
+ - port: {{ .Values.applicationSet.metrics.service.portName }}
+ {{- with .Values.applicationSet.metrics.serviceMonitor.interval }}
+ interval: {{ . }}
+ {{- end }}
+ {{- with .Values.applicationSet.metrics.serviceMonitor.scrapeTimeout }}
+ scrapeTimeout: {{ . }}
+ {{- end }}
+ path: /metrics
+ {{- with .Values.applicationSet.metrics.serviceMonitor.relabelings }}
+ relabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.applicationSet.metrics.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ honorLabels: {{ .Values.applicationSet.metrics.serviceMonitor.honorLabels }}
+ {{- with .Values.applicationSet.metrics.serviceMonitor.scheme }}
+ scheme: {{ . }}
+ {{- end }}
+ {{- with .Values.applicationSet.metrics.serviceMonitor.tlsConfig }}
+ tlsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - {{ include "argo-cd.namespace" . }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.applicationSet.name "name" "metrics") | nindent 6 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/deployment.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/deployment.yaml
new file mode 100644
index 0000000..76ea482
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/deployment.yaml
@@ -0,0 +1,222 @@
+{{- if .Values.commitServer.enabled }}
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.commitServer.deploymentAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ name: {{ template "argo-cd.commitServer.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" .Values.commitServer.name) | nindent 4 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentLabels) .Values.commitServer.deploymentLabels) }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ {{- with include "argo-cd.strategy" (mergeOverwrite (deepCopy .Values.global.deploymentStrategy) .Values.commitServer.deploymentStrategy) }}
+ strategy:
+ {{- trim . | nindent 4 }}
+ {{- end }}
+ revisionHistoryLimit: {{ .Values.global.revisionHistoryLimit }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.commitServer.name) | nindent 6 }}
+ template:
+ metadata:
+ annotations:
+ {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.commitServer.podAnnotations) }}
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" .Values.commitServer.name) | nindent 8 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.commitServer.podLabels) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ spec:
+ {{- with .Values.commitServer.runtimeClassName | default .Values.global.runtimeClassName }}
+ runtimeClassName: {{ . }}
+ {{- end }}
+ {{- with .Values.commitServer.imagePullSecrets | default .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.hostAliases }}
+ hostAliases:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.securityContext }}
+ securityContext:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.commitServer.priorityClassName | default .Values.global.priorityClassName }}
+ priorityClassName: {{ . }}
+ {{- end }}
+ {{- with .Values.commitServer.terminationGracePeriodSeconds }}
+ terminationGracePeriodSeconds: {{ . }}
+ {{- end }}
+ serviceAccountName: {{ include "argo-cd.commitServer.serviceAccountName" . }}
+ automountServiceAccountToken: {{ .Values.commitServer.automountServiceAccountToken }}
+ containers:
+ - name: {{ .Values.commitServer.name }}
+ image: {{ default .Values.global.image.repository .Values.commitServer.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.commitServer.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.commitServer.image.imagePullPolicy }}
+ args:
+ - /usr/local/bin/argocd-commit-server
+ {{- with .Values.commitServer.extraArgs }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ env:
+ {{- with (concat .Values.global.env .Values.commitServer.extraEnv) }}
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ - name: ARGOCD_COMMIT_SERVER_LISTEN_ADDRESS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: commitserver.listen.address
+ optional: true
+ - name: ARGOCD_COMMIT_SERVER_METRICS_LISTEN_ADDRESS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: commitserver.metrics.listen.address
+ optional: true
+ - name: ARGOCD_COMMIT_SERVER_LOGFORMAT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: commitserver.log.format
+ optional: true
+ - name: ARGOCD_COMMIT_SERVER_LOGLEVEL
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: commitserver.log.level
+ optional: true
+ - name: ARGOCD_LOG_FORMAT_TIMESTAMP
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: log.format.timestamp
+ optional: true
+ {{- with .Values.commitServer.envFrom }}
+ envFrom:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ ports:
+ - containerPort: 8086
+ name: server
+ protocol: TCP
+ - containerPort: 8087
+ name: metrics
+ protocol: TCP
+ {{- if .Values.commitServer.livenessProbe.enabled }}
+ livenessProbe:
+ httpGet:
+ path: /healthz?full=true
+ port: 8087
+ initialDelaySeconds: {{ .Values.commitServer.livenessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.commitServer.livenessProbe.periodSeconds }}
+ failureThreshold: {{ .Values.commitServer.livenessProbe.failureThreshold }}
+ timeoutSeconds: {{ .Values.commitServer.livenessProbe.timeoutSeconds }}
+ {{- end }}
+ {{- if .Values.commitServer.readinessProbe.enabled }}
+ readinessProbe:
+ httpGet:
+ path: /healthz
+ port: 8087
+ initialDelaySeconds: {{ .Values.commitServer.readinessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.commitServer.readinessProbe.periodSeconds }}
+ failureThreshold: {{ .Values.commitServer.readinessProbe.failureThreshold }}
+ timeoutSeconds: {{ .Values.commitServer.readinessProbe.timeoutSeconds }}
+ {{- end }}
+ resources:
+ {{- toYaml .Values.commitServer.resources | nindent 10 }}
+ {{- with .Values.commitServer.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ {{- with .Values.commitServer.lifecycle }}
+ lifecycle:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ volumeMounts:
+ {{- with .Values.commitServer.extraVolumeMounts }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ - name: ssh-known-hosts
+ mountPath: /app/config/ssh
+ - name: tls-certs
+ mountPath: /app/config/tls
+ - name: gpg-keys
+ mountPath: /app/config/gpg/source
+ - name: gpg-keyring
+ mountPath: /app/config/gpg/keys
+ # We need a writeable temp directory for the askpass socket file.
+ - name: tmp
+ mountPath: /tmp
+ volumes:
+ {{- with .Values.commitServer.extraVolumes }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ - name: ssh-known-hosts
+ configMap:
+ name: argocd-ssh-known-hosts-cm
+ - name: tls-certs
+ configMap:
+ name: argocd-tls-certs-cm
+ - name: gpg-keys
+ configMap:
+ name: argocd-gpg-keys-cm
+ - name: gpg-keyring
+ emptyDir: {}
+ - name: tmp
+ emptyDir: {}
+ - name: argocd-commit-server-tls
+ secret:
+ secretName: argocd-commit-server-tls
+ optional: true
+ items:
+ - key: tls.crt
+ path: tls.crt
+ - key: tls.key
+ path: tls.key
+ - key: ca.crt
+ path: ca.crt
+ {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.commitServer) }}
+ affinity:
+ {{- trim . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.commitServer.nodeSelector | default .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.commitServer.tolerations | default .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.commitServer.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- range $constraint := . }}
+ - {{ toYaml $constraint | nindent 8 | trim }}
+ {{- if not $constraint.labelSelector }}
+ labelSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" $ "name" $.Values.commitServer.name) | nindent 12 }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ {{- if .Values.commitServer.hostNetwork }}
+ hostNetwork: {{ .Values.commitServer.hostNetwork }}
+ {{- end }}
+ {{- with .Values.commitServer.dnsConfig }}
+ dnsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ dnsPolicy: {{ .Values.commitServer.dnsPolicy }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/metrics.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/metrics.yaml
new file mode 100644
index 0000000..7d198a7
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/metrics.yaml
@@ -0,0 +1,35 @@
+{{- if and .Values.commitServer.enabled .Values.commitServer.metrics.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "argo-cd.commitServer.fullname" . }}-metrics
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" "metrics") | nindent 4 }}
+ {{- with .Values.commitServer.metrics.service.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- if or .Values.commitServer.metrics.service.annotations .Values.global.addPrometheusAnnotations }}
+ annotations:
+ {{- if .Values.global.addPrometheusAnnotations }}
+ prometheus.io/port: {{ .Values.commitServer.metrics.service.servicePort | quote }}
+ prometheus.io/scrape: "true"
+ {{- end }}
+ {{- range $key, $value := .Values.commitServer.metrics.service.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ type: {{ .Values.commitServer.metrics.service.type }}
+ {{- if and .Values.commitServer.metrics.service.clusterIP (eq .Values.commitServer.metrics.service.type "ClusterIP") }}
+ clusterIP: {{ .Values.commitServer.metrics.service.clusterIP }}
+ {{- end }}
+ {{- include "argo-cd.dualStack" . | indent 2 }}
+ ports:
+ - name: {{ .Values.commitServer.metrics.service.portName }}
+ protocol: TCP
+ port: {{ .Values.commitServer.metrics.service.servicePort }}
+ targetPort: 8087
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.commitServer.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/networkpolicy.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/networkpolicy.yaml
new file mode 100644
index 0000000..1453cf6
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/networkpolicy.yaml
@@ -0,0 +1,25 @@
+{{- if and .Values.commitServer.enabled (or .Values.commitServer.networkPolicy.create .Values.global.networkPolicy.create)}}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ name: {{ template "argo-cd.commitServer.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+spec:
+ podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.commitServer.name) | nindent 6 }}
+ policyTypes:
+ - Ingress
+ ingress:
+ - from:
+ - podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 14 }}
+ ports:
+ - protocol: TCP
+ port: 8086
+ - from:
+ - namespaceSelector: { }
+ ports:
+ - port: 8087
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/service.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/service.yaml
new file mode 100644
index 0000000..d4cca0e
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/service.yaml
@@ -0,0 +1,26 @@
+{{- if .Values.commitServer.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ template "argo-cd.commitServer.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" .Values.commitServer.name) | nindent 4 }}
+ {{- with .Values.commitServer.service.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.commitServer.service.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ ports:
+ - name: {{ .Values.commitServer.service.portName }}
+ protocol: TCP
+ port: {{ .Values.commitServer.service.port }}
+ targetPort: server
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.commitServer.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/serviceaccount.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/serviceaccount.yaml
new file mode 100644
index 0000000..d0cf9e7
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-commit-server/serviceaccount.yaml
@@ -0,0 +1,19 @@
+{{- if and .Values.commitServer.enabled .Values.commitServer.serviceAccount.create }}
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: {{ .Values.commitServer.serviceAccount.automountServiceAccountToken }}
+metadata:
+ name: {{ include "argo-cd.commitServer.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ {{- with .Values.commitServer.serviceAccount.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" .Values.commitServer.name) | nindent 4 }}
+ {{- with .Values.commitServer.serviceAccount.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-cm.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-cm.yaml
new file mode 100644
index 0000000..6bd19f5
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-cm.yaml
@@ -0,0 +1,17 @@
+{{- if .Values.configs.cm.create }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: argocd-cm
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" "cm") | nindent 4 }}
+ {{- with .Values.configs.cm.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+data:
+ {{- include "argo-cd.config.cm" . | trim | nindent 2 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-cmd-params-cm.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-cmd-params-cm.yaml
new file mode 100644
index 0000000..f0c81b2
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-cmd-params-cm.yaml
@@ -0,0 +1,17 @@
+{{- if .Values.configs.params.create }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: argocd-cmd-params-cm
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" "cmd-params-cm") | nindent 4 }}
+ {{- if .Values.configs.params.annotations }}
+ annotations:
+ {{- range $key, $value := .Values.configs.params.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+data:
+ {{- include "argo-cd.config.params" . | trim | nindent 2 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-cmp-cm.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-cmp-cm.yaml
new file mode 100644
index 0000000..a5d29f6
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-cmp-cm.yaml
@@ -0,0 +1,25 @@
+{{- if .Values.configs.cmp.create }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: argocd-cmp-cm
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" "cmp-cm") | nindent 4 }}
+ {{- with .Values.configs.cmp.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+data:
+ {{- range $cmp_plugin, $cmp_plugin_config := .Values.configs.cmp.plugins }}
+ {{ $cmp_plugin }}.yaml: |
+ apiVersion: argoproj.io/v1alpha1
+ kind: ConfigManagementPlugin
+ metadata:
+ name: {{ $cmp_plugin }}
+ spec:
+ {{- toYaml $cmp_plugin_config | nindent 6 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-dex-server-tls-secret.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-dex-server-tls-secret.yaml
new file mode 100644
index 0000000..747fa13
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-dex-server-tls-secret.yaml
@@ -0,0 +1,25 @@
+{{- if and .Values.dex.enabled .Values.dex.certificateSecret.enabled }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: argocd-dex-server-tls
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" "dex-server-tls") | nindent 4 }}
+ {{- with .Values.dex.certificateSecret.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.dex.certificateSecret.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+type: kubernetes.io/tls
+data:
+ {{- with .Values.dex.certificateSecret.ca }}
+ ca.crt: {{ . | b64enc | quote }}
+ {{- end }}
+ tls.crt: {{ .Values.dex.certificateSecret.crt | b64enc | quote }}
+ tls.key: {{ .Values.dex.certificateSecret.key | b64enc | quote }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-gpg-keys-cm.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-gpg-keys-cm.yaml
new file mode 100644
index 0000000..ed299b5
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-gpg-keys-cm.yaml
@@ -0,0 +1,17 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: argocd-gpg-keys-cm
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "name" "gpg-keys-cm") | nindent 4 }}
+ {{- with .Values.configs.gpg.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+{{- with .Values.configs.gpg.keys }}
+data:
+ {{- toYaml . | nindent 2 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-notifications-cm.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-notifications-cm.yaml
new file mode 100644
index 0000000..663862e
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-notifications-cm.yaml
@@ -0,0 +1,28 @@
+{{- if and .Values.notifications.enabled .Values.notifications.cm.create }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: argocd-notifications-cm
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }}
+data:
+ context: |
+ argocdUrl: {{ .Values.notifications.argocdUrl | default (printf "https://%s" .Values.global.domain) }}
+ {{- with .Values.notifications.context }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.notifications.notifiers }}
+ {{- toYaml . | nindent 2 }}
+ {{- end }}
+ {{- with .Values.notifications.subscriptions }}
+ subscriptions: |
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.notifications.templates }}
+ {{- toYaml . | nindent 2 }}
+ {{- end }}
+ {{- with .Values.notifications.triggers }}
+ {{- toYaml . | nindent 2 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-notifications-secret.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-notifications-secret.yaml
new file mode 100644
index 0000000..f64a91f
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-notifications-secret.yaml
@@ -0,0 +1,23 @@
+{{- if and .Values.notifications.enabled .Values.notifications.secret.create }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ .Values.notifications.secret.name }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }}
+ {{- with .Values.notifications.secret.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.notifications.secret.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+type: Opaque
+stringData:
+ {{- with .Values.notifications.secret.items }}
+ {{- toYaml . | nindent 2 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-rbac-cm.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-rbac-cm.yaml
new file mode 100644
index 0000000..ae48404
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-rbac-cm.yaml
@@ -0,0 +1,19 @@
+{{- if .Values.configs.rbac.create }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: argocd-rbac-cm
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" "rbac-cm") | nindent 4 }}
+ {{- with .Values.configs.rbac.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+{{- with (omit .Values.configs.rbac "create" "annotations") }}
+data:
+ {{- toYaml . | nindent 2 }}
+{{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-repo-server-tls-secret.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-repo-server-tls-secret.yaml
new file mode 100644
index 0000000..8635d64
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-repo-server-tls-secret.yaml
@@ -0,0 +1,25 @@
+{{- if .Values.repoServer.certificateSecret.enabled }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: argocd-repo-server-tls
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" "repo-server-tls") | nindent 4 }}
+ {{- with .Values.repoServer.certificateSecret.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.repoServer.certificateSecret.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+type: kubernetes.io/tls
+data:
+ {{- with .Values.repoServer.certificateSecret.ca }}
+ ca.crt: {{ . | b64enc | quote }}
+ {{- end }}
+ tls.crt: {{ .Values.repoServer.certificateSecret.crt | b64enc | quote }}
+ tls.key: {{ .Values.repoServer.certificateSecret.key | b64enc | quote }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-secret.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-secret.yaml
new file mode 100644
index 0000000..9462be2
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-secret.yaml
@@ -0,0 +1,49 @@
+{{- if .Values.configs.secret.createSecret }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: argocd-secret
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" "secret") | nindent 4 }}
+ {{- with .Values.configs.secret.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.configs.secret.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+type: Opaque
+{{- if or .Values.configs.secret.githubSecret (or .Values.configs.secret.gitlabSecret .Values.configs.secret.bitbucketUUID .Values.configs.secret.bitbucketServerSecret .Values.configs.secret.gogsSecret (and .Values.configs.secret.azureDevops.username .Values.configs.secret.azureDevops.password) .Values.configs.secret.argocdServerAdminPassword .Values.configs.secret.extra) }}
+# Setting a blank data again will wipe admin password/key/cert
+data:
+ {{- with .Values.configs.secret.githubSecret }}
+ webhook.github.secret: {{ . | b64enc }}
+ {{- end }}
+ {{- with .Values.configs.secret.gitlabSecret }}
+ webhook.gitlab.secret: {{ . | b64enc }}
+ {{- end }}
+ {{- with .Values.configs.secret.bitbucketServerSecret }}
+ webhook.bitbucketserver.secret: {{ . | b64enc }}
+ {{- end }}
+ {{- with .Values.configs.secret.bitbucketUUID }}
+ webhook.bitbucket.uuid: {{ . | b64enc }}
+ {{- end }}
+ {{- with .Values.configs.secret.gogsSecret }}
+ webhook.gogs.secret: {{ . | b64enc }}
+ {{- end }}
+ {{- if and .Values.configs.secret.azureDevops.username .Values.configs.secret.azureDevops.password }}
+ webhook.azuredevops.username: {{ .Values.configs.secret.azureDevops.username | b64enc }}
+ webhook.azuredevops.password: {{ .Values.configs.secret.azureDevops.password | b64enc }}
+ {{- end }}
+ {{- if .Values.configs.secret.argocdServerAdminPassword }}
+ admin.password: {{ .Values.configs.secret.argocdServerAdminPassword | b64enc }}
+ admin.passwordMtime: {{ default (dateInZone "2006-01-02T15:04:05Z" (now) "UTC") .Values.configs.secret.argocdServerAdminPasswordMtime | b64enc }}
+ {{- end }}
+ {{- range $key, $value := .Values.configs.secret.extra }}
+ {{ $key }}: {{ $value | b64enc }}
+ {{- end }}
+{{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-server-tls-secret.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-server-tls-secret.yaml
new file mode 100644
index 0000000..9711647
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-server-tls-secret.yaml
@@ -0,0 +1,22 @@
+{{- if and .Values.server.certificateSecret.enabled (not .Values.server.certificate.enabled) }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: argocd-server-tls
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" "server-tls") | nindent 4 }}
+ {{- with .Values.server.certificateSecret.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.server.certificateSecret.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+type: kubernetes.io/tls
+data:
+ tls.crt: {{ .Values.server.certificateSecret.crt | b64enc | quote }}
+ tls.key: {{ .Values.server.certificateSecret.key | b64enc | quote }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-ssh-known-hosts-cm.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-ssh-known-hosts-cm.yaml
new file mode 100644
index 0000000..0218d40
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-ssh-known-hosts-cm.yaml
@@ -0,0 +1,21 @@
+{{- if .Values.configs.ssh.create }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: argocd-ssh-known-hosts-cm
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "name" "ssh-known-hosts-cm") | nindent 4 }}
+ {{- with .Values.configs.ssh.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+data:
+ ssh_known_hosts: |
+ {{- .Values.configs.ssh.knownHosts | nindent 4 }}
+ {{- with .Values.configs.ssh.extraHosts }}
+ {{- . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-styles-cm.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-styles-cm.yaml
new file mode 100644
index 0000000..7742154
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-styles-cm.yaml
@@ -0,0 +1,12 @@
+{{- if .Values.configs.styles }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: argocd-styles-cm
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }}
+data:
+ custom.styles.css: |
+ {{- .Values.configs.styles | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-tls-certs-cm.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-tls-certs-cm.yaml
new file mode 100644
index 0000000..3aad401
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/argocd-tls-certs-cm.yaml
@@ -0,0 +1,19 @@
+{{- if .Values.configs.tls.create }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: argocd-tls-certs-cm
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "name" "tls-certs-cm") | nindent 4 }}
+ {{- with .Values.configs.tls.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+{{- with .Values.configs.tls.certificates }}
+data:
+ {{- toYaml . | nindent 2 }}
+{{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/cluster-secrets.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/cluster-secrets.yaml
new file mode 100644
index 0000000..956bbf5
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/cluster-secrets.yaml
@@ -0,0 +1,38 @@
+{{- range $cluster_key, $cluster_value := .Values.configs.clusterCredentials }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ include "argo-cd.name" $ }}-cluster-{{ $cluster_key }}
+ namespace: {{ include "argo-cd.namespace" $ | quote }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" $) | nindent 4 }}
+ {{- with $cluster_value.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ argocd.argoproj.io/secret-type: cluster
+ {{- with $cluster_value.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+type: Opaque
+stringData:
+ {{- if $cluster_value.shard }}
+ shard: {{ $cluster_value.shard | quote }}
+ {{- end }}
+ name: {{ $cluster_key }}
+ server: {{ required "A valid .Values.configs.clusterCredentials.CLUSTERNAME.server entry is required!" $cluster_value.server }}
+ {{- if $cluster_value.namespaces }}
+ namespaces: {{ $cluster_value.namespaces }}
+ {{- if $cluster_value.clusterResources }}
+ clusterResources: {{ $cluster_value.clusterResources | quote }}
+ {{- end }}
+ {{- end }}
+ {{- if $cluster_value.project }}
+ project: {{ $cluster_value.project | quote }}
+ {{- end }}
+ config: |
+ {{- required "A valid .Values.configs.clusterCredentials.CLUSTERNAME.config entry is required!" $cluster_value.config | toRawJson | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/externalredis-secret.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/externalredis-secret.yaml
new file mode 100644
index 0000000..2cfefde
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/externalredis-secret.yaml
@@ -0,0 +1,23 @@
+{{- if and (or .Values.externalRedis.username .Values.externalRedis.password) (not .Values.externalRedis.existingSecret) }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: argocd-redis
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" $) | nindent 4 }}
+ {{- with .Values.externalRedis.secretAnnotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+type: Opaque
+data:
+ {{- with .Values.externalRedis.username }}
+ redis-username: {{ . | b64enc }}
+ {{- end }}
+ {{- with .Values.externalRedis.password }}
+ redis-password: {{ . | b64enc }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/repository-credentials-secret.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/repository-credentials-secret.yaml
new file mode 100644
index 0000000..e4d23f9
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/repository-credentials-secret.yaml
@@ -0,0 +1,21 @@
+{{- range $repo_cred_key, $repo_cred_value := .Values.configs.credentialTemplates }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+ name: argocd-repo-creds-{{ $repo_cred_key }}
+ namespace: {{ include "argo-cd.namespace" $ | quote }}
+ labels:
+ argocd.argoproj.io/secret-type: repo-creds
+ {{- include "argo-cd.labels" (dict "context" $) | nindent 4 }}
+ {{- with $.Values.configs.credentialTemplatesAnnotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+data:
+ {{- range $key, $value := $repo_cred_value }}
+ {{ $key }}: {{ $value | toString | b64enc }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-configs/repository-secret.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-configs/repository-secret.yaml
new file mode 100644
index 0000000..4a77cf1
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-configs/repository-secret.yaml
@@ -0,0 +1,21 @@
+{{- range $repo_key, $repo_value := .Values.configs.repositories }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+ name: argocd-repo-{{ $repo_key }}
+ namespace: {{ include "argo-cd.namespace" $ | quote }}
+ labels:
+ argocd.argoproj.io/secret-type: repository
+ {{- include "argo-cd.labels" (dict "context" $) | nindent 4 }}
+ {{- with $.Values.configs.repositoriesAnnotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+data:
+ {{- range $key, $value := $repo_value }}
+ {{ $key }}: {{ $value | b64enc }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-notifications/clusterrole.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/clusterrole.yaml
new file mode 100644
index 0000000..eba5973
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/clusterrole.yaml
@@ -0,0 +1,52 @@
+{{- if and .Values.notifications.enabled .Values.createClusterRoles }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: {{ include "argo-cd.notifications.fullname" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }}
+rules:
+ {{- with .Values.notifications.clusterRoleRules.rules }}
+ {{- toYaml . | nindent 2 }}
+ {{- end }}
+ - apiGroups:
+ - argoproj.io
+ resources:
+ - applications
+ - appprojects
+ verbs:
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - secrets
+ verbs:
+ - list
+ - watch
+ {{- if (index .Values.configs.params "application.namespaces") }}
+ - create
+ {{- end }}
+ {{- if .Values.notifications.cm.create }}
+ - apiGroups:
+ - ""
+ resourceNames:
+ - argocd-notifications-cm
+ resources:
+ - configmaps
+ verbs:
+ - get
+ {{- end }}
+ - apiGroups:
+ - ""
+ resourceNames:
+ - {{ .Values.notifications.secret.name }}
+ resources:
+ - secrets
+ verbs:
+ - get
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-notifications/clusterrolebinding.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/clusterrolebinding.yaml
new file mode 100644
index 0000000..9a6fa7c
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/clusterrolebinding.yaml
@@ -0,0 +1,16 @@
+{{- if and .Values.notifications.enabled .Values.createClusterRoles }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: {{ include "argo-cd.notifications.fullname" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: {{ include "argo-cd.notifications.fullname" . }}
+subjects:
+- kind: ServiceAccount
+ name: {{ include "argo-cd.notifications.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-notifications/deployment.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/deployment.yaml
new file mode 100644
index 0000000..4467e65
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/deployment.yaml
@@ -0,0 +1,220 @@
+{{- if .Values.notifications.enabled }}
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.notifications.deploymentAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ name: {{ include "argo-cd.notifications.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentLabels) .Values.notifications.deploymentLabels) }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ replicas: 1
+ revisionHistoryLimit: {{ .Values.global.revisionHistoryLimit }}
+ {{- with include "argo-cd.strategy" (mergeOverwrite (deepCopy .Values.global.deploymentStrategy) .Values.notifications.deploymentStrategy) }}
+ strategy:
+ {{- trim . | nindent 4 }}
+ {{- end }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.notifications.name) | nindent 6 }}
+ template:
+ metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.notifications.podAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 8 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.notifications.podLabels) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ spec:
+ {{- with .Values.notifications.runtimeClassName | default .Values.global.runtimeClassName }}
+ runtimeClassName: {{ . }}
+ {{- end }}
+ {{- with .Values.notifications.imagePullSecrets | default .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.hostAliases }}
+ hostAliases:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.securityContext }}
+ securityContext:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.notifications.priorityClassName | default .Values.global.priorityClassName }}
+ priorityClassName: {{ . }}
+ {{- end }}
+ {{- if .Values.notifications.terminationGracePeriodSeconds }}
+ terminationGracePeriodSeconds: {{ .Values.notifications.terminationGracePeriodSeconds }}
+ {{- end }}
+ serviceAccountName: {{ include "argo-cd.notifications.serviceAccountName" . }}
+ automountServiceAccountToken: {{ .Values.notifications.automountServiceAccountToken }}
+ containers:
+ - name: {{ .Values.notifications.name }}
+ image: {{ default .Values.global.image.repository .Values.notifications.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.notifications.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.notifications.image.imagePullPolicy }}
+ args:
+ - /usr/local/bin/argocd-notifications
+ - --metrics-port={{ .Values.notifications.containerPorts.metrics }}
+ - --namespace={{ include "argo-cd.namespace" . }}
+ - --argocd-repo-server={{ template "argo-cd.repoServer.fullname" . }}:{{ .Values.repoServer.service.port }}
+ - --secret-name={{ .Values.notifications.secret.name }}
+ {{- with .Values.notifications.logLevel }}
+ - --loglevel={{ . }}
+ {{- end }}
+ {{- with .Values.notifications.logFormat }}
+ - --logformat={{ . }}
+ {{- end }}
+ {{- range .Values.notifications.extraArgs }}
+ - {{ . | squote }}
+ {{- end }}
+ env:
+ {{- with (concat .Values.global.env .Values.notifications.extraEnv) }}
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
+ - name: ARGOCD_NOTIFICATIONS_CONTROLLER_LOGLEVEL
+ valueFrom:
+ configMapKeyRef:
+ key: notificationscontroller.log.level
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_NOTIFICATIONS_CONTROLLER_LOGFORMAT
+ valueFrom:
+ configMapKeyRef:
+ key: notificationscontroller.log.format
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_LOG_FORMAT_TIMESTAMP
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: log.format.timestamp
+ optional: true
+ - name: ARGOCD_APPLICATION_NAMESPACES
+ valueFrom:
+ configMapKeyRef:
+ key: application.namespaces
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_NOTIFICATION_CONTROLLER_SELF_SERVICE_NOTIFICATION_ENABLED
+ valueFrom:
+ configMapKeyRef:
+ key: notificationscontroller.selfservice.enabled
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_NOTIFICATION_CONTROLLER_REPO_SERVER_PLAINTEXT
+ valueFrom:
+ configMapKeyRef:
+ key: notificationscontroller.repo.server.plaintext
+ name: argocd-cmd-params-cm
+ optional: true
+ {{- with .Values.notifications.extraEnvFrom }}
+ envFrom:
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
+ ports:
+ - name: metrics
+ containerPort: {{ .Values.notifications.containerPorts.metrics }}
+ protocol: TCP
+ {{- if .Values.notifications.livenessProbe.enabled }}
+ livenessProbe:
+ tcpSocket:
+ port: metrics
+ initialDelaySeconds: {{ .Values.notifications.livenessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.notifications.livenessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.notifications.livenessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.notifications.livenessProbe.successThreshold }}
+ failureThreshold: {{ .Values.notifications.livenessProbe.failureThreshold }}
+ {{- end }}
+ {{- if .Values.notifications.readinessProbe.enabled }}
+ readinessProbe:
+ tcpSocket:
+ port: metrics
+ initialDelaySeconds: {{ .Values.notifications.readinessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.notifications.readinessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.notifications.readinessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.notifications.readinessProbe.successThreshold }}
+ failureThreshold: {{ .Values.notifications.readinessProbe.failureThreshold }}
+ {{- end }}
+ resources:
+ {{- toYaml .Values.notifications.resources | nindent 12 }}
+ {{- with .Values.notifications.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
+ workingDir: /app
+ volumeMounts:
+ - name: tls-certs
+ mountPath: /app/config/tls
+ - name: argocd-repo-server-tls
+ mountPath: /app/config/reposerver/tls
+ {{- with .Values.notifications.extraVolumeMounts }}
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
+ {{- with .Values.notifications.extraContainers }}
+ {{- tpl (toYaml . ) $ | nindent 8 }}
+ {{- end }}
+ {{- with .Values.notifications.initContainers }}
+ initContainers:
+ {{- tpl (toYaml . ) $ | nindent 8 }}
+ {{- end }}
+ {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.notifications) }}
+ affinity:
+ {{- trim . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.notifications.nodeSelector | default .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.notifications.tolerations | default .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.notifications.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- range $constraint := . }}
+ - {{ toYaml $constraint | nindent 8 | trim }}
+ {{- if not $constraint.labelSelector }}
+ labelSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" $ "name" $.Values.notifications.name) | nindent 12 }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ volumes:
+ {{- with .Values.notifications.extraVolumes }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ - name: tls-certs
+ configMap:
+ name: argocd-tls-certs-cm
+ - name: argocd-repo-server-tls
+ secret:
+ secretName: argocd-repo-server-tls
+ optional: true
+ items:
+ - key: tls.crt
+ path: tls.crt
+ - key: tls.key
+ path: tls.key
+ - key: ca.crt
+ path: ca.crt
+ {{- with .Values.notifications.dnsConfig }}
+ dnsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ dnsPolicy: {{ .Values.notifications.dnsPolicy }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-notifications/metrics.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/metrics.yaml
new file mode 100644
index 0000000..9dd18c8
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/metrics.yaml
@@ -0,0 +1,35 @@
+{{- if and .Values.notifications.enabled .Values.notifications.metrics.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "argo-cd.notifications.fullname" . }}-metrics
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" "metrics") | nindent 4 }}
+ {{- with .Values.notifications.metrics.service.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- if or .Values.notifications.metrics.service.annotations .Values.global.addPrometheusAnnotations }}
+ annotations:
+ {{- if .Values.global.addPrometheusAnnotations }}
+ prometheus.io/port: {{ .Values.notifications.metrics.port | quote }}
+ prometheus.io/scrape: "true"
+ {{- end }}
+ {{- range $key, $value := .Values.notifications.metrics.service.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ type: {{ .Values.notifications.metrics.service.type }}
+ {{- if and .Values.notifications.metrics.service.clusterIP (eq .Values.notifications.metrics.service.type "ClusterIP") }}
+ clusterIP: {{ .Values.notifications.metrics.service.clusterIP }}
+ {{- end }}
+ {{- include "argo-cd.dualStack" . | indent 2 }}
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.notifications.name) | nindent 6 }}
+ ports:
+ - name: {{ .Values.notifications.metrics.service.portName }}
+ protocol: TCP
+ port: {{ .Values.notifications.metrics.port }}
+ targetPort: metrics
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-notifications/networkpolicy.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/networkpolicy.yaml
new file mode 100644
index 0000000..1a5df53
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/networkpolicy.yaml
@@ -0,0 +1,20 @@
+{{- if and .Values.notifications.enabled (or .Values.notifications.networkPolicy.create .Values.global.networkPolicy.create) .Values.notifications.metrics.enabled }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ name: {{ template "argo-cd.notifications.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }}
+spec:
+ ingress:
+ - from:
+ - namespaceSelector: {}
+ ports:
+ - port: metrics
+ podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.notifications.name) | nindent 6 }}
+ policyTypes:
+ - Ingress
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-notifications/pdb.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/pdb.yaml
new file mode 100644
index 0000000..4bdf211
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/pdb.yaml
@@ -0,0 +1,27 @@
+{{- if and .Values.notifications.enabled .Values.notifications.pdb.enabled }}
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: {{ include "argo-cd.notifications.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }}
+ {{- with .Values.notifications.pdb.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.notifications.pdb.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ {{- with .Values.notifications.pdb.maxUnavailable }}
+ maxUnavailable: {{ . }}
+ {{- else }}
+ minAvailable: {{ .Values.notifications.pdb.minAvailable | default 0 }}
+ {{- end }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.notifications.name) | nindent 6 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-notifications/role.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/role.yaml
new file mode 100644
index 0000000..800a937
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/role.yaml
@@ -0,0 +1,45 @@
+{{- if .Values.notifications.enabled }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: {{ template "argo-cd.notifications.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }}
+rules:
+- apiGroups:
+ - argoproj.io
+ resources:
+ - applications
+ - appprojects
+ verbs:
+ - get
+ - list
+ - watch
+ - update
+ - patch
+- apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - secrets
+ verbs:
+ - list
+ - watch
+- apiGroups:
+ - ""
+ resourceNames:
+ - argocd-notifications-cm
+ resources:
+ - configmaps
+ verbs:
+ - get
+- apiGroups:
+ - ""
+ resourceNames:
+ - {{ .Values.notifications.secret.name }}
+ resources:
+ - secrets
+ verbs:
+ - get
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-notifications/rolebinding.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/rolebinding.yaml
new file mode 100644
index 0000000..e225962
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/rolebinding.yaml
@@ -0,0 +1,17 @@
+{{- if .Values.notifications.enabled }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: {{ include "argo-cd.notifications.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: {{ include "argo-cd.notifications.fullname" . }}
+subjects:
+ - kind: ServiceAccount
+ name: {{ include "argo-cd.notifications.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-notifications/serviceaccount.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/serviceaccount.yaml
new file mode 100644
index 0000000..3da8f27
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/serviceaccount.yaml
@@ -0,0 +1,19 @@
+{{- if and .Values.notifications.enabled .Values.notifications.serviceAccount.create }}
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: {{ .Values.notifications.serviceAccount.automountServiceAccountToken }}
+metadata:
+ name: {{ include "argo-cd.notifications.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ {{- with .Values.notifications.serviceAccount.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }}
+ {{- with .Values.notifications.serviceAccount.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-notifications/servicemonitor.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/servicemonitor.yaml
new file mode 100644
index 0000000..22b882a
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-notifications/servicemonitor.yaml
@@ -0,0 +1,51 @@
+{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.notifications.enabled .Values.notifications.metrics.enabled .Values.notifications.metrics.serviceMonitor.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "argo-cd.notifications.fullname" . }}
+ namespace: {{ default (include "argo-cd.namespace" .) .Values.notifications.metrics.serviceMonitor.namespace | quote }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }}
+ {{- with .Values.notifications.metrics.serviceMonitor.selector }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- if .Values.notifications.metrics.serviceMonitor.additionalLabels }}
+ {{- toYaml .Values.notifications.metrics.serviceMonitor.additionalLabels | nindent 4 }}
+ {{- end }}
+ {{- with .Values.notifications.metrics.serviceMonitor.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ endpoints:
+ - port: {{ .Values.notifications.metrics.service.portName }}
+ path: /metrics
+ {{- if .Values.notifications.metrics.serviceMonitor.interval }}
+ interval: {{ .Values.notifications.metrics.serviceMonitor.interval }}
+ {{- end }}
+ {{- if .Values.notifications.metrics.serviceMonitor.scrapeTimeout }}
+ scrapeTimeout: {{ .Values.notifications.metrics.serviceMonitor.scrapeTimeout }}
+ {{- end }}
+ {{- with .Values.notifications.metrics.serviceMonitor.scheme }}
+ scheme: {{ . }}
+ {{- end }}
+ {{- with .Values.notifications.metrics.serviceMonitor.tlsConfig }}
+ tlsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.notifications.metrics.serviceMonitor.relabelings }}
+ relabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.notifications.metrics.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ honorLabels: {{ .Values.notifications.metrics.serviceMonitor.honorLabels }}
+ namespaceSelector:
+ matchNames:
+ - {{ include "argo-cd.namespace" . }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.notifications.name "name" "metrics") | nindent 6 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/clusterrole.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/clusterrole.yaml
new file mode 100644
index 0000000..23439b1
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/clusterrole.yaml
@@ -0,0 +1,23 @@
+{{- if and .Values.createClusterRoles .Values.repoServer.clusterRoleRules.enabled }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: {{ include "argo-cd.repoServer.fullname" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }}
+rules:
+ {{- with .Values.repoServer.clusterRoleRules.rules }}
+ {{- toYaml . | nindent 2 }}
+ {{- else }}
+ - apiGroups:
+ - '*'
+ resources:
+ - '*'
+ verbs:
+ - '*'
+ - nonResourceURLs:
+ - '*'
+ verbs:
+ - '*'
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/clusterrolebinding.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/clusterrolebinding.yaml
new file mode 100644
index 0000000..d8bd88a
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/clusterrolebinding.yaml
@@ -0,0 +1,16 @@
+{{- if and .Values.createClusterRoles .Values.repoServer.clusterRoleRules.enabled }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: {{ include "argo-cd.repoServer.fullname" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: {{ include "argo-cd.repoServer.fullname" . }}
+subjects:
+- kind: ServiceAccount
+ name: {{ include "argo-cd.repoServer.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/deployment.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/deployment.yaml
new file mode 100644
index 0000000..dc0b170
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/deployment.yaml
@@ -0,0 +1,537 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.repoServer.deploymentAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ name: {{ template "argo-cd.repoServer.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentLabels) .Values.repoServer.deploymentLabels) }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ {{- with include "argo-cd.strategy" (mergeOverwrite (deepCopy .Values.global.deploymentStrategy) .Values.repoServer.deploymentStrategy) }}
+ strategy:
+ {{- trim . | nindent 4 }}
+ {{- end }}
+ {{- if not .Values.repoServer.autoscaling.enabled }}
+ replicas: {{ .Values.repoServer.replicas }}
+ {{- end }}
+ revisionHistoryLimit: {{ .Values.global.revisionHistoryLimit }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.repoServer.name) | nindent 6 }}
+ template:
+ metadata:
+ annotations:
+ checksum/cmd-params: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmd-params-cm.yaml") . | sha256sum }}
+ {{- if .Values.repoServer.certificateSecret.enabled }}
+ checksum/repo-server-tls: {{ include (print $.Template.BasePath "/argocd-configs/argocd-repo-server-tls-secret.yaml") . | sha256sum }}
+ {{- end }}
+ {{- if .Values.configs.cm.create }}
+ checksum/cm: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cm.yaml") . | sha256sum }}
+ {{- end }}
+ {{- if .Values.configs.cmp.create }}
+ checksum/cmp-cm: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmp-cm.yaml") . | sha256sum }}
+ {{- end }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.repoServer.podAnnotations) }}
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 8 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.repoServer.podLabels) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ spec:
+ {{- with .Values.repoServer.runtimeClassName | default .Values.global.runtimeClassName }}
+ runtimeClassName: {{ . }}
+ {{- end }}
+ {{- with .Values.repoServer.imagePullSecrets | default .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.hostAliases }}
+ hostAliases:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.securityContext }}
+ securityContext:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.repoServer.priorityClassName | default .Values.global.priorityClassName }}
+ priorityClassName: {{ . }}
+ {{- end }}
+ {{- if .Values.repoServer.terminationGracePeriodSeconds }}
+ terminationGracePeriodSeconds: {{ .Values.repoServer.terminationGracePeriodSeconds }}
+ {{- end }}
+ serviceAccountName: {{ include "argo-cd.repoServer.serviceAccountName" . }}
+ automountServiceAccountToken: {{ .Values.repoServer.automountServiceAccountToken }}
+ containers:
+ - name: {{ .Values.repoServer.name }}
+ image: {{ default .Values.global.image.repository .Values.repoServer.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.repoServer.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.repoServer.image.imagePullPolicy }}
+ args:
+ - /usr/local/bin/argocd-repo-server
+ - --port={{ .Values.repoServer.containerPorts.server }}
+ - --metrics-port={{ .Values.repoServer.containerPorts.metrics }}
+ {{- with .Values.repoServer.extraArgs }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ env:
+ {{- with (concat .Values.global.env .Values.repoServer.env) }}
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ {{- if .Values.openshift.enabled }}
+ - name: USER_NAME
+ value: argocd
+ {{- end }}
+ - name: ARGOCD_REPO_SERVER_NAME
+ value: {{ template "argo-cd.repoServer.fullname" . }}
+ - name: ARGOCD_RECONCILIATION_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cm
+ key: timeout.reconciliation
+ optional: true
+ - name: ARGOCD_REPO_SERVER_LOGFORMAT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: reposerver.log.format
+ optional: true
+ - name: ARGOCD_REPO_SERVER_LOGLEVEL
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: reposerver.log.level
+ optional: true
+ - name: ARGOCD_LOG_FORMAT_TIMESTAMP
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: log.format.timestamp
+ optional: true
+ - name: ARGOCD_REPO_SERVER_PARALLELISM_LIMIT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: reposerver.parallelism.limit
+ optional: true
+ - name: ARGOCD_REPO_SERVER_LISTEN_ADDRESS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: reposerver.listen.address
+ optional: true
+ - name: ARGOCD_REPO_SERVER_LISTEN_METRICS_ADDRESS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: reposerver.metrics.listen.address
+ optional: true
+ - name: ARGOCD_REPO_SERVER_DISABLE_TLS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: reposerver.disable.tls
+ optional: true
+ - name: ARGOCD_TLS_MIN_VERSION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: reposerver.tls.minversion
+ optional: true
+ - name: ARGOCD_TLS_MAX_VERSION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: reposerver.tls.maxversion
+ optional: true
+ - name: ARGOCD_TLS_CIPHERS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: reposerver.tls.ciphers
+ optional: true
+ - name: ARGOCD_REPO_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: reposerver.repo.cache.expiration
+ optional: true
+ - name: REDIS_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.server
+ optional: true
+ - name: REDIS_COMPRESSION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.compression
+ optional: true
+ - name: REDISDB
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.db
+ optional: true
+ - name: REDIS_USERNAME
+ valueFrom:
+ secretKeyRef:
+ {{- include "argo-cd.redisUsernameSecretRef" . | nindent 16 }}
+ - name: REDIS_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ {{- include "argo-cd.redisPasswordSecretRef" . | nindent 16 }}
+ - name: REDIS_SENTINEL_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }}
+ key: redis-sentinel-username
+ optional: true
+ - name: REDIS_SENTINEL_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }}
+ key: redis-sentinel-password
+ optional: true
+ - name: ARGOCD_DEFAULT_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: reposerver.default.cache.expiration
+ optional: true
+ - name: ARGOCD_REPO_SERVER_OTLP_ADDRESS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.address
+ optional: true
+ - name: ARGOCD_REPO_SERVER_OTLP_INSECURE
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.insecure
+ optional: true
+ - name: ARGOCD_REPO_SERVER_OTLP_HEADERS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.headers
+ optional: true
+ - name: ARGOCD_REPO_SERVER_OTLP_ATTRS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.attrs
+ optional: true
+ - name: ARGOCD_REPO_SERVER_MAX_COMBINED_DIRECTORY_MANIFESTS_SIZE
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: reposerver.max.combined.directory.manifests.size
+ optional: true
+ - name: ARGOCD_REPO_SERVER_PLUGIN_TAR_EXCLUSIONS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: reposerver.plugin.tar.exclusions
+ optional: true
+ - name: ARGOCD_REPO_SERVER_PLUGIN_USE_MANIFEST_GENERATE_PATHS
+ valueFrom:
+ configMapKeyRef:
+ key: reposerver.plugin.use.manifest.generate.paths
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_REPO_SERVER_ALLOW_OUT_OF_BOUNDS_SYMLINKS
+ valueFrom:
+ configMapKeyRef:
+ key: reposerver.allow.oob.symlinks
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_REPO_SERVER_STREAMED_MANIFEST_MAX_TAR_SIZE
+ valueFrom:
+ configMapKeyRef:
+ key: reposerver.streamed.manifest.max.tar.size
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_REPO_SERVER_STREAMED_MANIFEST_MAX_EXTRACTED_SIZE
+ valueFrom:
+ configMapKeyRef:
+ key: reposerver.streamed.manifest.max.extracted.size
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_REPO_SERVER_HELM_MANIFEST_MAX_EXTRACTED_SIZE
+ valueFrom:
+ configMapKeyRef:
+ key: reposerver.helm.manifest.max.extracted.size
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_REPO_SERVER_DISABLE_HELM_MANIFEST_MAX_EXTRACTED_SIZE
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: reposerver.disable.helm.manifest.max.extracted.size
+ optional: true
+ - name: ARGOCD_GIT_MODULES_ENABLED
+ valueFrom:
+ configMapKeyRef:
+ key: reposerver.enable.git.submodule
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_GIT_LS_REMOTE_PARALLELISM_LIMIT
+ valueFrom:
+ configMapKeyRef:
+ key: reposerver.git.lsremote.parallelism.limit
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_GIT_REQUEST_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ key: reposerver.git.request.timeout
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_REPO_SERVER_OCI_MANIFEST_MAX_EXTRACTED_SIZE
+ valueFrom:
+ configMapKeyRef:
+ key: reposerver.oci.manifest.max.extracted.size
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_REPO_SERVER_DISABLE_OCI_MANIFEST_MAX_EXTRACTED_SIZE
+ valueFrom:
+ configMapKeyRef:
+ key: reposerver.disable.oci.manifest.max.extracted.size
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_REPO_SERVER_OCI_LAYER_MEDIA_TYPES
+ valueFrom:
+ configMapKeyRef:
+ key: reposerver.oci.layer.media.types
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_REVISION_CACHE_LOCK_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ key: reposerver.revision.cache.lock.timeout
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_REPO_SERVER_INCLUDE_HIDDEN_DIRECTORIES
+ valueFrom:
+ configMapKeyRef:
+ key: reposerver.include.hidden.directories
+ name: argocd-cmd-params-cm
+ optional: true
+ {{- if .Values.repoServer.useEphemeralHelmWorkingDir }}
+ - name: HELM_CACHE_HOME
+ value: /helm-working-dir
+ - name: HELM_CONFIG_HOME
+ value: /helm-working-dir
+ - name: HELM_DATA_HOME
+ value: /helm-working-dir
+ {{- end }}
+ {{- with .Values.repoServer.envFrom }}
+ envFrom:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ volumeMounts:
+ {{- if .Values.repoServer.volumeMounts }}
+ {{- toYaml .Values.repoServer.volumeMounts | nindent 8 }}
+ {{- end }}
+ - mountPath: /app/config/ssh
+ name: ssh-known-hosts
+ - mountPath: /app/config/tls
+ name: tls-certs
+ - mountPath: /app/config/gpg/source
+ name: gpg-keys
+ - mountPath: /app/config/gpg/keys
+ name: gpg-keyring
+ - mountPath: /app/config/reposerver/tls
+ name: argocd-repo-server-tls
+ {{- if .Values.repoServer.useEphemeralHelmWorkingDir }}
+ - mountPath: /helm-working-dir
+ name: helm-working-dir
+ {{- end }}
+ - mountPath: /home/argocd/cmp-server/plugins
+ name: plugins
+ - mountPath: /tmp
+ name: tmp
+ ports:
+ - name: repo-server
+ containerPort: {{ .Values.repoServer.containerPorts.server }}
+ protocol: TCP
+ - name: metrics
+ containerPort: {{ .Values.repoServer.containerPorts.metrics }}
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz?full=true
+ port: metrics
+ initialDelaySeconds: {{ .Values.repoServer.livenessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.repoServer.livenessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.repoServer.livenessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.repoServer.livenessProbe.successThreshold }}
+ failureThreshold: {{ .Values.repoServer.livenessProbe.failureThreshold }}
+ readinessProbe:
+ httpGet:
+ path: /healthz
+ port: metrics
+ initialDelaySeconds: {{ .Values.repoServer.readinessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.repoServer.readinessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.repoServer.readinessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.repoServer.readinessProbe.successThreshold }}
+ failureThreshold: {{ .Values.repoServer.readinessProbe.failureThreshold }}
+ resources:
+ {{- toYaml .Values.repoServer.resources | nindent 10 }}
+ {{- with .Values.repoServer.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ {{- with .Values.repoServer.lifecycle }}
+ lifecycle:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ {{- with .Values.repoServer.extraContainers }}
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ initContainers:
+ - command:
+ - /bin/cp
+ - -n
+ - /usr/local/bin/argocd
+ - /var/run/argocd/argocd-cmp-server
+ image: {{ default .Values.global.image.repository .Values.repoServer.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.repoServer.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.repoServer.image.imagePullPolicy }}
+ name: copyutil
+ resources:
+ {{- toYaml (default .Values.repoServer.resources .Values.repoServer.copyutil.resources) | nindent 10 }}
+ {{- with .Values.repoServer.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ volumeMounts:
+ - mountPath: /var/run/argocd
+ name: var-files
+ {{- with .Values.repoServer.initContainers }}
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.repoServer) }}
+ affinity:
+ {{- trim . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.repoServer.nodeSelector | default .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.repoServer.tolerations | default .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.repoServer.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- range $constraint := . }}
+ - {{ toYaml $constraint | nindent 8 | trim }}
+ {{- if not $constraint.labelSelector }}
+ labelSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" $ "name" $.Values.repoServer.name) | nindent 12 }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ volumes:
+ {{- with .Values.repoServer.volumes }}
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+ {{- if .Values.repoServer.useEphemeralHelmWorkingDir }}
+ - name: helm-working-dir
+ {{- if .Values.repoServer.existingVolumes.helmWorkingDir -}}
+ {{ toYaml .Values.repoServer.existingVolumes.helmWorkingDir | nindent 8 }}
+ {{- else }}
+ {{- if .Values.repoServer.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.repoServer.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ - name: plugins
+ {{- if .Values.repoServer.existingVolumes.plugins -}}
+ {{ toYaml .Values.repoServer.existingVolumes.plugins | nindent 8 }}
+ {{- else }}
+ {{- if .Values.repoServer.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.repoServer.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ {{- end }}
+ - name: var-files
+ {{- if .Values.repoServer.existingVolumes.varFiles -}}
+ {{ toYaml .Values.repoServer.existingVolumes.varFiles | nindent 8 }}
+ {{- else }}
+ {{- if .Values.repoServer.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.repoServer.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ {{- end }}
+ - name: tmp
+ {{- if .Values.repoServer.existingVolumes.tmp -}}
+ {{ toYaml .Values.repoServer.existingVolumes.tmp | nindent 8 }}
+ {{- else }}
+ {{- if .Values.repoServer.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.repoServer.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ {{- end }}
+ - name: ssh-known-hosts
+ configMap:
+ name: argocd-ssh-known-hosts-cm
+ - name: tls-certs
+ configMap:
+ name: argocd-tls-certs-cm
+ - name: gpg-keys
+ configMap:
+ name: argocd-gpg-keys-cm
+ - name: gpg-keyring
+ {{- if .Values.repoServer.existingVolumes.gpgKeyring -}}
+ {{ toYaml .Values.repoServer.existingVolumes.gpgKeyring | nindent 8 }}
+ {{- else }}
+ {{- if .Values.repoServer.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.repoServer.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ {{- end }}
+ - name: argocd-repo-server-tls
+ secret:
+ secretName: argocd-repo-server-tls
+ optional: true
+ items:
+ - key: tls.crt
+ path: tls.crt
+ - key: tls.key
+ path: tls.key
+ - key: ca.crt
+ path: ca.crt
+ {{- if .Values.repoServer.hostNetwork }}
+ hostNetwork: {{ .Values.repoServer.hostNetwork }}
+ {{- end }}
+ {{- with .Values.repoServer.dnsConfig }}
+ dnsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ dnsPolicy: {{ .Values.repoServer.dnsPolicy }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/hpa.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/hpa.yaml
new file mode 100644
index 0000000..7615a41
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/hpa.yaml
@@ -0,0 +1,41 @@
+{{- if .Values.repoServer.autoscaling.enabled }}
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+ name: {{ include "argo-cd.repoServer.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }}
+spec:
+ scaleTargetRef:
+ apiVersion: apps/v1
+ kind: Deployment
+ name: {{ include "argo-cd.repoServer.fullname" . }}
+ minReplicas: {{ .Values.repoServer.autoscaling.minReplicas }}
+ maxReplicas: {{ .Values.repoServer.autoscaling.maxReplicas }}
+ metrics:
+ {{- with .Values.repoServer.autoscaling.metrics }}
+ {{- toYaml . | nindent 4 }}
+ {{- else }}
+ {{- with .Values.repoServer.autoscaling.targetMemoryUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: memory
+ target:
+ type: Utilization
+ averageUtilization: {{ . }}
+ {{- end }}
+ {{- with .Values.repoServer.autoscaling.targetCPUUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: cpu
+ target:
+ type: Utilization
+ averageUtilization: {{ . }}
+ {{- end }}
+ {{- end }}
+ {{- with .Values.repoServer.autoscaling.behavior }}
+ behavior:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/metrics.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/metrics.yaml
new file mode 100644
index 0000000..6ede9dd
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/metrics.yaml
@@ -0,0 +1,35 @@
+{{- if .Values.repoServer.metrics.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "argo-cd.repoServer.fullname" . }}-metrics
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" (printf "%s-metrics" .Values.repoServer.name)) | nindent 4 }}
+ {{- with .Values.repoServer.metrics.service.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- if or .Values.repoServer.metrics.service.annotations .Values.global.addPrometheusAnnotations }}
+ annotations:
+ {{- if .Values.global.addPrometheusAnnotations }}
+ prometheus.io/port: {{ .Values.repoServer.metrics.service.servicePort | quote }}
+ prometheus.io/scrape: "true"
+ {{- end }}
+ {{- range $key, $value := .Values.repoServer.metrics.service.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ type: {{ .Values.repoServer.metrics.service.type }}
+ {{- if and .Values.repoServer.metrics.service.clusterIP (eq .Values.repoServer.metrics.service.type "ClusterIP") }}
+ clusterIP: {{ .Values.repoServer.metrics.service.clusterIP }}
+ {{- end }}
+ {{- include "argo-cd.dualStack" . | indent 2 }}
+ ports:
+ - name: {{ .Values.repoServer.metrics.service.portName }}
+ protocol: TCP
+ port: {{ .Values.repoServer.metrics.service.servicePort }}
+ targetPort: metrics
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.repoServer.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/networkpolicy.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/networkpolicy.yaml
new file mode 100644
index 0000000..89bdc8f
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/networkpolicy.yaml
@@ -0,0 +1,38 @@
+{{- if or .Values.repoServer.networkPolicy.create .Values.global.networkPolicy.create }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }}
+ name: {{ template "argo-cd.repoServer.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+spec:
+ ingress:
+ - from:
+ - podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 10 }}
+ - podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 10 }}
+ {{- if .Values.notifications.enabled }}
+ - podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.notifications.name) | nindent 10 }}
+ {{- end }}
+ - podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.applicationSet.name) | nindent 10 }}
+ ports:
+ - port: repo-server
+ protocol: TCP
+ - from:
+ - namespaceSelector: {}
+ ports:
+ - port: metrics
+ podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.repoServer.name) | nindent 6 }}
+ policyTypes:
+ - Ingress
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/pdb.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/pdb.yaml
new file mode 100644
index 0000000..f79af3d
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/pdb.yaml
@@ -0,0 +1,27 @@
+{{- if .Values.repoServer.pdb.enabled }}
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: {{ include "argo-cd.repoServer.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }}
+ {{- with .Values.repoServer.pdb.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.repoServer.pdb.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ {{- with .Values.repoServer.pdb.maxUnavailable }}
+ maxUnavailable: {{ . }}
+ {{- else }}
+ minAvailable: {{ .Values.repoServer.pdb.minAvailable | default 0 }}
+ {{- end }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.repoServer.name) | nindent 6 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/role.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/role.yaml
new file mode 100644
index 0000000..596874d
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/role.yaml
@@ -0,0 +1,13 @@
+{{- if .Values.repoServer.serviceAccount.create }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: {{ template "argo-cd.repoServer.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }}
+rules:
+{{- if .Values.repoServer.rbac }}
+{{toYaml .Values.repoServer.rbac }}
+{{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/rolebinding.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/rolebinding.yaml
new file mode 100644
index 0000000..2bc88b6
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/rolebinding.yaml
@@ -0,0 +1,17 @@
+{{- if .Values.repoServer.serviceAccount.create }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: {{ include "argo-cd.repoServer.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: {{ include "argo-cd.repoServer.fullname" . }}
+subjects:
+- kind: ServiceAccount
+ name: {{ include "argo-cd.repoServer.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/service.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/service.yaml
new file mode 100644
index 0000000..7e20c86
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/service.yaml
@@ -0,0 +1,28 @@
+apiVersion: v1
+kind: Service
+metadata:
+{{- if .Values.repoServer.service.annotations }}
+ annotations:
+ {{- range $key, $value := .Values.repoServer.service.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+{{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }}
+{{- with .Values.repoServer.service.labels }}
+{{- toYaml . | nindent 4 }}
+{{- end }}
+ name: {{ template "argo-cd.repoServer.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+spec:
+ {{- include "argo-cd.dualStack" . | indent 2 }}
+ ports:
+ - name: {{ .Values.repoServer.service.portName }}
+ protocol: TCP
+ port: {{ .Values.repoServer.service.port }}
+ targetPort: repo-server
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.repoServer.name) | nindent 4 }}
+ {{- if .Values.repoServer.service.trafficDistribution }}
+ trafficDistribution: {{ .Values.repoServer.service.trafficDistribution }}
+ {{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/serviceaccount.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/serviceaccount.yaml
new file mode 100644
index 0000000..9b5777f
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/serviceaccount.yaml
@@ -0,0 +1,19 @@
+{{- if .Values.repoServer.serviceAccount.create }}
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: {{ .Values.repoServer.serviceAccount.automountServiceAccountToken }}
+metadata:
+ name: {{ include "argo-cd.repoServer.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ {{- with .Values.repoServer.serviceAccount.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }}
+ {{- with .Values.repoServer.serviceAccount.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/servicemonitor.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/servicemonitor.yaml
new file mode 100644
index 0000000..3d7cc49
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-repo-server/servicemonitor.yaml
@@ -0,0 +1,51 @@
+{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.repoServer.metrics.enabled .Values.repoServer.metrics.serviceMonitor.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "argo-cd.repoServer.fullname" . }}
+ namespace: {{ default (include "argo-cd.namespace" .) .Values.repoServer.metrics.serviceMonitor.namespace | quote }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }}
+ {{- with .Values.repoServer.metrics.serviceMonitor.selector }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.repoServer.metrics.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.repoServer.metrics.serviceMonitor.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ endpoints:
+ - port: {{ .Values.repoServer.metrics.service.portName }}
+ {{- with .Values.repoServer.metrics.serviceMonitor.interval }}
+ interval: {{ . }}
+ {{- end }}
+ {{- with .Values.repoServer.metrics.serviceMonitor.scrapeTimeout }}
+ scrapeTimeout: {{ . }}
+ {{- end }}
+ path: /metrics
+ {{- with .Values.repoServer.metrics.serviceMonitor.relabelings }}
+ relabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.repoServer.metrics.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ honorLabels: {{ .Values.repoServer.metrics.serviceMonitor.honorLabels }}
+ {{- with .Values.repoServer.metrics.serviceMonitor.scheme }}
+ scheme: {{ . }}
+ {{- end }}
+ {{- with .Values.repoServer.metrics.serviceMonitor.tlsConfig }}
+ tlsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - {{ include "argo-cd.namespace" . }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.repoServer.name "name" (printf "%s-metrics" .Values.repoServer.name)) | nindent 6 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/aws/ingress.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/aws/ingress.yaml
new file mode 100644
index 0000000..46d24d3
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/aws/ingress.yaml
@@ -0,0 +1,71 @@
+{{- if and .Values.server.ingress.enabled (eq .Values.server.ingress.controller "aws") }}
+{{- $insecure := index .Values.configs.params "server.insecure" | toString -}}
+{{- $servicePort := eq $insecure "true" | ternary .Values.server.service.servicePortHttp .Values.server.service.servicePortHttps -}}
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: {{ include "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+ {{- with .Values.server.ingress.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ annotations:
+ alb.ingress.kubernetes.io/conditions.{{ include "argo-cd.server.fullname" . }}-grpc: |
+ [{"field":"http-header","httpHeaderConfig":{"httpHeaderName": "Content-Type", "values":["application/grpc"]}}]
+ {{- range $key, $value := .Values.server.ingress.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+spec:
+ {{- with .Values.server.ingress.ingressClassName }}
+ ingressClassName: {{ . }}
+ {{- end }}
+ rules:
+ - host: {{ .Values.server.ingress.hostname | default .Values.global.domain }}
+ http:
+ paths:
+ {{- with .Values.server.ingress.extraPaths }}
+ {{- tpl (toYaml .) $ | nindent 10 }}
+ {{- end }}
+ - path: {{ .Values.server.ingress.path }}
+ pathType: {{ $.Values.server.ingressGrpc.pathType }}
+ backend:
+ service:
+ name: {{ include "argo-cd.server.fullname" $ }}-grpc
+ port:
+ number: {{ $servicePort }}
+ - path: {{ .Values.server.ingress.path }}
+ pathType: {{ $.Values.server.ingress.pathType }}
+ backend:
+ service:
+ name: {{ include "argo-cd.server.fullname" . }}
+ port:
+ number: {{ $servicePort }}
+ {{- range .Values.server.ingress.extraHosts }}
+ - host: {{ .name | quote }}
+ http:
+ paths:
+ - path: {{ default $.Values.server.ingress.path .path }}
+ pathType: {{ default $.Values.server.ingress.pathType .pathType }}
+ backend:
+ service:
+ name: {{ include "argo-cd.server.fullname" $ }}
+ port:
+ number: {{ $servicePort }}
+ {{- end }}
+ {{- with .Values.server.ingress.extraRules }}
+ {{- tpl (toYaml .) $ | nindent 4 }}
+ {{- end }}
+ {{- if or .Values.server.ingress.tls .Values.server.ingress.extraTls }}
+ tls:
+ {{- if .Values.server.ingress.tls }}
+ - hosts:
+ - {{ .Values.server.ingress.hostname | default .Values.global.domain }}
+ secretName: argocd-server-tls
+ {{- end }}
+ {{- with .Values.server.ingress.extraTls }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/aws/service.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/aws/service.yaml
new file mode 100644
index 0000000..0e9de75
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/aws/service.yaml
@@ -0,0 +1,26 @@
+{{- if and .Values.server.ingress.enabled (eq .Values.server.ingress.controller "aws") }}
+apiVersion: v1
+kind: Service
+metadata:
+ annotations:
+ alb.ingress.kubernetes.io/backend-protocol-version: {{ .Values.server.ingress.aws.backendProtocolVersion }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" (print .Values.server.name "-gprc") "name" (print .Values.server.name "-grpc")) | nindent 4 }}
+ name: {{ template "argo-cd.server.fullname" . }}-grpc
+ namespace: {{ include "argo-cd.namespace" . }}
+spec:
+ {{- include "argo-cd.dualStack" . | indent 2 }}
+ ports:
+ - name: {{ .Values.server.service.servicePortHttpName }}
+ protocol: TCP
+ port: {{ .Values.server.service.servicePortHttp }}
+ targetPort: {{ .Values.server.containerPorts.server }}
+ - name: {{ .Values.server.service.servicePortHttpsName }}
+ protocol: TCP
+ port: {{ .Values.server.service.servicePortHttps }}
+ targetPort: {{ .Values.server.containerPorts.server }}
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 4 }}
+ sessionAffinity: None
+ type: {{ .Values.server.ingress.aws.serviceType }}
+{{- end -}}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/backendtlspolicy.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/backendtlspolicy.yaml
new file mode 100644
index 0000000..7adc7f0
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/backendtlspolicy.yaml
@@ -0,0 +1,26 @@
+{{- if .Values.server.backendTLSPolicy.enabled -}}
+{{- $fullName := include "argo-cd.server.fullname" . -}}
+apiVersion: gateway.networking.k8s.io/v1alpha3
+kind: BackendTLSPolicy
+metadata:
+ name: {{ $fullName }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+ {{- with .Values.server.backendTLSPolicy.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.server.backendTLSPolicy.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ targetRefs:
+ {{- with .Values.server.backendTLSPolicy.targetRefs }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.server.backendTLSPolicy.validation }}
+ validation:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/certificate.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/certificate.yaml
new file mode 100644
index 0000000..a986213
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/certificate.yaml
@@ -0,0 +1,50 @@
+{{- if .Values.server.certificate.enabled -}}
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.certificateAnnotations) .Values.server.certificate.annotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ name: {{ include "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+spec:
+ {{- with .Values.server.certificate.secretTemplateAnnotations }}
+ secretTemplate:
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ secretName: argocd-server-tls
+ commonName: {{ .Values.server.certificate.domain | default .Values.global.domain }}
+ dnsNames:
+ - {{ .Values.server.certificate.domain | default .Values.global.domain }}
+ {{- range .Values.server.certificate.additionalHosts }}
+ - {{ . | quote }}
+ {{- end }}
+ {{- with .Values.server.certificate.duration }}
+ duration: {{ . | quote }}
+ {{- end }}
+ {{- with .Values.server.certificate.renewBefore }}
+ renewBefore: {{ . | quote }}
+ {{- end }}
+ issuerRef:
+ {{- with .Values.server.certificate.issuer.group }}
+ group: {{ . | quote }}
+ {{- end }}
+ kind: {{ .Values.server.certificate.issuer.kind | quote }}
+ name: {{ .Values.server.certificate.issuer.name | quote }}
+ {{- with .Values.server.certificate.privateKey }}
+ privateKey:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.server.certificate.usages }}
+ usages:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/clusterrole.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/clusterrole.yaml
new file mode 100644
index 0000000..1bc9aed
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/clusterrole.yaml
@@ -0,0 +1,78 @@
+{{- if .Values.createClusterRoles }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: {{ include "argo-cd.server.fullname" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+rules:
+ {{- if .Values.server.clusterRoleRules.enabled }}
+ {{- toYaml .Values.server.clusterRoleRules.rules | nindent 2 }}
+ {{- else }}
+ - apiGroups:
+ - '*'
+ resources:
+ - '*'
+ verbs:
+ - delete # supports deletion a live object in UI
+ - get # supports viewing live object manifest in UI
+ - patch # supports `argocd app patch`
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - list # supports listing events in UI
+ - create
+ - apiGroups:
+ - ""
+ resources:
+ - pods
+ - pods/log
+ verbs:
+ - get # supports viewing pod logs from UI
+ {{- if eq (toString (index .Values.configs.cm "exec.enabled")) "true" }}
+ - apiGroups:
+ - ""
+ resources:
+ - pods/exec
+ verbs:
+ - create
+ {{- end }}
+ - apiGroups:
+ - argoproj.io
+ resources:
+ - applications
+ - applicationsets
+ verbs:
+ - get
+ - list
+ - update
+ - watch
+ {{- if (index .Values.configs.params "application.namespaces") }}
+ - apiGroups:
+ - "argoproj.io"
+ resources:
+ - "applications"
+ verbs:
+ - create
+ - delete
+ - update
+ - patch
+ {{- end }}
+ - apiGroups:
+ - batch
+ resources:
+ {{/* supports triggering jobs from UI */}}
+ - jobs
+ verbs:
+ - create
+ - apiGroups:
+ - argoproj.io
+ resources:
+ - workflows
+ verbs:
+ {{/* supports triggering workflows from UI */}}
+ - create
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/clusterrolebinding.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/clusterrolebinding.yaml
new file mode 100644
index 0000000..ce4a4d7
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/clusterrolebinding.yaml
@@ -0,0 +1,16 @@
+{{- if .Values.createClusterRoles }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: {{ include "argo-cd.server.fullname" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: {{ include "argo-cd.server.fullname" . }}
+subjects:
+- kind: ServiceAccount
+ name: {{ include "argo-cd.server.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/deployment.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/deployment.yaml
new file mode 100644
index 0000000..0edd412
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/deployment.yaml
@@ -0,0 +1,575 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.server.deploymentAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ name: {{ template "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentLabels) .Values.server.deploymentLabels) }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ {{- with include "argo-cd.strategy" (mergeOverwrite (deepCopy .Values.global.deploymentStrategy) .Values.server.deploymentStrategy) }}
+ strategy:
+ {{- trim . | nindent 4 }}
+ {{- end }}
+ {{- if not .Values.server.autoscaling.enabled }}
+ replicas: {{ .Values.server.replicas }}
+ {{- end }}
+ revisionHistoryLimit: {{ .Values.global.revisionHistoryLimit }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 6 }}
+ template:
+ metadata:
+ annotations:
+ checksum/cmd-params: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmd-params-cm.yaml") . | sha256sum }}
+ {{- if .Values.configs.cm.create }}
+ checksum/cm: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cm.yaml") . | sha256sum }}
+ {{- end }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.server.podAnnotations) }}
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 8 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.server.podLabels) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ spec:
+ {{- with .Values.server.runtimeClassName | default .Values.global.runtimeClassName }}
+ runtimeClassName: {{ . }}
+ {{- end }}
+ {{- with .Values.server.imagePullSecrets | default .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.hostAliases }}
+ hostAliases:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.securityContext }}
+ securityContext:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.server.priorityClassName | default .Values.global.priorityClassName }}
+ priorityClassName: {{ . }}
+ {{- end }}
+ {{- if .Values.server.terminationGracePeriodSeconds }}
+ terminationGracePeriodSeconds: {{ .Values.server.terminationGracePeriodSeconds }}
+ {{- end }}
+ serviceAccountName: {{ include "argo-cd.server.serviceAccountName" . }}
+ automountServiceAccountToken: {{ .Values.server.automountServiceAccountToken }}
+ containers:
+ - name: {{ .Values.server.name }}
+ image: {{ default .Values.global.image.repository .Values.server.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.server.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.server.image.imagePullPolicy }}
+ args:
+ - /usr/local/bin/argocd-server
+ - --port={{ .Values.server.containerPorts.server }}
+ - --metrics-port={{ .Values.server.containerPorts.metrics }}
+ {{- with .Values.server.extraArgs }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ env:
+ {{- with (concat .Values.global.env .Values.server.env) }}
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ - name: ARGOCD_SERVER_NAME
+ value: {{ template "argo-cd.server.fullname" . }}
+ - name: ARGOCD_SERVER_INSECURE
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.insecure
+ optional: true
+ - name: ARGOCD_SERVER_BASEHREF
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.basehref
+ optional: true
+ - name: ARGOCD_SERVER_ROOTPATH
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.rootpath
+ optional: true
+ - name: ARGOCD_SERVER_LOGFORMAT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.log.format
+ optional: true
+ - name: ARGOCD_SERVER_LOG_LEVEL
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.log.level
+ optional: true
+ - name: ARGOCD_SERVER_REPO_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: repo.server
+ optional: true
+ - name: ARGOCD_SERVER_DEX_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.dex.server
+ optional: true
+ - name: ARGOCD_SERVER_DISABLE_AUTH
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.disable.auth
+ optional: true
+ - name: ARGOCD_SERVER_ENABLE_GZIP
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.enable.gzip
+ optional: true
+ - name: ARGOCD_SERVER_REPO_SERVER_TIMEOUT_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.repo.server.timeout.seconds
+ optional: true
+ - name: ARGOCD_SERVER_X_FRAME_OPTIONS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.x.frame.options
+ optional: true
+ - name: ARGOCD_SERVER_CONTENT_SECURITY_POLICY
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.content.security.policy
+ optional: true
+ - name: ARGOCD_SERVER_REPO_SERVER_PLAINTEXT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.repo.server.plaintext
+ optional: true
+ - name: ARGOCD_SERVER_REPO_SERVER_STRICT_TLS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.repo.server.strict.tls
+ optional: true
+ - name: ARGOCD_SERVER_DEX_SERVER_PLAINTEXT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.dex.server.plaintext
+ optional: true
+ - name: ARGOCD_SERVER_DEX_SERVER_STRICT_TLS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.dex.server.strict.tls
+ optional: true
+ - name: ARGOCD_TLS_MIN_VERSION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.tls.minversion
+ optional: true
+ - name: ARGOCD_TLS_MAX_VERSION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.tls.maxversion
+ optional: true
+ - name: ARGOCD_TLS_CIPHERS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.tls.ciphers
+ optional: true
+ - name: ARGOCD_SERVER_CONNECTION_STATUS_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.connection.status.cache.expiration
+ optional: true
+ - name: ARGOCD_SERVER_OIDC_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.oidc.cache.expiration
+ optional: true
+ - name: ARGOCD_SERVER_STATIC_ASSETS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.staticassets
+ optional: true
+ - name: ARGOCD_APP_STATE_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.app.state.cache.expiration
+ optional: true
+ - name: REDIS_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.server
+ optional: true
+ - name: REDIS_COMPRESSION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.compression
+ optional: true
+ - name: REDISDB
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.db
+ optional: true
+ - name: REDIS_USERNAME
+ valueFrom:
+ secretKeyRef:
+ {{- include "argo-cd.redisUsernameSecretRef" . | nindent 16 }}
+ - name: REDIS_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ {{- include "argo-cd.redisPasswordSecretRef" . | nindent 16 }}
+ - name: REDIS_SENTINEL_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }}
+ key: redis-sentinel-username
+ optional: true
+ - name: REDIS_SENTINEL_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }}
+ key: redis-sentinel-password
+ optional: true
+ - name: ARGOCD_DEFAULT_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.default.cache.expiration
+ optional: true
+ - name: ARGOCD_MAX_COOKIE_NUMBER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.http.cookie.maxnumber
+ optional: true
+ - name: ARGOCD_SERVER_LISTEN_ADDRESS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.listen.address
+ optional: true
+ - name: ARGOCD_SERVER_METRICS_LISTEN_ADDRESS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.metrics.listen.address
+ optional: true
+ - name: ARGOCD_SERVER_OTLP_ADDRESS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.address
+ optional: true
+ - name: ARGOCD_SERVER_OTLP_INSECURE
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.insecure
+ optional: true
+ - name: ARGOCD_SERVER_OTLP_HEADERS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.headers
+ optional: true
+ - name: ARGOCD_SERVER_OTLP_ATTRS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.attrs
+ optional: true
+ - name: ARGOCD_APPLICATION_NAMESPACES
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: application.namespaces
+ optional: true
+ - name: ARGOCD_SERVER_ENABLE_PROXY_EXTENSION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.enable.proxy.extension
+ optional: true
+ - name: ARGOCD_K8SCLIENT_RETRY_MAX
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.k8sclient.retry.max
+ optional: true
+ - name: ARGOCD_K8SCLIENT_RETRY_BASE_BACKOFF
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.k8sclient.retry.base.backoff
+ optional: true
+ - name: ARGOCD_API_CONTENT_TYPES
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.api.content.types
+ optional: true
+ - name: ARGOCD_SERVER_WEBHOOK_PARALLELISM_LIMIT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.webhook.parallelism.limit
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_NEW_GIT_FILE_GLOBBING
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.enable.new.git.file.globbing
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_SCM_ROOT_CA_PATH
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.scm.root.ca.path
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_ALLOWED_SCM_PROVIDERS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: applicationsetcontroller.allowed.scm.providers
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_SCM_PROVIDERS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: applicationsetcontroller.enable.scm.providers
+ optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_GITHUB_API_METRICS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: applicationsetcontroller.enable.github.api.metrics
+ optional: true
+ - name: ARGOCD_HYDRATOR_ENABLED
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: hydrator.enabled
+ optional: true
+ - name: ARGOCD_SYNC_WITH_REPLACE_ALLOWED
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: server.sync.replace.allowed
+ optional: true
+ {{- with .Values.server.envFrom }}
+ envFrom:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ volumeMounts:
+ {{- with .Values.server.volumeMounts }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ - mountPath: /app/config/ssh
+ name: ssh-known-hosts
+ - mountPath: /app/config/tls
+ name: tls-certs
+ - mountPath: /app/config/server/tls
+ name: argocd-repo-server-tls
+ - mountPath: /app/config/dex/tls
+ name: argocd-dex-server-tls
+ - mountPath: /home/argocd
+ name: plugins-home
+ - mountPath: /shared/app/custom
+ name: styles
+ - mountPath: /tmp
+ name: tmp
+ - name: argocd-cmd-params-cm
+ mountPath: /home/argocd/params
+ {{- if .Values.server.extensions.enabled }}
+ - mountPath: /tmp/extensions
+ name: extensions
+ {{- end }}
+ ports:
+ - name: server
+ containerPort: {{ .Values.server.containerPorts.server }}
+ protocol: TCP
+ - name: metrics
+ containerPort: {{ .Values.server.containerPorts.metrics }}
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz?full=true
+ port: server
+ initialDelaySeconds: {{ .Values.server.livenessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.server.livenessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.server.livenessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.server.livenessProbe.successThreshold }}
+ failureThreshold: {{ .Values.server.livenessProbe.failureThreshold }}
+ readinessProbe:
+ httpGet:
+ path: /healthz
+ port: server
+ initialDelaySeconds: {{ .Values.server.readinessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.server.readinessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.server.readinessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.server.readinessProbe.successThreshold }}
+ failureThreshold: {{ .Values.server.readinessProbe.failureThreshold }}
+ resources:
+ {{- toYaml .Values.server.resources | nindent 10 }}
+ {{- with .Values.server.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ {{- with .Values.server.lifecycle }}
+ lifecycle:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ {{- with .Values.server.extraContainers }}
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- if or .Values.server.initContainers (and .Values.server.extensions.enabled .Values.server.extensions.extensionList) }}
+ initContainers:
+ {{- with .Values.server.initContainers }}
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- if .Values.server.extensions.enabled }}
+ {{- range .Values.server.extensions.extensionList }}
+ - name: {{ .name }}
+ image: {{ $.Values.server.extensions.image.repository }}:{{ $.Values.server.extensions.image.tag }}
+ imagePullPolicy: {{ default $.Values.global.image.imagePullPolicy $.Values.server.extensions.image.imagePullPolicy }}
+ resources:
+ {{- toYaml $.Values.server.extensions.resources | nindent 10 }}
+ {{- with $.Values.server.extensions.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ volumeMounts:
+ - name: extensions
+ mountPath: /tmp/extensions/
+ - name: tmp
+ mountPath: /tmp
+ env:
+ {{- toYaml .env | nindent 10 }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.server) }}
+ affinity:
+ {{- trim . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.server.nodeSelector | default .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.server.tolerations | default .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.server.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- range $constraint := . }}
+ - {{ toYaml $constraint | nindent 8 | trim }}
+ {{- if not $constraint.labelSelector }}
+ labelSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" $ "name" $.Values.server.name) | nindent 12 }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ volumes:
+ {{- with .Values.server.volumes }}
+ {{- toYaml . | nindent 6}}
+ {{- end }}
+ {{- if .Values.server.extensions.enabled }}
+ - name: extensions
+ {{- if .Values.server.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.server.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ {{- end }}
+ - name: plugins-home
+ {{- if .Values.server.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.server.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ - name: tmp
+ {{- if .Values.server.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.server.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ - name: ssh-known-hosts
+ configMap:
+ name: argocd-ssh-known-hosts-cm
+ - name: tls-certs
+ configMap:
+ name: argocd-tls-certs-cm
+ - name: styles
+ configMap:
+ name: argocd-styles-cm
+ optional: true
+ - name: argocd-repo-server-tls
+ secret:
+ secretName: argocd-repo-server-tls
+ optional: true
+ items:
+ - key: tls.crt
+ path: tls.crt
+ - key: tls.key
+ path: tls.key
+ - key: ca.crt
+ path: ca.crt
+ - name: argocd-dex-server-tls
+ secret:
+ secretName: argocd-dex-server-tls
+ optional: true
+ items:
+ - key: tls.crt
+ path: tls.crt
+ - key: ca.crt
+ path: ca.crt
+ - name: argocd-cmd-params-cm
+ configMap:
+ optional: true
+ name: argocd-cmd-params-cm
+ items:
+ - key: server.profile.enabled
+ path: profiler.enabled
+ {{- if .Values.server.hostNetwork }}
+ hostNetwork: {{ .Values.server.hostNetwork }}
+ {{- end }}
+ {{- with .Values.server.dnsConfig }}
+ dnsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ dnsPolicy: {{ .Values.server.dnsPolicy }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/gke/backendconfig.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/gke/backendconfig.yaml
new file mode 100644
index 0000000..515e6d7
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/gke/backendconfig.yaml
@@ -0,0 +1,13 @@
+{{- if and .Values.server.ingress.enabled (eq .Values.server.ingress.controller "gke") .Values.server.ingress.gke.backendConfig }}
+apiVersion: cloud.google.com/v1
+kind: BackendConfig
+metadata:
+ name: {{ include "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+{{- with .Values.server.ingress.gke.backendConfig }}
+spec:
+ {{- toYaml . | nindent 2 }}
+{{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/gke/frontendconfig.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/gke/frontendconfig.yaml
new file mode 100644
index 0000000..ae460a3
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/gke/frontendconfig.yaml
@@ -0,0 +1,13 @@
+{{- if and .Values.server.ingress.enabled (eq .Values.server.ingress.controller "gke") .Values.server.ingress.gke.frontendConfig }}
+apiVersion: networking.gke.io/v1beta1
+kind: FrontendConfig
+metadata:
+ name: {{ include "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+{{- with .Values.server.ingress.gke.frontendConfig }}
+spec:
+ {{- toYaml . | nindent 2 }}
+{{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/gke/ingress.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/gke/ingress.yaml
new file mode 100644
index 0000000..235c8a5
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/gke/ingress.yaml
@@ -0,0 +1,68 @@
+{{- if and .Values.server.ingress.enabled (eq .Values.server.ingress.controller "gke") }}
+{{- $insecure := index .Values.configs.params "server.insecure" | toString -}}
+{{- $servicePort := eq $insecure "true" | ternary .Values.server.service.servicePortHttp .Values.server.service.servicePortHttps -}}
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: {{ include "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+ {{- with .Values.server.ingress.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ annotations:
+ {{- with .Values.server.ingress.ingressClassName }}
+ kubernetes.io/ingress.class: {{ . }}
+ {{- end }}
+ {{- if .Values.server.ingress.gke.managedCertificate.create }}
+ networking.gke.io/managed-certificates: {{ include "argo-cd.server.fullname" . }}
+ {{- end }}
+ {{- if .Values.server.ingress.gke.frontendConfig }}
+ networking.gke.io/v1beta1.FrontendConfig: {{ include "argo-cd.server.fullname" . }}
+ {{- end }}
+ {{- range $key, $value := .Values.server.ingress.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+spec:
+ rules:
+ - host: {{ .Values.server.ingress.hostname | default .Values.global.domain }}
+ http:
+ paths:
+ {{- with .Values.server.ingress.extraPaths }}
+ {{- tpl (toYaml .) $ | nindent 10 }}
+ {{- end }}
+ - path: {{ .Values.server.ingress.path }}
+ pathType: {{ .Values.server.ingress.pathType }}
+ backend:
+ service:
+ name: {{ include "argo-cd.server.fullname" . }}
+ port:
+ number: {{ $servicePort }}
+ {{- range .Values.server.ingress.extraHosts }}
+ - host: {{ .name | quote }}
+ http:
+ paths:
+ - path: {{ default $.Values.server.ingress.path .path }}
+ pathType: {{ default $.Values.server.ingress.pathType .pathType }}
+ backend:
+ service:
+ name: {{ include "argo-cd.server.fullname" $ }}
+ port:
+ number: {{ $servicePort }}
+ {{- end }}
+ {{- with .Values.server.ingress.extraRules }}
+ {{- tpl (toYaml .) $ | nindent 4 }}
+ {{- end }}
+ {{- if or .Values.server.ingress.tls .Values.server.ingress.extraTls }}
+ tls:
+ {{- if .Values.server.ingress.tls }}
+ - hosts:
+ - {{ .Values.server.ingress.hostname | default .Values.global.domain }}
+ secretName: argocd-server-tls
+ {{- end }}
+ {{- with .Values.server.ingress.extraTls }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/gke/managedcertificate.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/gke/managedcertificate.yaml
new file mode 100644
index 0000000..2dd6f5e
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/gke/managedcertificate.yaml
@@ -0,0 +1,15 @@
+{{- if and .Values.server.ingress.enabled (eq .Values.server.ingress.controller "gke") .Values.server.ingress.gke.managedCertificate.create }}
+apiVersion: networking.gke.io/v1
+kind: ManagedCertificate
+metadata:
+ name: {{ include "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+spec:
+ domains:
+ - {{ .Values.server.ingress.hostname | default .Values.global.domain }}
+ {{- with .Values.server.ingress.gke.managedCertificate.extraDomains }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/grpcroute.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/grpcroute.yaml
new file mode 100644
index 0000000..a88537f
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/grpcroute.yaml
@@ -0,0 +1,43 @@
+{{- if .Values.server.grpcroute.enabled -}}
+{{- $fullName := include "argo-cd.server.fullname" . -}}
+{{- $insecure := index .Values.configs.params "server.insecure" | toString -}}
+{{- $servicePort := eq $insecure "true" | ternary .Values.server.service.servicePortHttp .Values.server.service.servicePortHttps -}}
+apiVersion: gateway.networking.k8s.io/v1
+kind: GRPCRoute
+metadata:
+ name: {{ $fullName }}-grpc
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+ {{- with .Values.server.grpcroute.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.server.grpcroute.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ parentRefs:
+ {{- with .Values.server.grpcroute.parentRefs }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.server.grpcroute.hostnames }}
+ hostnames:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ rules:
+ {{- range .Values.server.grpcroute.rules }}
+ {{- with .matches }}
+ - matches:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .filters }}
+ filters:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ backendRefs:
+ - name: {{ $fullName }}
+ port: {{ $servicePort }}
+ weight: 1
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/hpa.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/hpa.yaml
new file mode 100644
index 0000000..51fe559
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/hpa.yaml
@@ -0,0 +1,41 @@
+{{- if .Values.server.autoscaling.enabled }}
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+ name: {{ include "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+spec:
+ scaleTargetRef:
+ apiVersion: apps/v1
+ kind: Deployment
+ name: {{ include "argo-cd.server.fullname" . }}
+ minReplicas: {{ .Values.server.autoscaling.minReplicas }}
+ maxReplicas: {{ .Values.server.autoscaling.maxReplicas }}
+ metrics:
+ {{- with .Values.server.autoscaling.metrics }}
+ {{- toYaml . | nindent 4 }}
+ {{- else }}
+ {{- with .Values.server.autoscaling.targetMemoryUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: memory
+ target:
+ type: Utilization
+ averageUtilization: {{ . }}
+ {{- end }}
+ {{- with .Values.server.autoscaling.targetCPUUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: cpu
+ target:
+ type: Utilization
+ averageUtilization: {{ . }}
+ {{- end }}
+ {{- end }}
+ {{- with .Values.server.autoscaling.behavior }}
+ behavior:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/httproute.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/httproute.yaml
new file mode 100644
index 0000000..ca30f91
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/httproute.yaml
@@ -0,0 +1,43 @@
+{{- if .Values.server.httproute.enabled -}}
+{{- $fullName := include "argo-cd.server.fullname" . -}}
+{{- $insecure := index .Values.configs.params "server.insecure" | toString -}}
+{{- $servicePort := eq $insecure "true" | ternary .Values.server.service.servicePortHttp .Values.server.service.servicePortHttps -}}
+apiVersion: gateway.networking.k8s.io/v1
+kind: HTTPRoute
+metadata:
+ name: {{ $fullName }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+ {{- with .Values.server.httproute.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.server.httproute.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ parentRefs:
+ {{- with .Values.server.httproute.parentRefs }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.server.httproute.hostnames }}
+ hostnames:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ rules:
+ {{- range .Values.server.httproute.rules }}
+ {{- with .matches }}
+ - matches:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .filters }}
+ filters:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ backendRefs:
+ - name: {{ $fullName }}
+ port: {{ $servicePort }}
+ weight: 1
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/ingress-grpc.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/ingress-grpc.yaml
new file mode 100644
index 0000000..3ad5a51
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/ingress-grpc.yaml
@@ -0,0 +1,63 @@
+{{- if .Values.server.ingressGrpc.enabled -}}
+{{- $hostname := printf "grpc.%s" (.Values.server.ingress.hostname | default .Values.global.domain) -}}
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: {{ include "argo-cd.server.fullname" . }}-grpc
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+ {{- with .Values.server.ingressGrpc.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.server.ingressGrpc.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ {{- with .Values.server.ingressGrpc.ingressClassName }}
+ ingressClassName: {{ . }}
+ {{- end }}
+ rules:
+ - host: {{ .Values.server.ingressGrpc.hostname | default $hostname }}
+ http:
+ paths:
+ {{- with .Values.server.ingressGrpc.extraPaths }}
+ {{- tpl (toYaml .) $ | nindent 10 }}
+ {{- end }}
+ - path: {{ .Values.server.ingressGrpc.path }}
+ pathType: {{ .Values.server.ingressGrpc.pathType }}
+ backend:
+ service:
+ name: {{ include "argo-cd.server.fullname" . }}
+ port:
+ number: {{ .Values.server.service.servicePortHttps }}
+ {{- range .Values.server.ingressGrpc.extraHosts }}
+ - host: {{ .name | quote }}
+ http:
+ paths:
+ - path: {{ default $.Values.server.ingressGrpc.path .path }}
+ pathType: {{ default $.Values.server.ingressGrpc.pathType .pathType }}
+ backend:
+ service:
+ name: {{ include "argo-cd.server.fullname" $ }}
+ port:
+ number: {{ $.Values.server.service.servicePortHttps }}
+ {{- end }}
+ {{- with .Values.server.ingressGrpc.extraRules }}
+ {{- tpl (toYaml .) $ | nindent 4 }}
+ {{- end }}
+ {{- if or .Values.server.ingressGrpc.tls .Values.server.ingressGrpc.extraTls }}
+ tls:
+ {{- if .Values.server.ingressGrpc.tls }}
+ - hosts:
+ - {{ .Values.server.ingressGrpc.hostname | default $hostname }}
+ secretName: argocd-server-grpc-tls
+ {{- end }}
+ {{- with .Values.server.ingressGrpc.extraTls }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/ingress.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/ingress.yaml
new file mode 100644
index 0000000..8724baa
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/ingress.yaml
@@ -0,0 +1,69 @@
+{{- if and .Values.server.ingress.enabled (eq .Values.server.ingress.controller "generic") }}
+{{- $insecure := index .Values.configs.params "server.insecure" | toString -}}
+{{- $servicePort := eq $insecure "true" | ternary .Values.server.service.servicePortHttp .Values.server.service.servicePortHttps -}}
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: {{ include "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+ {{- with .Values.server.ingress.labels }}
+ {{- tpl (toYaml .) $ | nindent 4 }}
+ {{- end }}
+ {{- with .Values.server.ingress.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ tpl (toString $value) $ | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ {{- with .Values.server.ingress.ingressClassName }}
+ ingressClassName: {{ tpl . $ }}
+ {{- end }}
+ rules:
+ - host: {{ tpl (.Values.server.ingress.hostname) $ | default .Values.global.domain }}
+ http:
+ paths:
+ {{- with .Values.server.ingress.extraPaths }}
+ {{- tpl (toYaml .) $ | nindent 10 }}
+ {{- end }}
+ - path: {{ .Values.server.ingress.path }}
+ pathType: {{ $.Values.server.ingress.pathType }}
+ backend:
+ service:
+ name: {{ include "argo-cd.server.fullname" . }}
+ port:
+ number: {{ $servicePort }}
+ {{- range .Values.server.ingress.extraHosts }}
+ - host: {{ tpl .name $ | quote }}
+ http:
+ paths:
+ - path: {{ default $.Values.server.ingress.path .path }}
+ pathType: {{ default $.Values.server.ingress.pathType .pathType }}
+ backend:
+ service:
+ name: {{ include "argo-cd.server.fullname" $ }}
+ port:
+ number: {{ $servicePort }}
+ {{- end }}
+ {{- with .Values.server.ingress.extraRules }}
+ {{- tpl (toYaml .) $ | nindent 4 }}
+ {{- end }}
+ {{- if or .Values.server.ingress.tls .Values.server.ingress.extraTls }}
+ tls:
+ {{- if .Values.server.ingress.tls }}
+ - hosts:
+ - {{ tpl (.Values.server.ingress.hostname) $ | default .Values.global.domain }}
+ {{- range .Values.server.ingress.extraHosts }}
+ {{- if .name }}
+ - {{ tpl .name $ }}
+ {{- end }}
+ {{- end }}
+ secretName: argocd-server-tls
+ {{- end }}
+ {{- with .Values.server.ingress.extraTls }}
+ {{- tpl (toYaml .) $ | nindent 4 }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/metrics.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/metrics.yaml
new file mode 100644
index 0000000..d08dbae
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/metrics.yaml
@@ -0,0 +1,35 @@
+{{- if .Values.server.metrics.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "argo-cd.server.fullname" . }}-metrics
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" (printf "%s-metrics" .Values.server.name)) | nindent 4 }}
+ {{- with .Values.server.metrics.service.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- if or .Values.server.metrics.service.annotations .Values.global.addPrometheusAnnotations }}
+ annotations:
+ {{- if .Values.global.addPrometheusAnnotations }}
+ prometheus.io/port: {{ .Values.server.metrics.service.servicePort | quote }}
+ prometheus.io/scrape: "true"
+ {{- end }}
+ {{- range $key, $value := .Values.server.metrics.service.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ type: {{ .Values.server.metrics.service.type }}
+ {{- if and .Values.server.metrics.service.clusterIP (eq .Values.server.metrics.service.type "ClusterIP") }}
+ clusterIP: {{ .Values.server.metrics.service.clusterIP }}
+ {{- end }}
+ {{- include "argo-cd.dualStack" . | indent 2 }}
+ ports:
+ - name: {{ .Values.server.metrics.service.portName }}
+ protocol: TCP
+ port: {{ .Values.server.metrics.service.servicePort }}
+ targetPort: metrics
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/networkpolicy.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/networkpolicy.yaml
new file mode 100644
index 0000000..3234d5a
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/networkpolicy.yaml
@@ -0,0 +1,17 @@
+{{- if or .Values.server.networkPolicy.create .Values.global.networkPolicy.create }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+ name: {{ template "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+spec:
+ ingress:
+ - {}
+ podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 6 }}
+ policyTypes:
+ - Ingress
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/openshift/route.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/openshift/route.yaml
new file mode 100644
index 0000000..b018f72
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/openshift/route.yaml
@@ -0,0 +1,27 @@
+{{- if .Values.server.route.enabled -}}
+apiVersion: route.openshift.io/v1
+kind: Route
+metadata:
+ name: {{ template "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+{{- with .Values.server.route.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+{{- end }}
+spec:
+ host: {{ .Values.server.route.hostname | default .Values.global.domain | quote }}
+ to:
+ kind: Service
+ name: {{ template "argo-cd.server.fullname" . }}
+ weight: 100
+ port:
+ targetPort: https
+ tls:
+ termination: {{ .Values.server.route.termination_type | quote }}
+ insecureEdgeTerminationPolicy: {{ .Values.server.route.termination_policy | quote }}
+ wildcardPolicy: None
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/pdb.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/pdb.yaml
new file mode 100644
index 0000000..6bc9330
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/pdb.yaml
@@ -0,0 +1,27 @@
+{{- if .Values.server.pdb.enabled }}
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: {{ include "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+ {{- with .Values.server.pdb.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.server.pdb.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ {{- with .Values.server.pdb.maxUnavailable }}
+ maxUnavailable: {{ . }}
+ {{- else }}
+ minAvailable: {{ .Values.server.pdb.minAvailable | default 0 }}
+ {{- end }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 6 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/role.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/role.yaml
new file mode 100644
index 0000000..8d12e30
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/role.yaml
@@ -0,0 +1,50 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: {{ include "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+rules:
+- apiGroups:
+ - ""
+ resources:
+ - secrets
+ - configmaps
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+- apiGroups:
+ - argoproj.io
+ resources:
+ - applications
+ - applicationsets
+ - appprojects
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - delete
+ - patch
+- apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - list
+{{- if eq (toString (index .Values.configs.cm "exec.enabled")) "true" }}
+- apiGroups:
+ - ""
+ resources:
+ - pods/exec
+ verbs:
+ - create
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/rolebinding.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/rolebinding.yaml
new file mode 100644
index 0000000..4d635aa
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/rolebinding.yaml
@@ -0,0 +1,15 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: {{ include "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: {{ template "argo-cd.server.fullname" . }}
+subjects:
+- kind: ServiceAccount
+ name: {{ include "argo-cd.server.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/service.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/service.yaml
new file mode 100644
index 0000000..86f8abb
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/service.yaml
@@ -0,0 +1,59 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ template "argo-cd.server.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+ {{- with .Values.server.service.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.server.service.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ type: {{ .Values.server.service.type }}
+ {{- include "argo-cd.dualStack" . | indent 2 }}
+ {{- with .Values.server.service.externalIPs }}
+ externalIPs: {{ . }}
+ {{- end }}
+ {{- if or (eq .Values.server.service.type "LoadBalancer") (eq .Values.server.service.type "NodePort") }}
+ externalTrafficPolicy: {{ .Values.server.service.externalTrafficPolicy }}
+ {{- end }}
+ {{- if eq .Values.server.service.type "LoadBalancer" }}
+ {{- with .Values.server.service.loadBalancerClass }}
+ loadBalancerClass: {{ . }}
+ {{- end }}
+ {{- with .Values.server.service.loadBalancerIP }}
+ loadBalancerIP: {{ . }}
+ {{- end }}
+ {{- with .Values.server.service.loadBalancerSourceRanges }}
+ loadBalancerSourceRanges:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- end }}
+ sessionAffinity: {{ .Values.server.service.sessionAffinity }}
+ ports:
+ - name: {{ .Values.server.service.servicePortHttpName }}
+ protocol: TCP
+ port: {{ .Values.server.service.servicePortHttp }}
+ targetPort: {{ .Values.server.containerPorts.server }}
+ {{- if eq .Values.server.service.type "NodePort" }}
+ nodePort: {{ .Values.server.service.nodePortHttp }}
+ {{- end }}
+ - name: {{ .Values.server.service.servicePortHttpsName }}
+ protocol: TCP
+ port: {{ .Values.server.service.servicePortHttps }}
+ targetPort: {{ .Values.server.containerPorts.server }}
+ {{- if eq .Values.server.service.type "NodePort" }}
+ nodePort: {{ .Values.server.service.nodePortHttps }}
+ {{- end }}
+ {{- with .Values.server.service.servicePortHttpsAppProtocol }}
+ appProtocol: {{ . }}
+ {{- end }}
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 4 }}
+
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/serviceaccount.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/serviceaccount.yaml
new file mode 100644
index 0000000..9789e1d
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/serviceaccount.yaml
@@ -0,0 +1,19 @@
+{{- if .Values.server.serviceAccount.create }}
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: {{ .Values.server.serviceAccount.automountServiceAccountToken }}
+metadata:
+ name: {{ include "argo-cd.server.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ {{- with .Values.server.serviceAccount.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+ {{- with .Values.server.serviceAccount.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-server/servicemonitor.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-server/servicemonitor.yaml
new file mode 100644
index 0000000..49c2413
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-server/servicemonitor.yaml
@@ -0,0 +1,51 @@
+{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.server.metrics.enabled .Values.server.metrics.serviceMonitor.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "argo-cd.server.fullname" . }}
+ namespace: {{ default (include "argo-cd.namespace" .) .Values.server.metrics.serviceMonitor.namespace | quote }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
+ {{- with .Values.server.metrics.serviceMonitor.selector }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.server.metrics.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.server.metrics.serviceMonitor.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ endpoints:
+ - port: {{ .Values.server.metrics.service.portName }}
+ {{- with .Values.server.metrics.serviceMonitor.interval }}
+ interval: {{ . }}
+ {{- end }}
+ {{- with .Values.server.metrics.serviceMonitor.scrapeTimeout }}
+ scrapeTimeout: {{ . }}
+ {{- end }}
+ path: /metrics
+ {{- with .Values.server.metrics.serviceMonitor.relabelings }}
+ relabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.server.metrics.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ honorLabels: {{ .Values.server.metrics.serviceMonitor.honorLabels }}
+ {{- with .Values.server.metrics.serviceMonitor.scheme }}
+ scheme: {{ . }}
+ {{- end }}
+ {{- with .Values.server.metrics.serviceMonitor.tlsConfig }}
+ tlsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - {{ include "argo-cd.namespace" . }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.server.name "name" (printf "%s-metrics" .Values.server.name)) | nindent 6 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/crds/crd-application.yaml b/astroshop-platform/argocd-helmchart/templates/crds/crd-application.yaml
new file mode 100644
index 0000000..f7b7511
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/crds/crd-application.yaml
@@ -0,0 +1,5903 @@
+{{- if .Values.crds.install }}
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ {{- if .Values.crds.keep }}
+ "helm.sh/resource-policy": keep
+ {{- end }}
+ {{- with .Values.crds.annotations }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ labels:
+ app.kubernetes.io/name: applications.argoproj.io
+ app.kubernetes.io/part-of: argocd
+ {{- with .Values.crds.additionalLabels }}
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ name: applications.argoproj.io
+spec:
+ group: argoproj.io
+ names:
+ kind: Application
+ listKind: ApplicationList
+ plural: applications
+ shortNames:
+ - app
+ - apps
+ singular: application
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .status.sync.status
+ name: Sync Status
+ type: string
+ - jsonPath: .status.health.status
+ name: Health Status
+ type: string
+ - jsonPath: .status.sync.revision
+ name: Revision
+ priority: 10
+ type: string
+ - jsonPath: .spec.project
+ name: Project
+ priority: 10
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ description: Application is a definition of Application resource.
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ metadata:
+ type: object
+ operation:
+ description: Operation contains information about a requested or running
+ operation
+ properties:
+ info:
+ description: Info is a list of informational items for this operation
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ initiatedBy:
+ description: InitiatedBy contains information about who initiated
+ the operations
+ properties:
+ automated:
+ description: Automated is set to true if operation was initiated
+ automatically by the application controller.
+ type: boolean
+ username:
+ description: Username contains the name of a user who started
+ operation
+ type: string
+ type: object
+ retry:
+ description: Retry controls the strategy to apply if a sync fails
+ properties:
+ backoff:
+ description: Backoff controls how to backoff on subsequent retries
+ of failed syncs
+ properties:
+ duration:
+ description: Duration is the amount to back off. Default unit
+ is seconds, but could also be a duration (e.g. "2m", "1h")
+ type: string
+ factor:
+ description: Factor is a factor to multiply the base duration
+ after each failed retry
+ format: int64
+ type: integer
+ maxDuration:
+ description: MaxDuration is the maximum amount of time allowed
+ for the backoff strategy
+ type: string
+ type: object
+ limit:
+ description: Limit is the maximum number of attempts for retrying
+ a failed sync. If set to 0, no retries will be performed.
+ format: int64
+ type: integer
+ type: object
+ sync:
+ description: Sync contains parameters for the operation
+ properties:
+ autoHealAttemptsCount:
+ description: SelfHealAttemptsCount contains the number of auto-heal
+ attempts
+ format: int64
+ type: integer
+ dryRun:
+ description: DryRun specifies to perform a `kubectl apply --dry-run`
+ without actually performing the sync
+ type: boolean
+ manifests:
+ description: Manifests is an optional field that overrides sync
+ source with a local directory for development
+ items:
+ type: string
+ type: array
+ prune:
+ description: Prune specifies to delete resources from the cluster
+ that are no longer tracked in git
+ type: boolean
+ resources:
+ description: Resources describes which resources shall be part
+ of the sync
+ items:
+ description: SyncOperationResource contains resources to sync.
+ properties:
+ group:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ type: array
+ revision:
+ description: |-
+ Revision is the revision (Git) or chart version (Helm) which to sync the application to
+ If omitted, will use the revision specified in app spec.
+ type: string
+ revisions:
+ description: |-
+ Revisions is the list of revision (Git) or chart version (Helm) which to sync each source in sources field for the application to
+ If omitted, will use the revision specified in app spec.
+ items:
+ type: string
+ type: array
+ source:
+ description: |-
+ Source overrides the source definition set in the application.
+ This is typically set in a Rollback operation and is nil during a Sync operation
+ properties:
+ chart:
+ description: Chart is a Helm chart name, and must be specified
+ for applications sourced from a Helm repo.
+ type: string
+ directory:
+ description: Directory holds path/directory specific options
+ properties:
+ exclude:
+ description: Exclude contains a glob pattern to match
+ paths against that should be explicitly excluded from
+ being used during manifest generation
+ type: string
+ include:
+ description: Include contains a glob pattern to match
+ paths against that should be explicitly included during
+ manifest generation
+ type: string
+ jsonnet:
+ description: Jsonnet holds options specific to Jsonnet
+ properties:
+ extVars:
+ description: ExtVars is a list of Jsonnet External
+ Variables
+ items:
+ description: JsonnetVar represents a variable to
+ be passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ description: Additional library search dirs
+ items:
+ type: string
+ type: array
+ tlas:
+ description: TLAS is a list of Jsonnet Top-level Arguments
+ items:
+ description: JsonnetVar represents a variable to
+ be passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ description: Recurse specifies whether to scan a directory
+ recursively for manifests
+ type: boolean
+ type: object
+ helm:
+ description: Helm holds helm specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ fileParameters:
+ description: FileParameters are file parameters to the
+ helm template
+ items:
+ description: HelmFileParameter is a file parameter that's
+ passed to helm template during manifest generation
+ properties:
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ path:
+ description: Path is the path to the file containing
+ the values for the Helm parameter
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ description: IgnoreMissingValueFiles prevents helm template
+ from failing when valueFiles do not exist locally by
+ not appending them to helm template --values
+ type: boolean
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ namespace:
+ description: Namespace is an optional namespace to template
+ with. If left empty, defaults to the app's destination
+ namespace.
+ type: string
+ parameters:
+ description: Parameters is a list of Helm parameters which
+ are passed to the helm template command upon manifest
+ generation
+ items:
+ description: HelmParameter is a parameter that's passed
+ to helm template during manifest generation
+ properties:
+ forceString:
+ description: ForceString determines whether to tell
+ Helm to interpret booleans and numbers as strings
+ type: boolean
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ value:
+ description: Value is the value for the Helm parameter
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ description: PassCredentials pass credentials to all domains
+ (Helm's --pass-credentials)
+ type: boolean
+ releaseName:
+ description: ReleaseName is the Helm release name to use.
+ If omitted it will use the application name
+ type: string
+ skipCrds:
+ description: SkipCrds skips custom resource definition
+ installation step (Helm's --skip-crds)
+ type: boolean
+ skipSchemaValidation:
+ description: SkipSchemaValidation skips JSON schema validation
+ (Helm's --skip-schema-validation)
+ type: boolean
+ skipTests:
+ description: SkipTests skips test manifest installation
+ step (Helm's --skip-tests).
+ type: boolean
+ valueFiles:
+ description: ValuesFiles is a list of Helm value files
+ to use when generating a template
+ items:
+ type: string
+ type: array
+ values:
+ description: Values specifies Helm values to be passed
+ to helm template, typically defined as a block. ValuesObject
+ takes precedence over Values, so use one or the other.
+ type: string
+ valuesObject:
+ description: ValuesObject specifies Helm values to be
+ passed to helm template, defined as a map. This takes
+ precedence over Values.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ description: Version is the Helm version to use for templating
+ ("3")
+ type: string
+ type: object
+ kustomize:
+ description: Kustomize holds kustomize specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ description: CommonAnnotations is a list of additional
+ annotations to add to rendered manifests
+ type: object
+ commonAnnotationsEnvsubst:
+ description: CommonAnnotationsEnvsubst specifies whether
+ to apply env variables substitution for annotation values
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ description: CommonLabels is a list of additional labels
+ to add to rendered manifests
+ type: object
+ components:
+ description: Components specifies a list of kustomize
+ components to add to the kustomization before building
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ description: ForceCommonAnnotations specifies whether
+ to force applying common annotations to resources for
+ Kustomize apps
+ type: boolean
+ forceCommonLabels:
+ description: ForceCommonLabels specifies whether to force
+ applying common labels to resources for Kustomize apps
+ type: boolean
+ ignoreMissingComponents:
+ description: IgnoreMissingComponents prevents kustomize
+ from failing when components do not exist locally by
+ not appending them to kustomization file
+ type: boolean
+ images:
+ description: Images is a list of Kustomize image override
+ specifications
+ items:
+ description: KustomizeImage represents a Kustomize image
+ definition in the format [old_image_name=]<image_name>:<image_tag>
+ type: string
+ type: array
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ labelIncludeTemplates:
+ description: LabelIncludeTemplates specifies whether to
+ apply common labels to resource templates or not
+ type: boolean
+ labelWithoutSelector:
+ description: LabelWithoutSelector specifies whether to
+ apply common labels to resource selectors or not
+ type: boolean
+ namePrefix:
+ description: NamePrefix is a prefix appended to resources
+ for Kustomize apps
+ type: string
+ nameSuffix:
+ description: NameSuffix is a suffix appended to resources
+ for Kustomize apps
+ type: string
+ namespace:
+ description: Namespace sets the namespace that Kustomize
+ adds to all resources
+ type: string
+ patches:
+ description: Patches is a list of Kustomize patches
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ description: Replicas is a list of Kustomize Replicas
+ override specifications
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number of replicas
+ x-kubernetes-int-or-string: true
+ name:
+ description: Name of Deployment or StatefulSet
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ description: Version controls which version of Kustomize
+ to use for rendering manifests
+ type: string
+ type: object
+ name:
+ description: Name is used to refer to a source and is displayed
+ in the UI. It is used in multi-source Applications.
+ type: string
+ path:
+ description: Path is a directory path within the Git repository,
+ and is only valid for applications sourced from Git.
+ type: string
+ plugin:
+ description: Plugin holds config management plugin specific
+ options
+ properties:
+ env:
+ description: Env is a list of environment variable entries
+ items:
+ description: EnvEntry represents an entry in the application's
+ environment
+ properties:
+ name:
+ description: Name is the name of the variable, usually
+ expressed in uppercase
+ type: string
+ value:
+ description: Value is the value of the variable
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ description: Array is the value of an array type
+ parameter.
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ description: Map is the value of a map type parameter.
+ type: object
+ name:
+ description: Name is the name identifying a parameter.
+ type: string
+ string:
+ description: String_ is the value of a string type
+ parameter.
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ description: Ref is reference to another source within sources
+ field. This field will not be used if used with a `source`
+ tag.
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the repository (Git or
+ Helm) that contains the application manifests
+ type: string
+ targetRevision:
+ description: |-
+ TargetRevision defines the revision of the source to sync the application to.
+ In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
+ In case of Helm, this is a semver tag for the Chart's version.
+ type: string
+ required:
+ - repoURL
+ type: object
+ sources:
+ description: |-
+ Sources overrides the source definition set in the application.
+ This is typically set in a Rollback operation and is nil during a Sync operation
+ items:
+ description: ApplicationSource contains all required information
+ about the source of an application
+ properties:
+ chart:
+ description: Chart is a Helm chart name, and must be specified
+ for applications sourced from a Helm repo.
+ type: string
+ directory:
+ description: Directory holds path/directory specific options
+ properties:
+ exclude:
+ description: Exclude contains a glob pattern to match
+ paths against that should be explicitly excluded from
+ being used during manifest generation
+ type: string
+ include:
+ description: Include contains a glob pattern to match
+ paths against that should be explicitly included during
+ manifest generation
+ type: string
+ jsonnet:
+ description: Jsonnet holds options specific to Jsonnet
+ properties:
+ extVars:
+ description: ExtVars is a list of Jsonnet External
+ Variables
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ description: Additional library search dirs
+ items:
+ type: string
+ type: array
+ tlas:
+ description: TLAS is a list of Jsonnet Top-level
+ Arguments
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ description: Recurse specifies whether to scan a directory
+ recursively for manifests
+ type: boolean
+ type: object
+ helm:
+ description: Helm holds helm specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ fileParameters:
+ description: FileParameters are file parameters to the
+ helm template
+ items:
+ description: HelmFileParameter is a file parameter
+ that's passed to helm template during manifest generation
+ properties:
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ path:
+ description: Path is the path to the file containing
+ the values for the Helm parameter
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ description: IgnoreMissingValueFiles prevents helm template
+ from failing when valueFiles do not exist locally
+ by not appending them to helm template --values
+ type: boolean
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ namespace:
+ description: Namespace is an optional namespace to template
+ with. If left empty, defaults to the app's destination
+ namespace.
+ type: string
+ parameters:
+ description: Parameters is a list of Helm parameters
+ which are passed to the helm template command upon
+ manifest generation
+ items:
+ description: HelmParameter is a parameter that's passed
+ to helm template during manifest generation
+ properties:
+ forceString:
+ description: ForceString determines whether to
+ tell Helm to interpret booleans and numbers
+ as strings
+ type: boolean
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ value:
+ description: Value is the value for the Helm parameter
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ description: PassCredentials pass credentials to all
+ domains (Helm's --pass-credentials)
+ type: boolean
+ releaseName:
+ description: ReleaseName is the Helm release name to
+ use. If omitted it will use the application name
+ type: string
+ skipCrds:
+ description: SkipCrds skips custom resource definition
+ installation step (Helm's --skip-crds)
+ type: boolean
+ skipSchemaValidation:
+ description: SkipSchemaValidation skips JSON schema
+ validation (Helm's --skip-schema-validation)
+ type: boolean
+ skipTests:
+ description: SkipTests skips test manifest installation
+ step (Helm's --skip-tests).
+ type: boolean
+ valueFiles:
+ description: ValuesFiles is a list of Helm value files
+ to use when generating a template
+ items:
+ type: string
+ type: array
+ values:
+ description: Values specifies Helm values to be passed
+ to helm template, typically defined as a block. ValuesObject
+ takes precedence over Values, so use one or the other.
+ type: string
+ valuesObject:
+ description: ValuesObject specifies Helm values to be
+ passed to helm template, defined as a map. This takes
+ precedence over Values.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ description: Version is the Helm version to use for
+ templating ("3")
+ type: string
+ type: object
+ kustomize:
+ description: Kustomize holds kustomize specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ description: CommonAnnotations is a list of additional
+ annotations to add to rendered manifests
+ type: object
+ commonAnnotationsEnvsubst:
+ description: CommonAnnotationsEnvsubst specifies whether
+ to apply env variables substitution for annotation
+ values
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ description: CommonLabels is a list of additional labels
+ to add to rendered manifests
+ type: object
+ components:
+ description: Components specifies a list of kustomize
+ components to add to the kustomization before building
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ description: ForceCommonAnnotations specifies whether
+ to force applying common annotations to resources
+ for Kustomize apps
+ type: boolean
+ forceCommonLabels:
+ description: ForceCommonLabels specifies whether to
+ force applying common labels to resources for Kustomize
+ apps
+ type: boolean
+ ignoreMissingComponents:
+ description: IgnoreMissingComponents prevents kustomize
+ from failing when components do not exist locally
+ by not appending them to kustomization file
+ type: boolean
+ images:
+ description: Images is a list of Kustomize image override
+ specifications
+ items:
+ description: KustomizeImage represents a Kustomize
+ image definition in the format [old_image_name=]<image_name>:<image_tag>
+ type: string
+ type: array
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ labelIncludeTemplates:
+ description: LabelIncludeTemplates specifies whether
+ to apply common labels to resource templates or not
+ type: boolean
+ labelWithoutSelector:
+ description: LabelWithoutSelector specifies whether
+ to apply common labels to resource selectors or not
+ type: boolean
+ namePrefix:
+ description: NamePrefix is a prefix appended to resources
+ for Kustomize apps
+ type: string
+ nameSuffix:
+ description: NameSuffix is a suffix appended to resources
+ for Kustomize apps
+ type: string
+ namespace:
+ description: Namespace sets the namespace that Kustomize
+ adds to all resources
+ type: string
+ patches:
+ description: Patches is a list of Kustomize patches
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ description: Replicas is a list of Kustomize Replicas
+ override specifications
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number of replicas
+ x-kubernetes-int-or-string: true
+ name:
+ description: Name of Deployment or StatefulSet
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ description: Version controls which version of Kustomize
+ to use for rendering manifests
+ type: string
+ type: object
+ name:
+ description: Name is used to refer to a source and is displayed
+ in the UI. It is used in multi-source Applications.
+ type: string
+ path:
+ description: Path is a directory path within the Git repository,
+ and is only valid for applications sourced from Git.
+ type: string
+ plugin:
+ description: Plugin holds config management plugin specific
+ options
+ properties:
+ env:
+ description: Env is a list of environment variable entries
+ items:
+ description: EnvEntry represents an entry in the application's
+ environment
+ properties:
+ name:
+ description: Name is the name of the variable,
+ usually expressed in uppercase
+ type: string
+ value:
+ description: Value is the value of the variable
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ description: Array is the value of an array type
+ parameter.
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ description: Map is the value of a map type parameter.
+ type: object
+ name:
+ description: Name is the name identifying a parameter.
+ type: string
+ string:
+ description: String_ is the value of a string
+ type parameter.
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ description: Ref is reference to another source within sources
+ field. This field will not be used if used with a `source`
+ tag.
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the repository (Git or
+ Helm) that contains the application manifests
+ type: string
+ targetRevision:
+ description: |-
+ TargetRevision defines the revision of the source to sync the application to.
+ In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
+ In case of Helm, this is a semver tag for the Chart's version.
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncOptions:
+ description: SyncOptions provide per-sync sync-options, e.g. Validate=false
+ items:
+ type: string
+ type: array
+ syncStrategy:
+ description: SyncStrategy describes how to perform the sync
+ properties:
+ apply:
+ description: Apply will perform a `kubectl apply` to perform
+ the sync.
+ properties:
+ force:
+ description: |-
+ Force indicates whether or not to supply the --force flag to `kubectl apply`.
+ The --force flag deletes and re-create the resource, when PATCH encounters conflict and has
+ retried for 5 times.
+ type: boolean
+ type: object
+ hook:
+ description: Hook will submit any referenced resources to
+ perform the sync. This is the default strategy
+ properties:
+ force:
+ description: |-
+ Force indicates whether or not to supply the --force flag to `kubectl apply`.
+ The --force flag deletes and re-create the resource, when PATCH encounters conflict and has
+ retried for 5 times.
+ type: boolean
+ type: object
+ type: object
+ type: object
+ type: object
+ spec:
+ description: ApplicationSpec represents desired application state. Contains
+ link to repository with application definition and additional parameters
+ link definition revision.
+ properties:
+ destination:
+ description: Destination is a reference to the target Kubernetes server
+ and namespace
+ properties:
+ name:
+ description: Name is an alternate way of specifying the target
+ cluster by its symbolic name. This must be set if Server is
+ not set.
+ type: string
+ namespace:
+ description: |-
+ Namespace specifies the target namespace for the application's resources.
+ The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace
+ type: string
+ server:
+ description: Server specifies the URL of the target cluster's
+ Kubernetes control plane API. This must be set if Name is not
+ set.
+ type: string
+ type: object
+ ignoreDifferences:
+ description: IgnoreDifferences is a list of resources and their fields
+ which should be ignored during comparison
+ items:
+ description: ResourceIgnoreDifferences contains resource filter
+ and list of json paths which should be ignored during comparison
+ with live state.
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ description: |-
+ ManagedFieldsManagers is a list of trusted managers. Fields mutated by those managers will take precedence over the
+ desired state defined in the SCM and won't be displayed in diffs
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ description: Info contains a list of information (URLs, email addresses,
+ and plain text) that relates to the application
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ description: |-
+ Project is a reference to the project this application belongs to.
+ The empty string means that application belongs to the 'default' project.
+ type: string
+ revisionHistoryLimit:
+ description: |-
+ RevisionHistoryLimit limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions.
+ This should only be changed in exceptional circumstances.
+ Setting to zero will store no history. This will reduce storage used.
+ Increasing will increase the space used to store the history, so we do not recommend increasing it.
+ Default is 10.
+ format: int64
+ type: integer
+ source:
+ description: Source is a reference to the location of the application's
+ manifests or chart
+ properties:
+ chart:
+ description: Chart is a Helm chart name, and must be specified
+ for applications sourced from a Helm repo.
+ type: string
+ directory:
+ description: Directory holds path/directory specific options
+ properties:
+ exclude:
+ description: Exclude contains a glob pattern to match paths
+ against that should be explicitly excluded from being used
+ during manifest generation
+ type: string
+ include:
+ description: Include contains a glob pattern to match paths
+ against that should be explicitly included during manifest
+ generation
+ type: string
+ jsonnet:
+ description: Jsonnet holds options specific to Jsonnet
+ properties:
+ extVars:
+ description: ExtVars is a list of Jsonnet External Variables
+ items:
+ description: JsonnetVar represents a variable to be
+ passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ description: Additional library search dirs
+ items:
+ type: string
+ type: array
+ tlas:
+ description: TLAS is a list of Jsonnet Top-level Arguments
+ items:
+ description: JsonnetVar represents a variable to be
+ passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ description: Recurse specifies whether to scan a directory
+ recursively for manifests
+ type: boolean
+ type: object
+ helm:
+ description: Helm holds helm specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ fileParameters:
+ description: FileParameters are file parameters to the helm
+ template
+ items:
+ description: HelmFileParameter is a file parameter that's
+ passed to helm template during manifest generation
+ properties:
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ path:
+ description: Path is the path to the file containing
+ the values for the Helm parameter
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ description: IgnoreMissingValueFiles prevents helm template
+ from failing when valueFiles do not exist locally by not
+ appending them to helm template --values
+ type: boolean
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ namespace:
+ description: Namespace is an optional namespace to template
+ with. If left empty, defaults to the app's destination namespace.
+ type: string
+ parameters:
+ description: Parameters is a list of Helm parameters which
+ are passed to the helm template command upon manifest generation
+ items:
+ description: HelmParameter is a parameter that's passed
+ to helm template during manifest generation
+ properties:
+ forceString:
+ description: ForceString determines whether to tell
+ Helm to interpret booleans and numbers as strings
+ type: boolean
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ value:
+ description: Value is the value for the Helm parameter
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ description: PassCredentials pass credentials to all domains
+ (Helm's --pass-credentials)
+ type: boolean
+ releaseName:
+ description: ReleaseName is the Helm release name to use.
+ If omitted it will use the application name
+ type: string
+ skipCrds:
+ description: SkipCrds skips custom resource definition installation
+ step (Helm's --skip-crds)
+ type: boolean
+ skipSchemaValidation:
+ description: SkipSchemaValidation skips JSON schema validation
+ (Helm's --skip-schema-validation)
+ type: boolean
+ skipTests:
+ description: SkipTests skips test manifest installation step
+ (Helm's --skip-tests).
+ type: boolean
+ valueFiles:
+ description: ValuesFiles is a list of Helm value files to
+ use when generating a template
+ items:
+ type: string
+ type: array
+ values:
+ description: Values specifies Helm values to be passed to
+ helm template, typically defined as a block. ValuesObject
+ takes precedence over Values, so use one or the other.
+ type: string
+ valuesObject:
+ description: ValuesObject specifies Helm values to be passed
+ to helm template, defined as a map. This takes precedence
+ over Values.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ description: Version is the Helm version to use for templating
+ ("3")
+ type: string
+ type: object
+ kustomize:
+ description: Kustomize holds kustomize specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ description: CommonAnnotations is a list of additional annotations
+ to add to rendered manifests
+ type: object
+ commonAnnotationsEnvsubst:
+ description: CommonAnnotationsEnvsubst specifies whether to
+ apply env variables substitution for annotation values
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ description: CommonLabels is a list of additional labels to
+ add to rendered manifests
+ type: object
+ components:
+ description: Components specifies a list of kustomize components
+ to add to the kustomization before building
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ description: ForceCommonAnnotations specifies whether to force
+ applying common annotations to resources for Kustomize apps
+ type: boolean
+ forceCommonLabels:
+ description: ForceCommonLabels specifies whether to force
+ applying common labels to resources for Kustomize apps
+ type: boolean
+ ignoreMissingComponents:
+ description: IgnoreMissingComponents prevents kustomize from
+ failing when components do not exist locally by not appending
+ them to kustomization file
+ type: boolean
+ images:
+ description: Images is a list of Kustomize image override
+ specifications
+ items:
+ description: KustomizeImage represents a Kustomize image
+ definition in the format [old_image_name=]<image_name>:<image_tag>
+ type: string
+ type: array
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ labelIncludeTemplates:
+ description: LabelIncludeTemplates specifies whether to apply
+ common labels to resource templates or not
+ type: boolean
+ labelWithoutSelector:
+ description: LabelWithoutSelector specifies whether to apply
+ common labels to resource selectors or not
+ type: boolean
+ namePrefix:
+ description: NamePrefix is a prefix appended to resources
+ for Kustomize apps
+ type: string
+ nameSuffix:
+ description: NameSuffix is a suffix appended to resources
+ for Kustomize apps
+ type: string
+ namespace:
+ description: Namespace sets the namespace that Kustomize adds
+ to all resources
+ type: string
+ patches:
+ description: Patches is a list of Kustomize patches
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ description: Replicas is a list of Kustomize Replicas override
+ specifications
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number of replicas
+ x-kubernetes-int-or-string: true
+ name:
+ description: Name of Deployment or StatefulSet
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ description: Version controls which version of Kustomize to
+ use for rendering manifests
+ type: string
+ type: object
+ name:
+ description: Name is used to refer to a source and is displayed
+ in the UI. It is used in multi-source Applications.
+ type: string
+ path:
+ description: Path is a directory path within the Git repository,
+ and is only valid for applications sourced from Git.
+ type: string
+ plugin:
+ description: Plugin holds config management plugin specific options
+ properties:
+ env:
+ description: Env is a list of environment variable entries
+ items:
+ description: EnvEntry represents an entry in the application's
+ environment
+ properties:
+ name:
+ description: Name is the name of the variable, usually
+ expressed in uppercase
+ type: string
+ value:
+ description: Value is the value of the variable
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ description: Array is the value of an array type parameter.
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ description: Map is the value of a map type parameter.
+ type: object
+ name:
+ description: Name is the name identifying a parameter.
+ type: string
+ string:
+ description: String_ is the value of a string type parameter.
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ description: Ref is reference to another source within sources
+ field. This field will not be used if used with a `source` tag.
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the repository (Git or Helm)
+ that contains the application manifests
+ type: string
+ targetRevision:
+ description: |-
+ TargetRevision defines the revision of the source to sync the application to.
+ In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
+ In case of Helm, this is a semver tag for the Chart's version.
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ description: SourceHydrator provides a way to push hydrated manifests
+ back to git before syncing them to the cluster.
+ properties:
+ drySource:
+ description: DrySource specifies where the dry "don't repeat yourself"
+ manifest source lives.
+ properties:
+ path:
+ description: Path is a directory path within the Git repository
+ where the manifests are located
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the git repository that
+ contains the application manifests
+ type: string
+ targetRevision:
+ description: TargetRevision defines the revision of the source
+ to hydrate
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ description: |-
+ HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
+ have to move manifests to the SyncSource, e.g. by pull request.
+ properties:
+ targetBranch:
+ description: TargetBranch is the branch to which hydrated
+ manifests should be committed
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ description: SyncSource specifies where to sync hydrated manifests
+ from.
+ properties:
+ path:
+ description: |-
+ Path is a directory path within the git repository where hydrated manifests should be committed to and synced
+ from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.
+ type: string
+ targetBranch:
+ description: TargetBranch is the branch to which hydrated
+ manifests should be committed
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ description: Sources is a reference to the location of the application's
+ manifests or chart
+ items:
+ description: ApplicationSource contains all required information
+ about the source of an application
+ properties:
+ chart:
+ description: Chart is a Helm chart name, and must be specified
+ for applications sourced from a Helm repo.
+ type: string
+ directory:
+ description: Directory holds path/directory specific options
+ properties:
+ exclude:
+ description: Exclude contains a glob pattern to match paths
+ against that should be explicitly excluded from being
+ used during manifest generation
+ type: string
+ include:
+ description: Include contains a glob pattern to match paths
+ against that should be explicitly included during manifest
+ generation
+ type: string
+ jsonnet:
+ description: Jsonnet holds options specific to Jsonnet
+ properties:
+ extVars:
+ description: ExtVars is a list of Jsonnet External Variables
+ items:
+ description: JsonnetVar represents a variable to be
+ passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ description: Additional library search dirs
+ items:
+ type: string
+ type: array
+ tlas:
+ description: TLAS is a list of Jsonnet Top-level Arguments
+ items:
+ description: JsonnetVar represents a variable to be
+ passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ description: Recurse specifies whether to scan a directory
+ recursively for manifests
+ type: boolean
+ type: object
+ helm:
+ description: Helm holds helm specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ fileParameters:
+ description: FileParameters are file parameters to the helm
+ template
+ items:
+ description: HelmFileParameter is a file parameter that's
+ passed to helm template during manifest generation
+ properties:
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ path:
+ description: Path is the path to the file containing
+ the values for the Helm parameter
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ description: IgnoreMissingValueFiles prevents helm template
+ from failing when valueFiles do not exist locally by not
+ appending them to helm template --values
+ type: boolean
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ namespace:
+ description: Namespace is an optional namespace to template
+ with. If left empty, defaults to the app's destination
+ namespace.
+ type: string
+ parameters:
+ description: Parameters is a list of Helm parameters which
+ are passed to the helm template command upon manifest
+ generation
+ items:
+ description: HelmParameter is a parameter that's passed
+ to helm template during manifest generation
+ properties:
+ forceString:
+ description: ForceString determines whether to tell
+ Helm to interpret booleans and numbers as strings
+ type: boolean
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ value:
+ description: Value is the value for the Helm parameter
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ description: PassCredentials pass credentials to all domains
+ (Helm's --pass-credentials)
+ type: boolean
+ releaseName:
+ description: ReleaseName is the Helm release name to use.
+ If omitted it will use the application name
+ type: string
+ skipCrds:
+ description: SkipCrds skips custom resource definition installation
+ step (Helm's --skip-crds)
+ type: boolean
+ skipSchemaValidation:
+ description: SkipSchemaValidation skips JSON schema validation
+ (Helm's --skip-schema-validation)
+ type: boolean
+ skipTests:
+ description: SkipTests skips test manifest installation
+ step (Helm's --skip-tests).
+ type: boolean
+ valueFiles:
+ description: ValuesFiles is a list of Helm value files to
+ use when generating a template
+ items:
+ type: string
+ type: array
+ values:
+ description: Values specifies Helm values to be passed to
+ helm template, typically defined as a block. ValuesObject
+ takes precedence over Values, so use one or the other.
+ type: string
+ valuesObject:
+ description: ValuesObject specifies Helm values to be passed
+ to helm template, defined as a map. This takes precedence
+ over Values.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ description: Version is the Helm version to use for templating
+ ("3")
+ type: string
+ type: object
+ kustomize:
+ description: Kustomize holds kustomize specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ description: CommonAnnotations is a list of additional annotations
+ to add to rendered manifests
+ type: object
+ commonAnnotationsEnvsubst:
+ description: CommonAnnotationsEnvsubst specifies whether
+ to apply env variables substitution for annotation values
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ description: CommonLabels is a list of additional labels
+ to add to rendered manifests
+ type: object
+ components:
+ description: Components specifies a list of kustomize components
+ to add to the kustomization before building
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ description: ForceCommonAnnotations specifies whether to
+ force applying common annotations to resources for Kustomize
+ apps
+ type: boolean
+ forceCommonLabels:
+ description: ForceCommonLabels specifies whether to force
+ applying common labels to resources for Kustomize apps
+ type: boolean
+ ignoreMissingComponents:
+ description: IgnoreMissingComponents prevents kustomize
+ from failing when components do not exist locally by not
+ appending them to kustomization file
+ type: boolean
+ images:
+ description: Images is a list of Kustomize image override
+ specifications
+ items:
+ description: KustomizeImage represents a Kustomize image
+ definition in the format [old_image_name=]<image_name>:<image_tag>
+ type: string
+ type: array
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ labelIncludeTemplates:
+ description: LabelIncludeTemplates specifies whether to
+ apply common labels to resource templates or not
+ type: boolean
+ labelWithoutSelector:
+ description: LabelWithoutSelector specifies whether to apply
+ common labels to resource selectors or not
+ type: boolean
+ namePrefix:
+ description: NamePrefix is a prefix appended to resources
+ for Kustomize apps
+ type: string
+ nameSuffix:
+ description: NameSuffix is a suffix appended to resources
+ for Kustomize apps
+ type: string
+ namespace:
+ description: Namespace sets the namespace that Kustomize
+ adds to all resources
+ type: string
+ patches:
+ description: Patches is a list of Kustomize patches
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ description: Replicas is a list of Kustomize Replicas override
+ specifications
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number of replicas
+ x-kubernetes-int-or-string: true
+ name:
+ description: Name of Deployment or StatefulSet
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ description: Version controls which version of Kustomize
+ to use for rendering manifests
+ type: string
+ type: object
+ name:
+ description: Name is used to refer to a source and is displayed
+ in the UI. It is used in multi-source Applications.
+ type: string
+ path:
+ description: Path is a directory path within the Git repository,
+ and is only valid for applications sourced from Git.
+ type: string
+ plugin:
+ description: Plugin holds config management plugin specific
+ options
+ properties:
+ env:
+ description: Env is a list of environment variable entries
+ items:
+ description: EnvEntry represents an entry in the application's
+ environment
+ properties:
+ name:
+ description: Name is the name of the variable, usually
+ expressed in uppercase
+ type: string
+ value:
+ description: Value is the value of the variable
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ description: Array is the value of an array type parameter.
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ description: Map is the value of a map type parameter.
+ type: object
+ name:
+ description: Name is the name identifying a parameter.
+ type: string
+ string:
+ description: String_ is the value of a string type
+ parameter.
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ description: Ref is reference to another source within sources
+ field. This field will not be used if used with a `source`
+ tag.
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the repository (Git or Helm)
+ that contains the application manifests
+ type: string
+ targetRevision:
+ description: |-
+ TargetRevision defines the revision of the source to sync the application to.
+ In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
+ In case of Helm, this is a semver tag for the Chart's version.
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ description: SyncPolicy controls when and how a sync will be performed
+ properties:
+ automated:
+ description: Automated will keep an application synced to the
+ target revision
+ properties:
+ allowEmpty:
+ description: 'AllowEmpty allows apps have zero live resources
+ (default: false)'
+ type: boolean
+ enabled:
+ description: Enable allows apps to explicitly control automated
+ sync
+ type: boolean
+ prune:
+ description: 'Prune specifies whether to delete resources
+ from the cluster that are not found in the sources anymore
+ as part of automated sync (default: false)'
+ type: boolean
+ selfHeal:
+ description: 'SelfHeal specifies whether to revert resources
+ back to their desired state upon modification in the cluster
+ (default: false)'
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ description: ManagedNamespaceMetadata controls metadata in the
+ given namespace (if CreateNamespace=true)
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ description: Retry controls failed sync retry behavior
+ properties:
+ backoff:
+ description: Backoff controls how to backoff on subsequent
+ retries of failed syncs
+ properties:
+ duration:
+ description: Duration is the amount to back off. Default
+ unit is seconds, but could also be a duration (e.g.
+ "2m", "1h")
+ type: string
+ factor:
+ description: Factor is a factor to multiply the base duration
+ after each failed retry
+ format: int64
+ type: integer
+ maxDuration:
+ description: MaxDuration is the maximum amount of time
+ allowed for the backoff strategy
+ type: string
+ type: object
+ limit:
+ description: Limit is the maximum number of attempts for retrying
+ a failed sync. If set to 0, no retries will be performed.
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ description: Options allow you to specify whole app sync-options
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ status:
+ description: ApplicationStatus contains status information for the application
+ properties:
+ conditions:
+ description: Conditions is a list of currently observed application
+ conditions
+ items:
+ description: ApplicationCondition contains details about an application
+ condition, which is usually an error or warning
+ properties:
+ lastTransitionTime:
+ description: LastTransitionTime is the time the condition was
+ last observed
+ format: date-time
+ type: string
+ message:
+ description: Message contains human-readable message indicating
+ details about condition
+ type: string
+ type:
+ description: Type is an application condition type
+ type: string
+ required:
+ - message
+ - type
+ type: object
+ type: array
+ controllerNamespace:
+ description: ControllerNamespace indicates the namespace in which
+ the application controller is located
+ type: string
+ health:
+ description: Health contains information about the application's current
+ health status
+ properties:
+ lastTransitionTime:
+ description: LastTransitionTime is the time the HealthStatus was
+ set or updated
+ format: date-time
+ type: string
+ message:
+ description: |-
+ Message is a human-readable informational message describing the health status
+
+ Deprecated: this field is not used and will be removed in a future release.
+ type: string
+ status:
+ description: Status holds the status code of the application
+ type: string
+ type: object
+ history:
+ description: History contains information about the application's
+ sync history
+ items:
+ description: RevisionHistory contains history information about
+ a previous sync
+ properties:
+ deployStartedAt:
+ description: DeployStartedAt holds the time the sync operation
+ started
+ format: date-time
+ type: string
+ deployedAt:
+ description: DeployedAt holds the time the sync operation completed
+ format: date-time
+ type: string
+ id:
+ description: ID is an auto incrementing identifier of the RevisionHistory
+ format: int64
+ type: integer
+ initiatedBy:
+ description: InitiatedBy contains information about who initiated
+ the operations
+ properties:
+ automated:
+ description: Automated is set to true if operation was initiated
+ automatically by the application controller.
+ type: boolean
+ username:
+ description: Username contains the name of a user who started
+ operation
+ type: string
+ type: object
+ revision:
+ description: Revision holds the revision the sync was performed
+ against
+ type: string
+ revisions:
+ description: Revisions holds the revision of each source in
+ sources field the sync was performed against
+ items:
+ type: string
+ type: array
+ source:
+ description: Source is a reference to the application source
+ used for the sync operation
+ properties:
+ chart:
+ description: Chart is a Helm chart name, and must be specified
+ for applications sourced from a Helm repo.
+ type: string
+ directory:
+ description: Directory holds path/directory specific options
+ properties:
+ exclude:
+ description: Exclude contains a glob pattern to match
+ paths against that should be explicitly excluded from
+ being used during manifest generation
+ type: string
+ include:
+ description: Include contains a glob pattern to match
+ paths against that should be explicitly included during
+ manifest generation
+ type: string
+ jsonnet:
+ description: Jsonnet holds options specific to Jsonnet
+ properties:
+ extVars:
+ description: ExtVars is a list of Jsonnet External
+ Variables
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ description: Additional library search dirs
+ items:
+ type: string
+ type: array
+ tlas:
+ description: TLAS is a list of Jsonnet Top-level
+ Arguments
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ description: Recurse specifies whether to scan a directory
+ recursively for manifests
+ type: boolean
+ type: object
+ helm:
+ description: Helm holds helm specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ fileParameters:
+ description: FileParameters are file parameters to the
+ helm template
+ items:
+ description: HelmFileParameter is a file parameter
+ that's passed to helm template during manifest generation
+ properties:
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ path:
+ description: Path is the path to the file containing
+ the values for the Helm parameter
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ description: IgnoreMissingValueFiles prevents helm template
+ from failing when valueFiles do not exist locally
+ by not appending them to helm template --values
+ type: boolean
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ namespace:
+ description: Namespace is an optional namespace to template
+ with. If left empty, defaults to the app's destination
+ namespace.
+ type: string
+ parameters:
+ description: Parameters is a list of Helm parameters
+ which are passed to the helm template command upon
+ manifest generation
+ items:
+ description: HelmParameter is a parameter that's passed
+ to helm template during manifest generation
+ properties:
+ forceString:
+ description: ForceString determines whether to
+ tell Helm to interpret booleans and numbers
+ as strings
+ type: boolean
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ value:
+ description: Value is the value for the Helm parameter
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ description: PassCredentials pass credentials to all
+ domains (Helm's --pass-credentials)
+ type: boolean
+ releaseName:
+ description: ReleaseName is the Helm release name to
+ use. If omitted it will use the application name
+ type: string
+ skipCrds:
+ description: SkipCrds skips custom resource definition
+ installation step (Helm's --skip-crds)
+ type: boolean
+ skipSchemaValidation:
+ description: SkipSchemaValidation skips JSON schema
+ validation (Helm's --skip-schema-validation)
+ type: boolean
+ skipTests:
+ description: SkipTests skips test manifest installation
+ step (Helm's --skip-tests).
+ type: boolean
+ valueFiles:
+ description: ValuesFiles is a list of Helm value files
+ to use when generating a template
+ items:
+ type: string
+ type: array
+ values:
+ description: Values specifies Helm values to be passed
+ to helm template, typically defined as a block. ValuesObject
+ takes precedence over Values, so use one or the other.
+ type: string
+ valuesObject:
+ description: ValuesObject specifies Helm values to be
+ passed to helm template, defined as a map. This takes
+ precedence over Values.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ description: Version is the Helm version to use for
+ templating ("3")
+ type: string
+ type: object
+ kustomize:
+ description: Kustomize holds kustomize specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ description: CommonAnnotations is a list of additional
+ annotations to add to rendered manifests
+ type: object
+ commonAnnotationsEnvsubst:
+ description: CommonAnnotationsEnvsubst specifies whether
+ to apply env variables substitution for annotation
+ values
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ description: CommonLabels is a list of additional labels
+ to add to rendered manifests
+ type: object
+ components:
+ description: Components specifies a list of kustomize
+ components to add to the kustomization before building
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ description: ForceCommonAnnotations specifies whether
+ to force applying common annotations to resources
+ for Kustomize apps
+ type: boolean
+ forceCommonLabels:
+ description: ForceCommonLabels specifies whether to
+ force applying common labels to resources for Kustomize
+ apps
+ type: boolean
+ ignoreMissingComponents:
+ description: IgnoreMissingComponents prevents kustomize
+ from failing when components do not exist locally
+ by not appending them to kustomization file
+ type: boolean
+ images:
+ description: Images is a list of Kustomize image override
+ specifications
+ items:
+ description: KustomizeImage represents a Kustomize
+ image definition in the format [old_image_name=]<image_name>:<image_tag>
+ type: string
+ type: array
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ labelIncludeTemplates:
+ description: LabelIncludeTemplates specifies whether
+ to apply common labels to resource templates or not
+ type: boolean
+ labelWithoutSelector:
+ description: LabelWithoutSelector specifies whether
+ to apply common labels to resource selectors or not
+ type: boolean
+ namePrefix:
+ description: NamePrefix is a prefix appended to resources
+ for Kustomize apps
+ type: string
+ nameSuffix:
+ description: NameSuffix is a suffix appended to resources
+ for Kustomize apps
+ type: string
+ namespace:
+ description: Namespace sets the namespace that Kustomize
+ adds to all resources
+ type: string
+ patches:
+ description: Patches is a list of Kustomize patches
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ description: Replicas is a list of Kustomize Replicas
+ override specifications
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number of replicas
+ x-kubernetes-int-or-string: true
+ name:
+ description: Name of Deployment or StatefulSet
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ description: Version controls which version of Kustomize
+ to use for rendering manifests
+ type: string
+ type: object
+ name:
+ description: Name is used to refer to a source and is displayed
+ in the UI. It is used in multi-source Applications.
+ type: string
+ path:
+ description: Path is a directory path within the Git repository,
+ and is only valid for applications sourced from Git.
+ type: string
+ plugin:
+ description: Plugin holds config management plugin specific
+ options
+ properties:
+ env:
+ description: Env is a list of environment variable entries
+ items:
+ description: EnvEntry represents an entry in the application's
+ environment
+ properties:
+ name:
+ description: Name is the name of the variable,
+ usually expressed in uppercase
+ type: string
+ value:
+ description: Value is the value of the variable
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ description: Array is the value of an array type
+ parameter.
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ description: Map is the value of a map type parameter.
+ type: object
+ name:
+ description: Name is the name identifying a parameter.
+ type: string
+ string:
+ description: String_ is the value of a string
+ type parameter.
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ description: Ref is reference to another source within sources
+ field. This field will not be used if used with a `source`
+ tag.
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the repository (Git or
+ Helm) that contains the application manifests
+ type: string
+ targetRevision:
+ description: |-
+ TargetRevision defines the revision of the source to sync the application to.
+ In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
+ In case of Helm, this is a semver tag for the Chart's version.
+ type: string
+ required:
+ - repoURL
+ type: object
+ sources:
+ description: Sources is a reference to the application sources
+ used for the sync operation
+ items:
+ description: ApplicationSource contains all required information
+ about the source of an application
+ properties:
+ chart:
+ description: Chart is a Helm chart name, and must be specified
+ for applications sourced from a Helm repo.
+ type: string
+ directory:
+ description: Directory holds path/directory specific options
+ properties:
+ exclude:
+ description: Exclude contains a glob pattern to match
+ paths against that should be explicitly excluded
+ from being used during manifest generation
+ type: string
+ include:
+ description: Include contains a glob pattern to match
+ paths against that should be explicitly included
+ during manifest generation
+ type: string
+ jsonnet:
+ description: Jsonnet holds options specific to Jsonnet
+ properties:
+ extVars:
+ description: ExtVars is a list of Jsonnet External
+ Variables
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ description: Additional library search dirs
+ items:
+ type: string
+ type: array
+ tlas:
+ description: TLAS is a list of Jsonnet Top-level
+ Arguments
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ description: Recurse specifies whether to scan a directory
+ recursively for manifests
+ type: boolean
+ type: object
+ helm:
+ description: Helm holds helm specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ fileParameters:
+ description: FileParameters are file parameters to
+ the helm template
+ items:
+ description: HelmFileParameter is a file parameter
+ that's passed to helm template during manifest
+ generation
+ properties:
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ path:
+ description: Path is the path to the file containing
+ the values for the Helm parameter
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ description: IgnoreMissingValueFiles prevents helm
+ template from failing when valueFiles do not exist
+ locally by not appending them to helm template --values
+ type: boolean
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ namespace:
+ description: Namespace is an optional namespace to
+ template with. If left empty, defaults to the app's
+ destination namespace.
+ type: string
+ parameters:
+ description: Parameters is a list of Helm parameters
+ which are passed to the helm template command upon
+ manifest generation
+ items:
+ description: HelmParameter is a parameter that's
+ passed to helm template during manifest generation
+ properties:
+ forceString:
+ description: ForceString determines whether
+ to tell Helm to interpret booleans and numbers
+ as strings
+ type: boolean
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ value:
+ description: Value is the value for the Helm
+ parameter
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ description: PassCredentials pass credentials to all
+ domains (Helm's --pass-credentials)
+ type: boolean
+ releaseName:
+ description: ReleaseName is the Helm release name
+ to use. If omitted it will use the application name
+ type: string
+ skipCrds:
+ description: SkipCrds skips custom resource definition
+ installation step (Helm's --skip-crds)
+ type: boolean
+ skipSchemaValidation:
+ description: SkipSchemaValidation skips JSON schema
+ validation (Helm's --skip-schema-validation)
+ type: boolean
+ skipTests:
+ description: SkipTests skips test manifest installation
+ step (Helm's --skip-tests).
+ type: boolean
+ valueFiles:
+ description: ValuesFiles is a list of Helm value files
+ to use when generating a template
+ items:
+ type: string
+ type: array
+ values:
+ description: Values specifies Helm values to be passed
+ to helm template, typically defined as a block.
+ ValuesObject takes precedence over Values, so use
+ one or the other.
+ type: string
+ valuesObject:
+ description: ValuesObject specifies Helm values to
+ be passed to helm template, defined as a map. This
+ takes precedence over Values.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ description: Version is the Helm version to use for
+ templating ("3")
+ type: string
+ type: object
+ kustomize:
+ description: Kustomize holds kustomize specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ description: CommonAnnotations is a list of additional
+ annotations to add to rendered manifests
+ type: object
+ commonAnnotationsEnvsubst:
+ description: CommonAnnotationsEnvsubst specifies whether
+ to apply env variables substitution for annotation
+ values
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ description: CommonLabels is a list of additional
+ labels to add to rendered manifests
+ type: object
+ components:
+ description: Components specifies a list of kustomize
+ components to add to the kustomization before building
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ description: ForceCommonAnnotations specifies whether
+ to force applying common annotations to resources
+ for Kustomize apps
+ type: boolean
+ forceCommonLabels:
+ description: ForceCommonLabels specifies whether to
+ force applying common labels to resources for Kustomize
+ apps
+ type: boolean
+ ignoreMissingComponents:
+ description: IgnoreMissingComponents prevents kustomize
+ from failing when components do not exist locally
+ by not appending them to kustomization file
+ type: boolean
+ images:
+ description: Images is a list of Kustomize image override
+ specifications
+ items:
+ description: KustomizeImage represents a Kustomize
+ image definition in the format [old_image_name=]<image_name>:<image_tag>
+ type: string
+ type: array
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ labelIncludeTemplates:
+ description: LabelIncludeTemplates specifies whether
+ to apply common labels to resource templates or
+ not
+ type: boolean
+ labelWithoutSelector:
+ description: LabelWithoutSelector specifies whether
+ to apply common labels to resource selectors or
+ not
+ type: boolean
+ namePrefix:
+ description: NamePrefix is a prefix appended to resources
+ for Kustomize apps
+ type: string
+ nameSuffix:
+ description: NameSuffix is a suffix appended to resources
+ for Kustomize apps
+ type: string
+ namespace:
+ description: Namespace sets the namespace that Kustomize
+ adds to all resources
+ type: string
+ patches:
+ description: Patches is a list of Kustomize patches
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ description: Replicas is a list of Kustomize Replicas
+ override specifications
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number of replicas
+ x-kubernetes-int-or-string: true
+ name:
+ description: Name of Deployment or StatefulSet
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ description: Version controls which version of Kustomize
+ to use for rendering manifests
+ type: string
+ type: object
+ name:
+ description: Name is used to refer to a source and is
+ displayed in the UI. It is used in multi-source Applications.
+ type: string
+ path:
+ description: Path is a directory path within the Git repository,
+ and is only valid for applications sourced from Git.
+ type: string
+ plugin:
+ description: Plugin holds config management plugin specific
+ options
+ properties:
+ env:
+ description: Env is a list of environment variable
+ entries
+ items:
+ description: EnvEntry represents an entry in the
+ application's environment
+ properties:
+ name:
+ description: Name is the name of the variable,
+ usually expressed in uppercase
+ type: string
+ value:
+ description: Value is the value of the variable
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ description: Array is the value of an array
+ type parameter.
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ description: Map is the value of a map type
+ parameter.
+ type: object
+ name:
+ description: Name is the name identifying a
+ parameter.
+ type: string
+ string:
+ description: String_ is the value of a string
+ type parameter.
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ description: Ref is reference to another source within
+ sources field. This field will not be used if used with
+ a `source` tag.
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the repository (Git
+ or Helm) that contains the application manifests
+ type: string
+ targetRevision:
+ description: |-
+ TargetRevision defines the revision of the source to sync the application to.
+ In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
+ In case of Helm, this is a semver tag for the Chart's version.
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ required:
+ - deployedAt
+ - id
+ type: object
+ type: array
+ observedAt:
+ description: |-
+ ObservedAt indicates when the application state was updated without querying latest git state
+ Deprecated: controller no longer updates ObservedAt field
+ format: date-time
+ type: string
+ operationState:
+ description: OperationState contains information about any ongoing
+ operations, such as a sync
+ properties:
+ finishedAt:
+ description: FinishedAt contains time of operation completion
+ format: date-time
+ type: string
+ message:
+ description: Message holds any pertinent messages when attempting
+ to perform operation (typically errors).
+ type: string
+ operation:
+ description: Operation is the original requested operation
+ properties:
+ info:
+ description: Info is a list of informational items for this
+ operation
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ initiatedBy:
+ description: InitiatedBy contains information about who initiated
+ the operations
+ properties:
+ automated:
+ description: Automated is set to true if operation was
+ initiated automatically by the application controller.
+ type: boolean
+ username:
+ description: Username contains the name of a user who
+ started operation
+ type: string
+ type: object
+ retry:
+ description: Retry controls the strategy to apply if a sync
+ fails
+ properties:
+ backoff:
+ description: Backoff controls how to backoff on subsequent
+ retries of failed syncs
+ properties:
+ duration:
+ description: Duration is the amount to back off. Default
+ unit is seconds, but could also be a duration (e.g.
+ "2m", "1h")
+ type: string
+ factor:
+ description: Factor is a factor to multiply the base
+ duration after each failed retry
+ format: int64
+ type: integer
+ maxDuration:
+ description: MaxDuration is the maximum amount of
+ time allowed for the backoff strategy
+ type: string
+ type: object
+ limit:
+ description: Limit is the maximum number of attempts for
+ retrying a failed sync. If set to 0, no retries will
+ be performed.
+ format: int64
+ type: integer
+ type: object
+ sync:
+ description: Sync contains parameters for the operation
+ properties:
+ autoHealAttemptsCount:
+ description: SelfHealAttemptsCount contains the number
+ of auto-heal attempts
+ format: int64
+ type: integer
+ dryRun:
+ description: DryRun specifies to perform a `kubectl apply
+ --dry-run` without actually performing the sync
+ type: boolean
+ manifests:
+ description: Manifests is an optional field that overrides
+ sync source with a local directory for development
+ items:
+ type: string
+ type: array
+ prune:
+ description: Prune specifies to delete resources from
+ the cluster that are no longer tracked in git
+ type: boolean
+ resources:
+ description: Resources describes which resources shall
+ be part of the sync
+ items:
+ description: SyncOperationResource contains resources
+ to sync.
+ properties:
+ group:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ type: array
+ revision:
+ description: |-
+ Revision is the revision (Git) or chart version (Helm) which to sync the application to
+ If omitted, will use the revision specified in app spec.
+ type: string
+ revisions:
+ description: |-
+ Revisions is the list of revision (Git) or chart version (Helm) which to sync each source in sources field for the application to
+ If omitted, will use the revision specified in app spec.
+ items:
+ type: string
+ type: array
+ source:
+ description: |-
+ Source overrides the source definition set in the application.
+ This is typically set in a Rollback operation and is nil during a Sync operation
+ properties:
+ chart:
+ description: Chart is a Helm chart name, and must
+ be specified for applications sourced from a Helm
+ repo.
+ type: string
+ directory:
+ description: Directory holds path/directory specific
+ options
+ properties:
+ exclude:
+ description: Exclude contains a glob pattern to
+ match paths against that should be explicitly
+ excluded from being used during manifest generation
+ type: string
+ include:
+ description: Include contains a glob pattern to
+ match paths against that should be explicitly
+ included during manifest generation
+ type: string
+ jsonnet:
+ description: Jsonnet holds options specific to
+ Jsonnet
+ properties:
+ extVars:
+ description: ExtVars is a list of Jsonnet
+ External Variables
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest
+ generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ description: Additional library search dirs
+ items:
+ type: string
+ type: array
+ tlas:
+ description: TLAS is a list of Jsonnet Top-level
+ Arguments
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest
+ generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ description: Recurse specifies whether to scan
+ a directory recursively for manifests
+ type: boolean
+ type: object
+ helm:
+ description: Helm holds helm specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ fileParameters:
+ description: FileParameters are file parameters
+ to the helm template
+ items:
+ description: HelmFileParameter is a file parameter
+ that's passed to helm template during manifest
+ generation
+ properties:
+ name:
+ description: Name is the name of the Helm
+ parameter
+ type: string
+ path:
+ description: Path is the path to the file
+ containing the values for the Helm parameter
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ description: IgnoreMissingValueFiles prevents
+ helm template from failing when valueFiles do
+ not exist locally by not appending them to helm
+ template --values
+ type: boolean
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ namespace:
+ description: Namespace is an optional namespace
+ to template with. If left empty, defaults to
+ the app's destination namespace.
+ type: string
+ parameters:
+ description: Parameters is a list of Helm parameters
+ which are passed to the helm template command
+ upon manifest generation
+ items:
+ description: HelmParameter is a parameter that's
+ passed to helm template during manifest generation
+ properties:
+ forceString:
+ description: ForceString determines whether
+ to tell Helm to interpret booleans and
+ numbers as strings
+ type: boolean
+ name:
+ description: Name is the name of the Helm
+ parameter
+ type: string
+ value:
+ description: Value is the value for the
+ Helm parameter
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ description: PassCredentials pass credentials
+ to all domains (Helm's --pass-credentials)
+ type: boolean
+ releaseName:
+ description: ReleaseName is the Helm release name
+ to use. If omitted it will use the application
+ name
+ type: string
+ skipCrds:
+ description: SkipCrds skips custom resource definition
+ installation step (Helm's --skip-crds)
+ type: boolean
+ skipSchemaValidation:
+ description: SkipSchemaValidation skips JSON schema
+ validation (Helm's --skip-schema-validation)
+ type: boolean
+ skipTests:
+ description: SkipTests skips test manifest installation
+ step (Helm's --skip-tests).
+ type: boolean
+ valueFiles:
+ description: ValuesFiles is a list of Helm value
+ files to use when generating a template
+ items:
+ type: string
+ type: array
+ values:
+ description: Values specifies Helm values to be
+ passed to helm template, typically defined as
+ a block. ValuesObject takes precedence over
+ Values, so use one or the other.
+ type: string
+ valuesObject:
+ description: ValuesObject specifies Helm values
+ to be passed to helm template, defined as a
+ map. This takes precedence over Values.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ description: Version is the Helm version to use
+ for templating ("3")
+ type: string
+ type: object
+ kustomize:
+ description: Kustomize holds kustomize specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ description: CommonAnnotations is a list of additional
+ annotations to add to rendered manifests
+ type: object
+ commonAnnotationsEnvsubst:
+ description: CommonAnnotationsEnvsubst specifies
+ whether to apply env variables substitution
+ for annotation values
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ description: CommonLabels is a list of additional
+ labels to add to rendered manifests
+ type: object
+ components:
+ description: Components specifies a list of kustomize
+ components to add to the kustomization before
+ building
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ description: ForceCommonAnnotations specifies
+ whether to force applying common annotations
+ to resources for Kustomize apps
+ type: boolean
+ forceCommonLabels:
+ description: ForceCommonLabels specifies whether
+ to force applying common labels to resources
+ for Kustomize apps
+ type: boolean
+ ignoreMissingComponents:
+ description: IgnoreMissingComponents prevents
+ kustomize from failing when components do not
+ exist locally by not appending them to kustomization
+ file
+ type: boolean
+ images:
+ description: Images is a list of Kustomize image
+ override specifications
+ items:
+ description: KustomizeImage represents a Kustomize
+ image definition in the format [old_image_name=]<image_name>:<image_tag>
+ type: string
+ type: array
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ labelIncludeTemplates:
+ description: LabelIncludeTemplates specifies whether
+ to apply common labels to resource templates
+ or not
+ type: boolean
+ labelWithoutSelector:
+ description: LabelWithoutSelector specifies whether
+ to apply common labels to resource selectors
+ or not
+ type: boolean
+ namePrefix:
+ description: NamePrefix is a prefix appended to
+ resources for Kustomize apps
+ type: string
+ nameSuffix:
+ description: NameSuffix is a suffix appended to
+ resources for Kustomize apps
+ type: string
+ namespace:
+ description: Namespace sets the namespace that
+ Kustomize adds to all resources
+ type: string
+ patches:
+ description: Patches is a list of Kustomize patches
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ description: Replicas is a list of Kustomize Replicas
+ override specifications
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number of replicas
+ x-kubernetes-int-or-string: true
+ name:
+ description: Name of Deployment or StatefulSet
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ description: Version controls which version of
+ Kustomize to use for rendering manifests
+ type: string
+ type: object
+ name:
+ description: Name is used to refer to a source and
+ is displayed in the UI. It is used in multi-source
+ Applications.
+ type: string
+ path:
+ description: Path is a directory path within the Git
+ repository, and is only valid for applications sourced
+ from Git.
+ type: string
+ plugin:
+ description: Plugin holds config management plugin
+ specific options
+ properties:
+ env:
+ description: Env is a list of environment variable
+ entries
+ items:
+ description: EnvEntry represents an entry in
+ the application's environment
+ properties:
+ name:
+ description: Name is the name of the variable,
+ usually expressed in uppercase
+ type: string
+ value:
+ description: Value is the value of the variable
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ description: Array is the value of an array
+ type parameter.
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ description: Map is the value of a map type
+ parameter.
+ type: object
+ name:
+ description: Name is the name identifying
+ a parameter.
+ type: string
+ string:
+ description: String_ is the value of a string
+ type parameter.
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ description: Ref is reference to another source within
+ sources field. This field will not be used if used
+ with a `source` tag.
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the repository
+ (Git or Helm) that contains the application manifests
+ type: string
+ targetRevision:
+ description: |-
+ TargetRevision defines the revision of the source to sync the application to.
+ In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
+ In case of Helm, this is a semver tag for the Chart's version.
+ type: string
+ required:
+ - repoURL
+ type: object
+ sources:
+ description: |-
+ Sources overrides the source definition set in the application.
+ This is typically set in a Rollback operation and is nil during a Sync operation
+ items:
+ description: ApplicationSource contains all required
+ information about the source of an application
+ properties:
+ chart:
+ description: Chart is a Helm chart name, and must
+ be specified for applications sourced from a Helm
+ repo.
+ type: string
+ directory:
+ description: Directory holds path/directory specific
+ options
+ properties:
+ exclude:
+ description: Exclude contains a glob pattern
+ to match paths against that should be explicitly
+ excluded from being used during manifest generation
+ type: string
+ include:
+ description: Include contains a glob pattern
+ to match paths against that should be explicitly
+ included during manifest generation
+ type: string
+ jsonnet:
+ description: Jsonnet holds options specific
+ to Jsonnet
+ properties:
+ extVars:
+ description: ExtVars is a list of Jsonnet
+ External Variables
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest
+ generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ description: Additional library search dirs
+ items:
+ type: string
+ type: array
+ tlas:
+ description: TLAS is a list of Jsonnet Top-level
+ Arguments
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest
+ generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ description: Recurse specifies whether to scan
+ a directory recursively for manifests
+ type: boolean
+ type: object
+ helm:
+ description: Helm holds helm specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ fileParameters:
+ description: FileParameters are file parameters
+ to the helm template
+ items:
+ description: HelmFileParameter is a file parameter
+ that's passed to helm template during manifest
+ generation
+ properties:
+ name:
+ description: Name is the name of the Helm
+ parameter
+ type: string
+ path:
+ description: Path is the path to the file
+ containing the values for the Helm parameter
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ description: IgnoreMissingValueFiles prevents
+ helm template from failing when valueFiles
+ do not exist locally by not appending them
+ to helm template --values
+ type: boolean
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ namespace:
+ description: Namespace is an optional namespace
+ to template with. If left empty, defaults
+ to the app's destination namespace.
+ type: string
+ parameters:
+ description: Parameters is a list of Helm parameters
+ which are passed to the helm template command
+ upon manifest generation
+ items:
+ description: HelmParameter is a parameter
+ that's passed to helm template during manifest
+ generation
+ properties:
+ forceString:
+ description: ForceString determines whether
+ to tell Helm to interpret booleans and
+ numbers as strings
+ type: boolean
+ name:
+ description: Name is the name of the Helm
+ parameter
+ type: string
+ value:
+ description: Value is the value for the
+ Helm parameter
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ description: PassCredentials pass credentials
+ to all domains (Helm's --pass-credentials)
+ type: boolean
+ releaseName:
+ description: ReleaseName is the Helm release
+ name to use. If omitted it will use the application
+ name
+ type: string
+ skipCrds:
+ description: SkipCrds skips custom resource
+ definition installation step (Helm's --skip-crds)
+ type: boolean
+ skipSchemaValidation:
+ description: SkipSchemaValidation skips JSON
+ schema validation (Helm's --skip-schema-validation)
+ type: boolean
+ skipTests:
+ description: SkipTests skips test manifest installation
+ step (Helm's --skip-tests).
+ type: boolean
+ valueFiles:
+ description: ValuesFiles is a list of Helm value
+ files to use when generating a template
+ items:
+ type: string
+ type: array
+ values:
+ description: Values specifies Helm values to
+ be passed to helm template, typically defined
+ as a block. ValuesObject takes precedence
+ over Values, so use one or the other.
+ type: string
+ valuesObject:
+ description: ValuesObject specifies Helm values
+ to be passed to helm template, defined as
+ a map. This takes precedence over Values.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ description: Version is the Helm version to
+ use for templating ("3")
+ type: string
+ type: object
+ kustomize:
+ description: Kustomize holds kustomize specific
+ options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ description: CommonAnnotations is a list of
+ additional annotations to add to rendered
+ manifests
+ type: object
+ commonAnnotationsEnvsubst:
+ description: CommonAnnotationsEnvsubst specifies
+ whether to apply env variables substitution
+ for annotation values
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ description: CommonLabels is a list of additional
+ labels to add to rendered manifests
+ type: object
+ components:
+ description: Components specifies a list of
+ kustomize components to add to the kustomization
+ before building
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ description: ForceCommonAnnotations specifies
+ whether to force applying common annotations
+ to resources for Kustomize apps
+ type: boolean
+ forceCommonLabels:
+ description: ForceCommonLabels specifies whether
+ to force applying common labels to resources
+ for Kustomize apps
+ type: boolean
+ ignoreMissingComponents:
+ description: IgnoreMissingComponents prevents
+ kustomize from failing when components do
+ not exist locally by not appending them to
+ kustomization file
+ type: boolean
+ images:
+ description: Images is a list of Kustomize image
+ override specifications
+ items:
+ description: KustomizeImage represents a Kustomize
+ image definition in the format [old_image_name=]<image_name>:<image_tag>
+ type: string
+ type: array
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ labelIncludeTemplates:
+ description: LabelIncludeTemplates specifies
+ whether to apply common labels to resource
+ templates or not
+ type: boolean
+ labelWithoutSelector:
+ description: LabelWithoutSelector specifies
+ whether to apply common labels to resource
+ selectors or not
+ type: boolean
+ namePrefix:
+ description: NamePrefix is a prefix appended
+ to resources for Kustomize apps
+ type: string
+ nameSuffix:
+ description: NameSuffix is a suffix appended
+ to resources for Kustomize apps
+ type: string
+ namespace:
+ description: Namespace sets the namespace that
+ Kustomize adds to all resources
+ type: string
+ patches:
+ description: Patches is a list of Kustomize
+ patches
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ description: Replicas is a list of Kustomize
+ Replicas override specifications
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number of replicas
+ x-kubernetes-int-or-string: true
+ name:
+ description: Name of Deployment or StatefulSet
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ description: Version controls which version
+ of Kustomize to use for rendering manifests
+ type: string
+ type: object
+ name:
+ description: Name is used to refer to a source and
+ is displayed in the UI. It is used in multi-source
+ Applications.
+ type: string
+ path:
+ description: Path is a directory path within the
+ Git repository, and is only valid for applications
+ sourced from Git.
+ type: string
+ plugin:
+ description: Plugin holds config management plugin
+ specific options
+ properties:
+ env:
+ description: Env is a list of environment variable
+ entries
+ items:
+ description: EnvEntry represents an entry
+ in the application's environment
+ properties:
+ name:
+ description: Name is the name of the variable,
+ usually expressed in uppercase
+ type: string
+ value:
+ description: Value is the value of the
+ variable
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ description: Array is the value of an
+ array type parameter.
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ description: Map is the value of a map
+ type parameter.
+ type: object
+ name:
+ description: Name is the name identifying
+ a parameter.
+ type: string
+ string:
+ description: String_ is the value of a
+ string type parameter.
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ description: Ref is reference to another source
+ within sources field. This field will not be used
+ if used with a `source` tag.
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the repository
+ (Git or Helm) that contains the application manifests
+ type: string
+ targetRevision:
+ description: |-
+ TargetRevision defines the revision of the source to sync the application to.
+ In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
+ In case of Helm, this is a semver tag for the Chart's version.
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncOptions:
+ description: SyncOptions provide per-sync sync-options,
+ e.g. Validate=false
+ items:
+ type: string
+ type: array
+ syncStrategy:
+ description: SyncStrategy describes how to perform the
+ sync
+ properties:
+ apply:
+ description: Apply will perform a `kubectl apply`
+ to perform the sync.
+ properties:
+ force:
+ description: |-
+ Force indicates whether or not to supply the --force flag to `kubectl apply`.
+ The --force flag deletes and re-create the resource, when PATCH encounters conflict and has
+ retried for 5 times.
+ type: boolean
+ type: object
+ hook:
+ description: Hook will submit any referenced resources
+ to perform the sync. This is the default strategy
+ properties:
+ force:
+ description: |-
+ Force indicates whether or not to supply the --force flag to `kubectl apply`.
+ The --force flag deletes and re-create the resource, when PATCH encounters conflict and has
+ retried for 5 times.
+ type: boolean
+ type: object
+ type: object
+ type: object
+ type: object
+ phase:
+ description: Phase is the current phase of the operation
+ type: string
+ retryCount:
+ description: RetryCount contains time of operation retries
+ format: int64
+ type: integer
+ startedAt:
+ description: StartedAt contains time of operation start
+ format: date-time
+ type: string
+ syncResult:
+ description: SyncResult is the result of a Sync operation
+ properties:
+ managedNamespaceMetadata:
+ description: ManagedNamespaceMetadata contains the current
+ sync state of managed namespace metadata
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ resources:
+ description: Resources contains a list of sync result items
+ for each individual resource in a sync operation
+ items:
+ description: ResourceResult holds the operation result details
+ of a specific resource
+ properties:
+ group:
+ description: Group specifies the API group of the resource
+ type: string
+ hookPhase:
+ description: |-
+ HookPhase contains the state of any operation associated with this resource OR hook
+ This can also contain values for non-hook resources.
+ type: string
+ hookType:
+ description: HookType specifies the type of the hook.
+ Empty for non-hook resources
+ type: string
+ images:
+ description: Images contains the images related to the
+ ResourceResult
+ items:
+ type: string
+ type: array
+ kind:
+ description: Kind specifies the API kind of the resource
+ type: string
+ message:
+ description: Message contains an informational or error
+ message for the last sync OR operation
+ type: string
+ name:
+ description: Name specifies the name of the resource
+ type: string
+ namespace:
+ description: Namespace specifies the target namespace
+ of the resource
+ type: string
+ status:
+ description: Status holds the final result of the sync.
+ Will be empty if the resources is yet to be applied/pruned
+ and is always zero-value for hooks
+ type: string
+ syncPhase:
+ description: SyncPhase indicates the particular phase
+ of the sync that this result was acquired in
+ type: string
+ version:
+ description: Version specifies the API version of the
+ resource
+ type: string
+ required:
+ - group
+ - kind
+ - name
+ - namespace
+ - version
+ type: object
+ type: array
+ revision:
+ description: Revision holds the revision this sync operation
+ was performed to
+ type: string
+ revisions:
+ description: Revisions holds the revision this sync operation
+ was performed for respective indexed source in sources field
+ items:
+ type: string
+ type: array
+ source:
+ description: Source records the application source information
+ of the sync, used for comparing auto-sync
+ properties:
+ chart:
+ description: Chart is a Helm chart name, and must be specified
+ for applications sourced from a Helm repo.
+ type: string
+ directory:
+ description: Directory holds path/directory specific options
+ properties:
+ exclude:
+ description: Exclude contains a glob pattern to match
+ paths against that should be explicitly excluded
+ from being used during manifest generation
+ type: string
+ include:
+ description: Include contains a glob pattern to match
+ paths against that should be explicitly included
+ during manifest generation
+ type: string
+ jsonnet:
+ description: Jsonnet holds options specific to Jsonnet
+ properties:
+ extVars:
+ description: ExtVars is a list of Jsonnet External
+ Variables
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ description: Additional library search dirs
+ items:
+ type: string
+ type: array
+ tlas:
+ description: TLAS is a list of Jsonnet Top-level
+ Arguments
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ description: Recurse specifies whether to scan a directory
+ recursively for manifests
+ type: boolean
+ type: object
+ helm:
+ description: Helm holds helm specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ fileParameters:
+ description: FileParameters are file parameters to
+ the helm template
+ items:
+ description: HelmFileParameter is a file parameter
+ that's passed to helm template during manifest
+ generation
+ properties:
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ path:
+ description: Path is the path to the file containing
+ the values for the Helm parameter
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ description: IgnoreMissingValueFiles prevents helm
+ template from failing when valueFiles do not exist
+ locally by not appending them to helm template --values
+ type: boolean
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ namespace:
+ description: Namespace is an optional namespace to
+ template with. If left empty, defaults to the app's
+ destination namespace.
+ type: string
+ parameters:
+ description: Parameters is a list of Helm parameters
+ which are passed to the helm template command upon
+ manifest generation
+ items:
+ description: HelmParameter is a parameter that's
+ passed to helm template during manifest generation
+ properties:
+ forceString:
+ description: ForceString determines whether
+ to tell Helm to interpret booleans and numbers
+ as strings
+ type: boolean
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ value:
+ description: Value is the value for the Helm
+ parameter
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ description: PassCredentials pass credentials to all
+ domains (Helm's --pass-credentials)
+ type: boolean
+ releaseName:
+ description: ReleaseName is the Helm release name
+ to use. If omitted it will use the application name
+ type: string
+ skipCrds:
+ description: SkipCrds skips custom resource definition
+ installation step (Helm's --skip-crds)
+ type: boolean
+ skipSchemaValidation:
+ description: SkipSchemaValidation skips JSON schema
+ validation (Helm's --skip-schema-validation)
+ type: boolean
+ skipTests:
+ description: SkipTests skips test manifest installation
+ step (Helm's --skip-tests).
+ type: boolean
+ valueFiles:
+ description: ValuesFiles is a list of Helm value files
+ to use when generating a template
+ items:
+ type: string
+ type: array
+ values:
+ description: Values specifies Helm values to be passed
+ to helm template, typically defined as a block.
+ ValuesObject takes precedence over Values, so use
+ one or the other.
+ type: string
+ valuesObject:
+ description: ValuesObject specifies Helm values to
+ be passed to helm template, defined as a map. This
+ takes precedence over Values.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ description: Version is the Helm version to use for
+ templating ("3")
+ type: string
+ type: object
+ kustomize:
+ description: Kustomize holds kustomize specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ description: CommonAnnotations is a list of additional
+ annotations to add to rendered manifests
+ type: object
+ commonAnnotationsEnvsubst:
+ description: CommonAnnotationsEnvsubst specifies whether
+ to apply env variables substitution for annotation
+ values
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ description: CommonLabels is a list of additional
+ labels to add to rendered manifests
+ type: object
+ components:
+ description: Components specifies a list of kustomize
+ components to add to the kustomization before building
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ description: ForceCommonAnnotations specifies whether
+ to force applying common annotations to resources
+ for Kustomize apps
+ type: boolean
+ forceCommonLabels:
+ description: ForceCommonLabels specifies whether to
+ force applying common labels to resources for Kustomize
+ apps
+ type: boolean
+ ignoreMissingComponents:
+ description: IgnoreMissingComponents prevents kustomize
+ from failing when components do not exist locally
+ by not appending them to kustomization file
+ type: boolean
+ images:
+ description: Images is a list of Kustomize image override
+ specifications
+ items:
+ description: KustomizeImage represents a Kustomize
+ image definition in the format [old_image_name=]<image_name>:<image_tag>
+ type: string
+ type: array
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ labelIncludeTemplates:
+ description: LabelIncludeTemplates specifies whether
+ to apply common labels to resource templates or
+ not
+ type: boolean
+ labelWithoutSelector:
+ description: LabelWithoutSelector specifies whether
+ to apply common labels to resource selectors or
+ not
+ type: boolean
+ namePrefix:
+ description: NamePrefix is a prefix appended to resources
+ for Kustomize apps
+ type: string
+ nameSuffix:
+ description: NameSuffix is a suffix appended to resources
+ for Kustomize apps
+ type: string
+ namespace:
+ description: Namespace sets the namespace that Kustomize
+ adds to all resources
+ type: string
+ patches:
+ description: Patches is a list of Kustomize patches
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ description: Replicas is a list of Kustomize Replicas
+ override specifications
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number of replicas
+ x-kubernetes-int-or-string: true
+ name:
+ description: Name of Deployment or StatefulSet
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ description: Version controls which version of Kustomize
+ to use for rendering manifests
+ type: string
+ type: object
+ name:
+ description: Name is used to refer to a source and is
+ displayed in the UI. It is used in multi-source Applications.
+ type: string
+ path:
+ description: Path is a directory path within the Git repository,
+ and is only valid for applications sourced from Git.
+ type: string
+ plugin:
+ description: Plugin holds config management plugin specific
+ options
+ properties:
+ env:
+ description: Env is a list of environment variable
+ entries
+ items:
+ description: EnvEntry represents an entry in the
+ application's environment
+ properties:
+ name:
+ description: Name is the name of the variable,
+ usually expressed in uppercase
+ type: string
+ value:
+ description: Value is the value of the variable
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ description: Array is the value of an array
+ type parameter.
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ description: Map is the value of a map type
+ parameter.
+ type: object
+ name:
+ description: Name is the name identifying a
+ parameter.
+ type: string
+ string:
+ description: String_ is the value of a string
+ type parameter.
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ description: Ref is reference to another source within
+ sources field. This field will not be used if used with
+ a `source` tag.
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the repository (Git
+ or Helm) that contains the application manifests
+ type: string
+ targetRevision:
+ description: |-
+ TargetRevision defines the revision of the source to sync the application to.
+ In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
+ In case of Helm, this is a semver tag for the Chart's version.
+ type: string
+ required:
+ - repoURL
+ type: object
+ sources:
+ description: Source records the application source information
+ of the sync, used for comparing auto-sync
+ items:
+ description: ApplicationSource contains all required information
+ about the source of an application
+ properties:
+ chart:
+ description: Chart is a Helm chart name, and must be
+ specified for applications sourced from a Helm repo.
+ type: string
+ directory:
+ description: Directory holds path/directory specific
+ options
+ properties:
+ exclude:
+ description: Exclude contains a glob pattern to
+ match paths against that should be explicitly
+ excluded from being used during manifest generation
+ type: string
+ include:
+ description: Include contains a glob pattern to
+ match paths against that should be explicitly
+ included during manifest generation
+ type: string
+ jsonnet:
+ description: Jsonnet holds options specific to Jsonnet
+ properties:
+ extVars:
+ description: ExtVars is a list of Jsonnet External
+ Variables
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest
+ generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ description: Additional library search dirs
+ items:
+ type: string
+ type: array
+ tlas:
+ description: TLAS is a list of Jsonnet Top-level
+ Arguments
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest
+ generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ description: Recurse specifies whether to scan a
+ directory recursively for manifests
+ type: boolean
+ type: object
+ helm:
+ description: Helm holds helm specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ fileParameters:
+ description: FileParameters are file parameters
+ to the helm template
+ items:
+ description: HelmFileParameter is a file parameter
+ that's passed to helm template during manifest
+ generation
+ properties:
+ name:
+ description: Name is the name of the Helm
+ parameter
+ type: string
+ path:
+ description: Path is the path to the file
+ containing the values for the Helm parameter
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ description: IgnoreMissingValueFiles prevents helm
+ template from failing when valueFiles do not exist
+ locally by not appending them to helm template
+ --values
+ type: boolean
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ namespace:
+ description: Namespace is an optional namespace
+ to template with. If left empty, defaults to the
+ app's destination namespace.
+ type: string
+ parameters:
+ description: Parameters is a list of Helm parameters
+ which are passed to the helm template command
+ upon manifest generation
+ items:
+ description: HelmParameter is a parameter that's
+ passed to helm template during manifest generation
+ properties:
+ forceString:
+ description: ForceString determines whether
+ to tell Helm to interpret booleans and numbers
+ as strings
+ type: boolean
+ name:
+ description: Name is the name of the Helm
+ parameter
+ type: string
+ value:
+ description: Value is the value for the Helm
+ parameter
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ description: PassCredentials pass credentials to
+ all domains (Helm's --pass-credentials)
+ type: boolean
+ releaseName:
+ description: ReleaseName is the Helm release name
+ to use. If omitted it will use the application
+ name
+ type: string
+ skipCrds:
+ description: SkipCrds skips custom resource definition
+ installation step (Helm's --skip-crds)
+ type: boolean
+ skipSchemaValidation:
+ description: SkipSchemaValidation skips JSON schema
+ validation (Helm's --skip-schema-validation)
+ type: boolean
+ skipTests:
+ description: SkipTests skips test manifest installation
+ step (Helm's --skip-tests).
+ type: boolean
+ valueFiles:
+ description: ValuesFiles is a list of Helm value
+ files to use when generating a template
+ items:
+ type: string
+ type: array
+ values:
+ description: Values specifies Helm values to be
+ passed to helm template, typically defined as
+ a block. ValuesObject takes precedence over Values,
+ so use one or the other.
+ type: string
+ valuesObject:
+ description: ValuesObject specifies Helm values
+ to be passed to helm template, defined as a map.
+ This takes precedence over Values.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ description: Version is the Helm version to use
+ for templating ("3")
+ type: string
+ type: object
+ kustomize:
+ description: Kustomize holds kustomize specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ description: CommonAnnotations is a list of additional
+ annotations to add to rendered manifests
+ type: object
+ commonAnnotationsEnvsubst:
+ description: CommonAnnotationsEnvsubst specifies
+ whether to apply env variables substitution for
+ annotation values
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ description: CommonLabels is a list of additional
+ labels to add to rendered manifests
+ type: object
+ components:
+ description: Components specifies a list of kustomize
+ components to add to the kustomization before
+ building
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ description: ForceCommonAnnotations specifies whether
+ to force applying common annotations to resources
+ for Kustomize apps
+ type: boolean
+ forceCommonLabels:
+ description: ForceCommonLabels specifies whether
+ to force applying common labels to resources for
+ Kustomize apps
+ type: boolean
+ ignoreMissingComponents:
+ description: IgnoreMissingComponents prevents kustomize
+ from failing when components do not exist locally
+ by not appending them to kustomization file
+ type: boolean
+ images:
+ description: Images is a list of Kustomize image
+ override specifications
+ items:
+ description: KustomizeImage represents a Kustomize
+ image definition in the format [old_image_name=]<image_name>:<image_tag>
+ type: string
+ type: array
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ labelIncludeTemplates:
+ description: LabelIncludeTemplates specifies whether
+ to apply common labels to resource templates or
+ not
+ type: boolean
+ labelWithoutSelector:
+ description: LabelWithoutSelector specifies whether
+ to apply common labels to resource selectors or
+ not
+ type: boolean
+ namePrefix:
+ description: NamePrefix is a prefix appended to
+ resources for Kustomize apps
+ type: string
+ nameSuffix:
+ description: NameSuffix is a suffix appended to
+ resources for Kustomize apps
+ type: string
+ namespace:
+ description: Namespace sets the namespace that Kustomize
+ adds to all resources
+ type: string
+ patches:
+ description: Patches is a list of Kustomize patches
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ description: Replicas is a list of Kustomize Replicas
+ override specifications
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number of replicas
+ x-kubernetes-int-or-string: true
+ name:
+ description: Name of Deployment or StatefulSet
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ description: Version controls which version of Kustomize
+ to use for rendering manifests
+ type: string
+ type: object
+ name:
+ description: Name is used to refer to a source and is
+ displayed in the UI. It is used in multi-source Applications.
+ type: string
+ path:
+ description: Path is a directory path within the Git
+ repository, and is only valid for applications sourced
+ from Git.
+ type: string
+ plugin:
+ description: Plugin holds config management plugin specific
+ options
+ properties:
+ env:
+ description: Env is a list of environment variable
+ entries
+ items:
+ description: EnvEntry represents an entry in the
+ application's environment
+ properties:
+ name:
+ description: Name is the name of the variable,
+ usually expressed in uppercase
+ type: string
+ value:
+ description: Value is the value of the variable
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ description: Array is the value of an array
+ type parameter.
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ description: Map is the value of a map type
+ parameter.
+ type: object
+ name:
+ description: Name is the name identifying
+ a parameter.
+ type: string
+ string:
+ description: String_ is the value of a string
+ type parameter.
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ description: Ref is reference to another source within
+ sources field. This field will not be used if used
+ with a `source` tag.
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the repository (Git
+ or Helm) that contains the application manifests
+ type: string
+ targetRevision:
+ description: |-
+ TargetRevision defines the revision of the source to sync the application to.
+ In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
+ In case of Helm, this is a semver tag for the Chart's version.
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ required:
+ - revision
+ type: object
+ required:
+ - operation
+ - phase
+ - startedAt
+ type: object
+ reconciledAt:
+ description: ReconciledAt indicates when the application state was
+ reconciled using the latest git version
+ format: date-time
+ type: string
+ resourceHealthSource:
+ description: 'ResourceHealthSource indicates where the resource health
+ status is stored: inline if not set or appTree'
+ type: string
+ resources:
+ description: Resources is a list of Kubernetes resources managed by
+ this application
+ items:
+ description: ResourceStatus holds the current synchronization and
+ health status of a Kubernetes resource.
+ properties:
+ group:
+ description: Group represents the API group of the resource
+ (e.g., "apps" for Deployments).
+ type: string
+ health:
+ description: Health indicates the health status of the resource
+ (e.g., Healthy, Degraded, Progressing).
+ properties:
+ lastTransitionTime:
+ description: |-
+ LastTransitionTime is the time the HealthStatus was set or updated
+
+ Deprecated: this field is not used and will be removed in a future release.
+ format: date-time
+ type: string
+ message:
+ description: Message is a human-readable informational message
+ describing the health status
+ type: string
+ status:
+ description: Status holds the status code of the resource
+ type: string
+ type: object
+ hook:
+ description: Hook is true if the resource is used as a lifecycle
+ hook in an Argo CD application.
+ type: boolean
+ kind:
+ description: Kind specifies the type of the resource (e.g.,
+ "Deployment", "Service").
+ type: string
+ name:
+ description: Name is the unique name of the resource within
+ the namespace.
+ type: string
+ namespace:
+ description: Namespace defines the Kubernetes namespace where
+ the resource is located.
+ type: string
+ requiresDeletionConfirmation:
+ description: RequiresDeletionConfirmation is true if the resource
+ requires explicit user confirmation before deletion.
+ type: boolean
+ requiresPruning:
+ description: RequiresPruning is true if the resource needs to
+ be pruned (deleted) as part of synchronization.
+ type: boolean
+ status:
+ description: Status represents the synchronization state of
+ the resource (e.g., Synced, OutOfSync).
+ type: string
+ syncWave:
+ description: |-
+ SyncWave determines the order in which resources are applied during a sync operation.
+ Lower values are applied first.
+ format: int64
+ type: integer
+ version:
+ description: Version indicates the API version of the resource
+ (e.g., "v1", "v1beta1").
+ type: string
+ type: object
+ type: array
+ sourceHydrator:
+ description: SourceHydrator stores information about the current state
+ of source hydration
+ properties:
+ currentOperation:
+ description: CurrentOperation holds the status of the hydrate
+ operation
+ properties:
+ drySHA:
+ description: DrySHA holds the resolved revision (sha) of the
+ dry source as of the most recent reconciliation
+ type: string
+ finishedAt:
+ description: FinishedAt indicates when the hydrate operation
+ finished
+ format: date-time
+ type: string
+ hydratedSHA:
+ description: HydratedSHA holds the resolved revision (sha)
+ of the hydrated source as of the most recent reconciliation
+ type: string
+ message:
+ description: Message contains a message describing the current
+ status of the hydrate operation
+ type: string
+ phase:
+ description: Phase indicates the status of the hydrate operation
+ enum:
+ - Hydrating
+ - Failed
+ - Hydrated
+ type: string
+ sourceHydrator:
+ description: SourceHydrator holds the hydrator config used
+ for the hydrate operation
+ properties:
+ drySource:
+ description: DrySource specifies where the dry "don't
+ repeat yourself" manifest source lives.
+ properties:
+ path:
+ description: Path is a directory path within the Git
+ repository where the manifests are located
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the git repository
+ that contains the application manifests
+ type: string
+ targetRevision:
+ description: TargetRevision defines the revision of
+ the source to hydrate
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ description: |-
+ HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
+ have to move manifests to the SyncSource, e.g. by pull request.
+ properties:
+ targetBranch:
+ description: TargetBranch is the branch to which hydrated
+ manifests should be committed
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ description: SyncSource specifies where to sync hydrated
+ manifests from.
+ properties:
+ path:
+ description: |-
+ Path is a directory path within the git repository where hydrated manifests should be committed to and synced
+ from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.
+ type: string
+ targetBranch:
+ description: TargetBranch is the branch to which hydrated
+ manifests should be committed
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ startedAt:
+ description: StartedAt indicates when the hydrate operation
+ started
+ format: date-time
+ type: string
+ required:
+ - message
+ - phase
+ type: object
+ lastSuccessfulOperation:
+ description: LastSuccessfulOperation holds info about the most
+ recent successful hydration
+ properties:
+ drySHA:
+ description: DrySHA holds the resolved revision (sha) of the
+ dry source as of the most recent reconciliation
+ type: string
+ hydratedSHA:
+ description: HydratedSHA holds the resolved revision (sha)
+ of the hydrated source as of the most recent reconciliation
+ type: string
+ sourceHydrator:
+ description: SourceHydrator holds the hydrator config used
+ for the hydrate operation
+ properties:
+ drySource:
+ description: DrySource specifies where the dry "don't
+ repeat yourself" manifest source lives.
+ properties:
+ path:
+ description: Path is a directory path within the Git
+ repository where the manifests are located
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the git repository
+ that contains the application manifests
+ type: string
+ targetRevision:
+ description: TargetRevision defines the revision of
+ the source to hydrate
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ description: |-
+ HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
+ have to move manifests to the SyncSource, e.g. by pull request.
+ properties:
+ targetBranch:
+ description: TargetBranch is the branch to which hydrated
+ manifests should be committed
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ description: SyncSource specifies where to sync hydrated
+ manifests from.
+ properties:
+ path:
+ description: |-
+ Path is a directory path within the git repository where hydrated manifests should be committed to and synced
+ from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.
+ type: string
+ targetBranch:
+ description: TargetBranch is the branch to which hydrated
+ manifests should be committed
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ type: object
+ type: object
+ sourceType:
+ description: SourceType specifies the type of this application
+ type: string
+ sourceTypes:
+ description: SourceTypes specifies the type of the sources included
+ in the application
+ items:
+ description: ApplicationSourceType specifies the type of the application's
+ source
+ type: string
+ type: array
+ summary:
+ description: Summary contains a list of URLs and container images
+ used by this application
+ properties:
+ externalURLs:
+ description: ExternalURLs holds all external URLs of application
+ child resources.
+ items:
+ type: string
+ type: array
+ images:
+ description: Images holds all images of application child resources.
+ items:
+ type: string
+ type: array
+ type: object
+ sync:
+ description: Sync contains information about the application's current
+ sync status
+ properties:
+ comparedTo:
+ description: ComparedTo contains information about what has been
+ compared
+ properties:
+ destination:
+ description: Destination is a reference to the application's
+ destination used for comparison
+ properties:
+ name:
+ description: Name is an alternate way of specifying the
+ target cluster by its symbolic name. This must be set
+ if Server is not set.
+ type: string
+ namespace:
+ description: |-
+ Namespace specifies the target namespace for the application's resources.
+ The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace
+ type: string
+ server:
+ description: Server specifies the URL of the target cluster's
+ Kubernetes control plane API. This must be set if Name
+ is not set.
+ type: string
+ type: object
+ ignoreDifferences:
+ description: IgnoreDifferences is a reference to the application's
+ ignored differences used for comparison
+ items:
+ description: ResourceIgnoreDifferences contains resource
+ filter and list of json paths which should be ignored
+ during comparison with live state.
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ description: |-
+ ManagedFieldsManagers is a list of trusted managers. Fields mutated by those managers will take precedence over the
+ desired state defined in the SCM and won't be displayed in diffs
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ source:
+ description: Source is a reference to the application's source
+ used for comparison
+ properties:
+ chart:
+ description: Chart is a Helm chart name, and must be specified
+ for applications sourced from a Helm repo.
+ type: string
+ directory:
+ description: Directory holds path/directory specific options
+ properties:
+ exclude:
+ description: Exclude contains a glob pattern to match
+ paths against that should be explicitly excluded
+ from being used during manifest generation
+ type: string
+ include:
+ description: Include contains a glob pattern to match
+ paths against that should be explicitly included
+ during manifest generation
+ type: string
+ jsonnet:
+ description: Jsonnet holds options specific to Jsonnet
+ properties:
+ extVars:
+ description: ExtVars is a list of Jsonnet External
+ Variables
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ description: Additional library search dirs
+ items:
+ type: string
+ type: array
+ tlas:
+ description: TLAS is a list of Jsonnet Top-level
+ Arguments
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ description: Recurse specifies whether to scan a directory
+ recursively for manifests
+ type: boolean
+ type: object
+ helm:
+ description: Helm holds helm specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ fileParameters:
+ description: FileParameters are file parameters to
+ the helm template
+ items:
+ description: HelmFileParameter is a file parameter
+ that's passed to helm template during manifest
+ generation
+ properties:
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ path:
+ description: Path is the path to the file containing
+ the values for the Helm parameter
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ description: IgnoreMissingValueFiles prevents helm
+ template from failing when valueFiles do not exist
+ locally by not appending them to helm template --values
+ type: boolean
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ namespace:
+ description: Namespace is an optional namespace to
+ template with. If left empty, defaults to the app's
+ destination namespace.
+ type: string
+ parameters:
+ description: Parameters is a list of Helm parameters
+ which are passed to the helm template command upon
+ manifest generation
+ items:
+ description: HelmParameter is a parameter that's
+ passed to helm template during manifest generation
+ properties:
+ forceString:
+ description: ForceString determines whether
+ to tell Helm to interpret booleans and numbers
+ as strings
+ type: boolean
+ name:
+ description: Name is the name of the Helm parameter
+ type: string
+ value:
+ description: Value is the value for the Helm
+ parameter
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ description: PassCredentials pass credentials to all
+ domains (Helm's --pass-credentials)
+ type: boolean
+ releaseName:
+ description: ReleaseName is the Helm release name
+ to use. If omitted it will use the application name
+ type: string
+ skipCrds:
+ description: SkipCrds skips custom resource definition
+ installation step (Helm's --skip-crds)
+ type: boolean
+ skipSchemaValidation:
+ description: SkipSchemaValidation skips JSON schema
+ validation (Helm's --skip-schema-validation)
+ type: boolean
+ skipTests:
+ description: SkipTests skips test manifest installation
+ step (Helm's --skip-tests).
+ type: boolean
+ valueFiles:
+ description: ValuesFiles is a list of Helm value files
+ to use when generating a template
+ items:
+ type: string
+ type: array
+ values:
+ description: Values specifies Helm values to be passed
+ to helm template, typically defined as a block.
+ ValuesObject takes precedence over Values, so use
+ one or the other.
+ type: string
+ valuesObject:
+ description: ValuesObject specifies Helm values to
+ be passed to helm template, defined as a map. This
+ takes precedence over Values.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ description: Version is the Helm version to use for
+ templating ("3")
+ type: string
+ type: object
+ kustomize:
+ description: Kustomize holds kustomize specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ description: CommonAnnotations is a list of additional
+ annotations to add to rendered manifests
+ type: object
+ commonAnnotationsEnvsubst:
+ description: CommonAnnotationsEnvsubst specifies whether
+ to apply env variables substitution for annotation
+ values
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ description: CommonLabels is a list of additional
+ labels to add to rendered manifests
+ type: object
+ components:
+ description: Components specifies a list of kustomize
+ components to add to the kustomization before building
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ description: ForceCommonAnnotations specifies whether
+ to force applying common annotations to resources
+ for Kustomize apps
+ type: boolean
+ forceCommonLabels:
+ description: ForceCommonLabels specifies whether to
+ force applying common labels to resources for Kustomize
+ apps
+ type: boolean
+ ignoreMissingComponents:
+ description: IgnoreMissingComponents prevents kustomize
+ from failing when components do not exist locally
+ by not appending them to kustomization file
+ type: boolean
+ images:
+ description: Images is a list of Kustomize image override
+ specifications
+ items:
+ description: KustomizeImage represents a Kustomize
+ image definition in the format [old_image_name=]<image_name>:<image_tag>
+ type: string
+ type: array
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ labelIncludeTemplates:
+ description: LabelIncludeTemplates specifies whether
+ to apply common labels to resource templates or
+ not
+ type: boolean
+ labelWithoutSelector:
+ description: LabelWithoutSelector specifies whether
+ to apply common labels to resource selectors or
+ not
+ type: boolean
+ namePrefix:
+ description: NamePrefix is a prefix appended to resources
+ for Kustomize apps
+ type: string
+ nameSuffix:
+ description: NameSuffix is a suffix appended to resources
+ for Kustomize apps
+ type: string
+ namespace:
+ description: Namespace sets the namespace that Kustomize
+ adds to all resources
+ type: string
+ patches:
+ description: Patches is a list of Kustomize patches
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ description: Replicas is a list of Kustomize Replicas
+ override specifications
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number of replicas
+ x-kubernetes-int-or-string: true
+ name:
+ description: Name of Deployment or StatefulSet
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ description: Version controls which version of Kustomize
+ to use for rendering manifests
+ type: string
+ type: object
+ name:
+ description: Name is used to refer to a source and is
+ displayed in the UI. It is used in multi-source Applications.
+ type: string
+ path:
+ description: Path is a directory path within the Git repository,
+ and is only valid for applications sourced from Git.
+ type: string
+ plugin:
+ description: Plugin holds config management plugin specific
+ options
+ properties:
+ env:
+ description: Env is a list of environment variable
+ entries
+ items:
+ description: EnvEntry represents an entry in the
+ application's environment
+ properties:
+ name:
+ description: Name is the name of the variable,
+ usually expressed in uppercase
+ type: string
+ value:
+ description: Value is the value of the variable
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ description: Array is the value of an array
+ type parameter.
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ description: Map is the value of a map type
+ parameter.
+ type: object
+ name:
+ description: Name is the name identifying a
+ parameter.
+ type: string
+ string:
+ description: String_ is the value of a string
+ type parameter.
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ description: Ref is reference to another source within
+ sources field. This field will not be used if used with
+ a `source` tag.
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the repository (Git
+ or Helm) that contains the application manifests
+ type: string
+ targetRevision:
+ description: |-
+ TargetRevision defines the revision of the source to sync the application to.
+ In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
+ In case of Helm, this is a semver tag for the Chart's version.
+ type: string
+ required:
+ - repoURL
+ type: object
+ sources:
+ description: Sources is a reference to the application's multiple
+ sources used for comparison
+ items:
+ description: ApplicationSource contains all required information
+ about the source of an application
+ properties:
+ chart:
+ description: Chart is a Helm chart name, and must be
+ specified for applications sourced from a Helm repo.
+ type: string
+ directory:
+ description: Directory holds path/directory specific
+ options
+ properties:
+ exclude:
+ description: Exclude contains a glob pattern to
+ match paths against that should be explicitly
+ excluded from being used during manifest generation
+ type: string
+ include:
+ description: Include contains a glob pattern to
+ match paths against that should be explicitly
+ included during manifest generation
+ type: string
+ jsonnet:
+ description: Jsonnet holds options specific to Jsonnet
+ properties:
+ extVars:
+ description: ExtVars is a list of Jsonnet External
+ Variables
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest
+ generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ description: Additional library search dirs
+ items:
+ type: string
+ type: array
+ tlas:
+ description: TLAS is a list of Jsonnet Top-level
+ Arguments
+ items:
+ description: JsonnetVar represents a variable
+ to be passed to jsonnet during manifest
+ generation
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ description: Recurse specifies whether to scan a
+ directory recursively for manifests
+ type: boolean
+ type: object
+ helm:
+ description: Helm holds helm specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ fileParameters:
+ description: FileParameters are file parameters
+ to the helm template
+ items:
+ description: HelmFileParameter is a file parameter
+ that's passed to helm template during manifest
+ generation
+ properties:
+ name:
+ description: Name is the name of the Helm
+ parameter
+ type: string
+ path:
+ description: Path is the path to the file
+ containing the values for the Helm parameter
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ description: IgnoreMissingValueFiles prevents helm
+ template from failing when valueFiles do not exist
+ locally by not appending them to helm template
+ --values
+ type: boolean
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ namespace:
+ description: Namespace is an optional namespace
+ to template with. If left empty, defaults to the
+ app's destination namespace.
+ type: string
+ parameters:
+ description: Parameters is a list of Helm parameters
+ which are passed to the helm template command
+ upon manifest generation
+ items:
+ description: HelmParameter is a parameter that's
+ passed to helm template during manifest generation
+ properties:
+ forceString:
+ description: ForceString determines whether
+ to tell Helm to interpret booleans and numbers
+ as strings
+ type: boolean
+ name:
+ description: Name is the name of the Helm
+ parameter
+ type: string
+ value:
+ description: Value is the value for the Helm
+ parameter
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ description: PassCredentials pass credentials to
+ all domains (Helm's --pass-credentials)
+ type: boolean
+ releaseName:
+ description: ReleaseName is the Helm release name
+ to use. If omitted it will use the application
+ name
+ type: string
+ skipCrds:
+ description: SkipCrds skips custom resource definition
+ installation step (Helm's --skip-crds)
+ type: boolean
+ skipSchemaValidation:
+ description: SkipSchemaValidation skips JSON schema
+ validation (Helm's --skip-schema-validation)
+ type: boolean
+ skipTests:
+ description: SkipTests skips test manifest installation
+ step (Helm's --skip-tests).
+ type: boolean
+ valueFiles:
+ description: ValuesFiles is a list of Helm value
+ files to use when generating a template
+ items:
+ type: string
+ type: array
+ values:
+ description: Values specifies Helm values to be
+ passed to helm template, typically defined as
+ a block. ValuesObject takes precedence over Values,
+ so use one or the other.
+ type: string
+ valuesObject:
+ description: ValuesObject specifies Helm values
+ to be passed to helm template, defined as a map.
+ This takes precedence over Values.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ description: Version is the Helm version to use
+ for templating ("3")
+ type: string
+ type: object
+ kustomize:
+ description: Kustomize holds kustomize specific options
+ properties:
+ apiVersions:
+ description: |-
+ APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
+ Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ description: CommonAnnotations is a list of additional
+ annotations to add to rendered manifests
+ type: object
+ commonAnnotationsEnvsubst:
+ description: CommonAnnotationsEnvsubst specifies
+ whether to apply env variables substitution for
+ annotation values
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ description: CommonLabels is a list of additional
+ labels to add to rendered manifests
+ type: object
+ components:
+ description: Components specifies a list of kustomize
+ components to add to the kustomization before
+ building
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ description: ForceCommonAnnotations specifies whether
+ to force applying common annotations to resources
+ for Kustomize apps
+ type: boolean
+ forceCommonLabels:
+ description: ForceCommonLabels specifies whether
+ to force applying common labels to resources for
+ Kustomize apps
+ type: boolean
+ ignoreMissingComponents:
+ description: IgnoreMissingComponents prevents kustomize
+ from failing when components do not exist locally
+ by not appending them to kustomization file
+ type: boolean
+ images:
+ description: Images is a list of Kustomize image
+ override specifications
+ items:
+ description: KustomizeImage represents a Kustomize
+ image definition in the format [old_image_name=]<image_name>:<image_tag>
+ type: string
+ type: array
+ kubeVersion:
+ description: |-
+ KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
+ uses the Kubernetes version of the target cluster.
+ type: string
+ labelIncludeTemplates:
+ description: LabelIncludeTemplates specifies whether
+ to apply common labels to resource templates or
+ not
+ type: boolean
+ labelWithoutSelector:
+ description: LabelWithoutSelector specifies whether
+ to apply common labels to resource selectors or
+ not
+ type: boolean
+ namePrefix:
+ description: NamePrefix is a prefix appended to
+ resources for Kustomize apps
+ type: string
+ nameSuffix:
+ description: NameSuffix is a suffix appended to
+ resources for Kustomize apps
+ type: string
+ namespace:
+ description: Namespace sets the namespace that Kustomize
+ adds to all resources
+ type: string
+ patches:
+ description: Patches is a list of Kustomize patches
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ description: Replicas is a list of Kustomize Replicas
+ override specifications
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number of replicas
+ x-kubernetes-int-or-string: true
+ name:
+ description: Name of Deployment or StatefulSet
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ description: Version controls which version of Kustomize
+ to use for rendering manifests
+ type: string
+ type: object
+ name:
+ description: Name is used to refer to a source and is
+ displayed in the UI. It is used in multi-source Applications.
+ type: string
+ path:
+ description: Path is a directory path within the Git
+ repository, and is only valid for applications sourced
+ from Git.
+ type: string
+ plugin:
+ description: Plugin holds config management plugin specific
+ options
+ properties:
+ env:
+ description: Env is a list of environment variable
+ entries
+ items:
+ description: EnvEntry represents an entry in the
+ application's environment
+ properties:
+ name:
+ description: Name is the name of the variable,
+ usually expressed in uppercase
+ type: string
+ value:
+ description: Value is the value of the variable
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ description: Array is the value of an array
+ type parameter.
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ description: Map is the value of a map type
+ parameter.
+ type: object
+ name:
+ description: Name is the name identifying
+ a parameter.
+ type: string
+ string:
+ description: String_ is the value of a string
+ type parameter.
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ description: Ref is reference to another source within
+ sources field. This field will not be used if used
+ with a `source` tag.
+ type: string
+ repoURL:
+ description: RepoURL is the URL to the repository (Git
+ or Helm) that contains the application manifests
+ type: string
+ targetRevision:
+ description: |-
+ TargetRevision defines the revision of the source to sync the application to.
+ In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
+ In case of Helm, this is a semver tag for the Chart's version.
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ required:
+ - destination
+ type: object
+ revision:
+ description: Revision contains information about the revision
+ the comparison has been performed to
+ type: string
+ revisions:
+ description: Revisions contains information about the revisions
+ of multiple sources the comparison has been performed to
+ items:
+ type: string
+ type: array
+ status:
+ description: Status is the sync state of the comparison
+ type: string
+ required:
+ - status
+ type: object
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ served: true
+ storage: true
+ subresources: {}
+{{- end }}
+
diff --git a/astroshop-platform/argocd-helmchart/templates/crds/crd-applicationset.yaml b/astroshop-platform/argocd-helmchart/templates/crds/crd-applicationset.yaml
new file mode 100644
index 0000000..2572144
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/crds/crd-applicationset.yaml
@@ -0,0 +1,17737 @@
+{{- if .Values.crds.install }}
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ {{- if .Values.crds.keep }}
+ "helm.sh/resource-policy": keep
+ {{- end }}
+ {{- with .Values.crds.annotations }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ labels:
+ app.kubernetes.io/name: applicationsets.argoproj.io
+ app.kubernetes.io/part-of: argocd
+ {{- with .Values.crds.additionalLabels }}
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ name: applicationsets.argoproj.io
+spec:
+ group: argoproj.io
+ names:
+ kind: ApplicationSet
+ listKind: ApplicationSetList
+ plural: applicationsets
+ shortNames:
+ - appset
+ - appsets
+ singular: applicationset
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ applyNestedSelectors:
+ type: boolean
+ generators:
+ items:
+ properties:
+ clusterDecisionResource:
+ properties:
+ configMapRef:
+ type: string
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - configMapRef
+ type: object
+ clusters:
+ properties:
+ flatList:
+ type: boolean
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ git:
+ properties:
+ directories:
+ items:
+ properties:
+ exclude:
+ type: boolean
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: array
+ files:
+ items:
+ properties:
+ exclude:
+ type: boolean
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: array
+ pathParamPrefix:
+ type: string
+ repoURL:
+ type: string
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ revision:
+ type: string
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - repoURL
+ - revision
+ type: object
+ list:
+ properties:
+ elements:
+ items:
+ x-kubernetes-preserve-unknown-fields: true
+ type: array
+ elementsYaml:
+ type: string
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ type: object
+ matrix:
+ properties:
+ generators:
+ items:
+ properties:
+ clusterDecisionResource:
+ properties:
+ configMapRef:
+ type: string
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - configMapRef
+ type: object
+ clusters:
+ properties:
+ flatList:
+ type: boolean
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ git:
+ properties:
+ directories:
+ items:
+ properties:
+ exclude:
+ type: boolean
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: array
+ files:
+ items:
+ properties:
+ exclude:
+ type: boolean
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: array
+ pathParamPrefix:
+ type: string
+ repoURL:
+ type: string
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ revision:
+ type: string
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - repoURL
+ - revision
+ type: object
+ list:
+ properties:
+ elements:
+ items:
+ x-kubernetes-preserve-unknown-fields: true
+ type: array
+ elementsYaml:
+ type: string
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ type: object
+ matrix:
+ x-kubernetes-preserve-unknown-fields: true
+ merge:
+ x-kubernetes-preserve-unknown-fields: true
+ plugin:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ required:
+ - name
+ type: object
+ input:
+ properties:
+ parameters:
+ additionalProperties:
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ type: object
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - configMapRef
+ type: object
+ pullRequest:
+ properties:
+ azuredevops:
+ properties:
+ api:
+ type: string
+ labels:
+ items:
+ type: string
+ type: array
+ organization:
+ type: string
+ project:
+ type: string
+ repo:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - organization
+ - project
+ - repo
+ type: object
+ bitbucket:
+ properties:
+ api:
+ type: string
+ basicAuth:
+ properties:
+ passwordRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ username:
+ type: string
+ required:
+ - passwordRef
+ - username
+ type: object
+ bearerToken:
+ properties:
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - tokenRef
+ type: object
+ owner:
+ type: string
+ repo:
+ type: string
+ required:
+ - owner
+ - repo
+ type: object
+ bitbucketServer:
+ properties:
+ api:
+ type: string
+ basicAuth:
+ properties:
+ passwordRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ username:
+ type: string
+ required:
+ - passwordRef
+ - username
+ type: object
+ bearerToken:
+ properties:
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - tokenRef
+ type: object
+ caRef:
+ properties:
+ configMapName:
+ type: string
+ key:
+ type: string
+ required:
+ - configMapName
+ - key
+ type: object
+ insecure:
+ type: boolean
+ project:
+ type: string
+ repo:
+ type: string
+ required:
+ - api
+ - project
+ - repo
+ type: object
+ filters:
+ items:
+ properties:
+ branchMatch:
+ type: string
+ targetBranchMatch:
+ type: string
+ type: object
+ type: array
+ gitea:
+ properties:
+ api:
+ type: string
+ insecure:
+ type: boolean
+ labels:
+ items:
+ type: string
+ type: array
+ owner:
+ type: string
+ repo:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - api
+ - owner
+ - repo
+ type: object
+ github:
+ properties:
+ api:
+ type: string
+ appSecretName:
+ type: string
+ labels:
+ items:
+ type: string
+ type: array
+ owner:
+ type: string
+ repo:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - owner
+ - repo
+ type: object
+ gitlab:
+ properties:
+ api:
+ type: string
+ caRef:
+ properties:
+ configMapName:
+ type: string
+ key:
+ type: string
+ required:
+ - configMapName
+ - key
+ type: object
+ insecure:
+ type: boolean
+ labels:
+ items:
+ type: string
+ type: array
+ project:
+ type: string
+ pullRequestState:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - project
+ type: object
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ scmProvider:
+ properties:
+ awsCodeCommit:
+ properties:
+ allBranches:
+ type: boolean
+ region:
+ type: string
+ role:
+ type: string
+ tagFilters:
+ items:
+ properties:
+ key:
+ type: string
+ value:
+ type: string
+ required:
+ - key
+ type: object
+ type: array
+ type: object
+ azureDevOps:
+ properties:
+ accessTokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ organization:
+ type: string
+ teamProject:
+ type: string
+ required:
+ - accessTokenRef
+ - organization
+ - teamProject
+ type: object
+ bitbucket:
+ properties:
+ allBranches:
+ type: boolean
+ appPasswordRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ owner:
+ type: string
+ user:
+ type: string
+ required:
+ - appPasswordRef
+ - owner
+ - user
+ type: object
+ bitbucketServer:
+ properties:
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ basicAuth:
+ properties:
+ passwordRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ username:
+ type: string
+ required:
+ - passwordRef
+ - username
+ type: object
+ bearerToken:
+ properties:
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - tokenRef
+ type: object
+ caRef:
+ properties:
+ configMapName:
+ type: string
+ key:
+ type: string
+ required:
+ - configMapName
+ - key
+ type: object
+ insecure:
+ type: boolean
+ project:
+ type: string
+ required:
+ - api
+ - project
+ type: object
+ cloneProtocol:
+ type: string
+ filters:
+ items:
+ properties:
+ branchMatch:
+ type: string
+ labelMatch:
+ type: string
+ pathsDoNotExist:
+ items:
+ type: string
+ type: array
+ pathsExist:
+ items:
+ type: string
+ type: array
+ repositoryMatch:
+ type: string
+ type: object
+ type: array
+ gitea:
+ properties:
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ insecure:
+ type: boolean
+ owner:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - api
+ - owner
+ type: object
+ github:
+ properties:
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ appSecretName:
+ type: string
+ organization:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - organization
+ type: object
+ gitlab:
+ properties:
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ caRef:
+ properties:
+ configMapName:
+ type: string
+ key:
+ type: string
+ required:
+ - configMapName
+ - key
+ type: object
+ group:
+ type: string
+ includeSharedProjects:
+ type: boolean
+ includeSubgroups:
+ type: boolean
+ insecure:
+ type: boolean
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ topic:
+ type: string
+ required:
+ - group
+ type: object
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ required:
+ - generators
+ type: object
+ merge:
+ properties:
+ generators:
+ items:
+ properties:
+ clusterDecisionResource:
+ properties:
+ configMapRef:
+ type: string
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - configMapRef
+ type: object
+ clusters:
+ properties:
+ flatList:
+ type: boolean
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ git:
+ properties:
+ directories:
+ items:
+ properties:
+ exclude:
+ type: boolean
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: array
+ files:
+ items:
+ properties:
+ exclude:
+ type: boolean
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: array
+ pathParamPrefix:
+ type: string
+ repoURL:
+ type: string
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ revision:
+ type: string
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - repoURL
+ - revision
+ type: object
+ list:
+ properties:
+ elements:
+ items:
+ x-kubernetes-preserve-unknown-fields: true
+ type: array
+ elementsYaml:
+ type: string
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ type: object
+ matrix:
+ x-kubernetes-preserve-unknown-fields: true
+ merge:
+ x-kubernetes-preserve-unknown-fields: true
+ plugin:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ required:
+ - name
+ type: object
+ input:
+ properties:
+ parameters:
+ additionalProperties:
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ type: object
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - configMapRef
+ type: object
+ pullRequest:
+ properties:
+ azuredevops:
+ properties:
+ api:
+ type: string
+ labels:
+ items:
+ type: string
+ type: array
+ organization:
+ type: string
+ project:
+ type: string
+ repo:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - organization
+ - project
+ - repo
+ type: object
+ bitbucket:
+ properties:
+ api:
+ type: string
+ basicAuth:
+ properties:
+ passwordRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ username:
+ type: string
+ required:
+ - passwordRef
+ - username
+ type: object
+ bearerToken:
+ properties:
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - tokenRef
+ type: object
+ owner:
+ type: string
+ repo:
+ type: string
+ required:
+ - owner
+ - repo
+ type: object
+ bitbucketServer:
+ properties:
+ api:
+ type: string
+ basicAuth:
+ properties:
+ passwordRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ username:
+ type: string
+ required:
+ - passwordRef
+ - username
+ type: object
+ bearerToken:
+ properties:
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - tokenRef
+ type: object
+ caRef:
+ properties:
+ configMapName:
+ type: string
+ key:
+ type: string
+ required:
+ - configMapName
+ - key
+ type: object
+ insecure:
+ type: boolean
+ project:
+ type: string
+ repo:
+ type: string
+ required:
+ - api
+ - project
+ - repo
+ type: object
+ filters:
+ items:
+ properties:
+ branchMatch:
+ type: string
+ targetBranchMatch:
+ type: string
+ type: object
+ type: array
+ gitea:
+ properties:
+ api:
+ type: string
+ insecure:
+ type: boolean
+ labels:
+ items:
+ type: string
+ type: array
+ owner:
+ type: string
+ repo:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - api
+ - owner
+ - repo
+ type: object
+ github:
+ properties:
+ api:
+ type: string
+ appSecretName:
+ type: string
+ labels:
+ items:
+ type: string
+ type: array
+ owner:
+ type: string
+ repo:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - owner
+ - repo
+ type: object
+ gitlab:
+ properties:
+ api:
+ type: string
+ caRef:
+ properties:
+ configMapName:
+ type: string
+ key:
+ type: string
+ required:
+ - configMapName
+ - key
+ type: object
+ insecure:
+ type: boolean
+ labels:
+ items:
+ type: string
+ type: array
+ project:
+ type: string
+ pullRequestState:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - project
+ type: object
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ scmProvider:
+ properties:
+ awsCodeCommit:
+ properties:
+ allBranches:
+ type: boolean
+ region:
+ type: string
+ role:
+ type: string
+ tagFilters:
+ items:
+ properties:
+ key:
+ type: string
+ value:
+ type: string
+ required:
+ - key
+ type: object
+ type: array
+ type: object
+ azureDevOps:
+ properties:
+ accessTokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ organization:
+ type: string
+ teamProject:
+ type: string
+ required:
+ - accessTokenRef
+ - organization
+ - teamProject
+ type: object
+ bitbucket:
+ properties:
+ allBranches:
+ type: boolean
+ appPasswordRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ owner:
+ type: string
+ user:
+ type: string
+ required:
+ - appPasswordRef
+ - owner
+ - user
+ type: object
+ bitbucketServer:
+ properties:
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ basicAuth:
+ properties:
+ passwordRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ username:
+ type: string
+ required:
+ - passwordRef
+ - username
+ type: object
+ bearerToken:
+ properties:
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - tokenRef
+ type: object
+ caRef:
+ properties:
+ configMapName:
+ type: string
+ key:
+ type: string
+ required:
+ - configMapName
+ - key
+ type: object
+ insecure:
+ type: boolean
+ project:
+ type: string
+ required:
+ - api
+ - project
+ type: object
+ cloneProtocol:
+ type: string
+ filters:
+ items:
+ properties:
+ branchMatch:
+ type: string
+ labelMatch:
+ type: string
+ pathsDoNotExist:
+ items:
+ type: string
+ type: array
+ pathsExist:
+ items:
+ type: string
+ type: array
+ repositoryMatch:
+ type: string
+ type: object
+ type: array
+ gitea:
+ properties:
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ insecure:
+ type: boolean
+ owner:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - api
+ - owner
+ type: object
+ github:
+ properties:
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ appSecretName:
+ type: string
+ organization:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - organization
+ type: object
+ gitlab:
+ properties:
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ caRef:
+ properties:
+ configMapName:
+ type: string
+ key:
+ type: string
+ required:
+ - configMapName
+ - key
+ type: object
+ group:
+ type: string
+ includeSharedProjects:
+ type: boolean
+ includeSubgroups:
+ type: boolean
+ insecure:
+ type: boolean
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ topic:
+ type: string
+ required:
+ - group
+ type: object
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ mergeKeys:
+ items:
+ type: string
+ type: array
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ required:
+ - generators
+ - mergeKeys
+ type: object
+ plugin:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ required:
+ - name
+ type: object
+ input:
+ properties:
+ parameters:
+ additionalProperties:
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ type: object
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - configMapRef
+ type: object
+ pullRequest:
+ properties:
+ azuredevops:
+ properties:
+ api:
+ type: string
+ labels:
+ items:
+ type: string
+ type: array
+ organization:
+ type: string
+ project:
+ type: string
+ repo:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - organization
+ - project
+ - repo
+ type: object
+ bitbucket:
+ properties:
+ api:
+ type: string
+ basicAuth:
+ properties:
+ passwordRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ username:
+ type: string
+ required:
+ - passwordRef
+ - username
+ type: object
+ bearerToken:
+ properties:
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - tokenRef
+ type: object
+ owner:
+ type: string
+ repo:
+ type: string
+ required:
+ - owner
+ - repo
+ type: object
+ bitbucketServer:
+ properties:
+ api:
+ type: string
+ basicAuth:
+ properties:
+ passwordRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ username:
+ type: string
+ required:
+ - passwordRef
+ - username
+ type: object
+ bearerToken:
+ properties:
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - tokenRef
+ type: object
+ caRef:
+ properties:
+ configMapName:
+ type: string
+ key:
+ type: string
+ required:
+ - configMapName
+ - key
+ type: object
+ insecure:
+ type: boolean
+ project:
+ type: string
+ repo:
+ type: string
+ required:
+ - api
+ - project
+ - repo
+ type: object
+ filters:
+ items:
+ properties:
+ branchMatch:
+ type: string
+ targetBranchMatch:
+ type: string
+ type: object
+ type: array
+ gitea:
+ properties:
+ api:
+ type: string
+ insecure:
+ type: boolean
+ labels:
+ items:
+ type: string
+ type: array
+ owner:
+ type: string
+ repo:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - api
+ - owner
+ - repo
+ type: object
+ github:
+ properties:
+ api:
+ type: string
+ appSecretName:
+ type: string
+ labels:
+ items:
+ type: string
+ type: array
+ owner:
+ type: string
+ repo:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - owner
+ - repo
+ type: object
+ gitlab:
+ properties:
+ api:
+ type: string
+ caRef:
+ properties:
+ configMapName:
+ type: string
+ key:
+ type: string
+ required:
+ - configMapName
+ - key
+ type: object
+ insecure:
+ type: boolean
+ labels:
+ items:
+ type: string
+ type: array
+ project:
+ type: string
+ pullRequestState:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - project
+ type: object
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ scmProvider:
+ properties:
+ awsCodeCommit:
+ properties:
+ allBranches:
+ type: boolean
+ region:
+ type: string
+ role:
+ type: string
+ tagFilters:
+ items:
+ properties:
+ key:
+ type: string
+ value:
+ type: string
+ required:
+ - key
+ type: object
+ type: array
+ type: object
+ azureDevOps:
+ properties:
+ accessTokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ organization:
+ type: string
+ teamProject:
+ type: string
+ required:
+ - accessTokenRef
+ - organization
+ - teamProject
+ type: object
+ bitbucket:
+ properties:
+ allBranches:
+ type: boolean
+ appPasswordRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ owner:
+ type: string
+ user:
+ type: string
+ required:
+ - appPasswordRef
+ - owner
+ - user
+ type: object
+ bitbucketServer:
+ properties:
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ basicAuth:
+ properties:
+ passwordRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ username:
+ type: string
+ required:
+ - passwordRef
+ - username
+ type: object
+ bearerToken:
+ properties:
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - tokenRef
+ type: object
+ caRef:
+ properties:
+ configMapName:
+ type: string
+ key:
+ type: string
+ required:
+ - configMapName
+ - key
+ type: object
+ insecure:
+ type: boolean
+ project:
+ type: string
+ required:
+ - api
+ - project
+ type: object
+ cloneProtocol:
+ type: string
+ filters:
+ items:
+ properties:
+ branchMatch:
+ type: string
+ labelMatch:
+ type: string
+ pathsDoNotExist:
+ items:
+ type: string
+ type: array
+ pathsExist:
+ items:
+ type: string
+ type: array
+ repositoryMatch:
+ type: string
+ type: object
+ type: array
+ gitea:
+ properties:
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ insecure:
+ type: boolean
+ owner:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - api
+ - owner
+ type: object
+ github:
+ properties:
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ appSecretName:
+ type: string
+ organization:
+ type: string
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ required:
+ - organization
+ type: object
+ gitlab:
+ properties:
+ allBranches:
+ type: boolean
+ api:
+ type: string
+ caRef:
+ properties:
+ configMapName:
+ type: string
+ key:
+ type: string
+ required:
+ - configMapName
+ - key
+ type: object
+ group:
+ type: string
+ includeSharedProjects:
+ type: boolean
+ includeSubgroups:
+ type: boolean
+ insecure:
+ type: boolean
+ tokenRef:
+ properties:
+ key:
+ type: string
+ secretName:
+ type: string
+ required:
+ - key
+ - secretName
+ type: object
+ topic:
+ type: string
+ required:
+ - group
+ type: object
+ requeueAfterSeconds:
+ format: int64
+ type: integer
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ values:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ goTemplate:
+ type: boolean
+ goTemplateOptions:
+ items:
+ type: string
+ type: array
+ ignoreApplicationDifferences:
+ items:
+ properties:
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ type: object
+ type: array
+ preservedFields:
+ properties:
+ annotations:
+ items:
+ type: string
+ type: array
+ labels:
+ items:
+ type: string
+ type: array
+ type: object
+ strategy:
+ properties:
+ rollingSync:
+ properties:
+ steps:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ type: object
+ type: array
+ maxUpdate:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ type: array
+ type: object
+ type:
+ type: string
+ type: object
+ syncPolicy:
+ properties:
+ applicationsSync:
+ enum:
+ - create-only
+ - create-update
+ - create-delete
+ - sync
+ type: string
+ preserveResourcesOnDeletion:
+ type: boolean
+ type: object
+ template:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ destination:
+ properties:
+ name:
+ type: string
+ namespace:
+ type: string
+ server:
+ type: string
+ type: object
+ ignoreDifferences:
+ items:
+ properties:
+ group:
+ type: string
+ jqPathExpressions:
+ items:
+ type: string
+ type: array
+ jsonPointers:
+ items:
+ type: string
+ type: array
+ kind:
+ type: string
+ managedFieldsManagers:
+ items:
+ type: string
+ type: array
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ type: object
+ type: array
+ info:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ project:
+ type: string
+ revisionHistoryLimit:
+ format: int64
+ type: integer
+ source:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ sourceHydrator:
+ properties:
+ drySource:
+ properties:
+ path:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - path
+ - repoURL
+ - targetRevision
+ type: object
+ hydrateTo:
+ properties:
+ targetBranch:
+ type: string
+ required:
+ - targetBranch
+ type: object
+ syncSource:
+ properties:
+ path:
+ type: string
+ targetBranch:
+ type: string
+ required:
+ - path
+ - targetBranch
+ type: object
+ required:
+ - drySource
+ - syncSource
+ type: object
+ sources:
+ items:
+ properties:
+ chart:
+ type: string
+ directory:
+ properties:
+ exclude:
+ type: string
+ include:
+ type: string
+ jsonnet:
+ properties:
+ extVars:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ libs:
+ items:
+ type: string
+ type: array
+ tlas:
+ items:
+ properties:
+ code:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ type: object
+ recurse:
+ type: boolean
+ type: object
+ helm:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ fileParameters:
+ items:
+ properties:
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ type: array
+ ignoreMissingValueFiles:
+ type: boolean
+ kubeVersion:
+ type: string
+ namespace:
+ type: string
+ parameters:
+ items:
+ properties:
+ forceString:
+ type: boolean
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ passCredentials:
+ type: boolean
+ releaseName:
+ type: string
+ skipCrds:
+ type: boolean
+ skipSchemaValidation:
+ type: boolean
+ skipTests:
+ type: boolean
+ valueFiles:
+ items:
+ type: string
+ type: array
+ values:
+ type: string
+ valuesObject:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ version:
+ type: string
+ type: object
+ kustomize:
+ properties:
+ apiVersions:
+ items:
+ type: string
+ type: array
+ commonAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ commonAnnotationsEnvsubst:
+ type: boolean
+ commonLabels:
+ additionalProperties:
+ type: string
+ type: object
+ components:
+ items:
+ type: string
+ type: array
+ forceCommonAnnotations:
+ type: boolean
+ forceCommonLabels:
+ type: boolean
+ ignoreMissingComponents:
+ type: boolean
+ images:
+ items:
+ type: string
+ type: array
+ kubeVersion:
+ type: string
+ labelIncludeTemplates:
+ type: boolean
+ labelWithoutSelector:
+ type: boolean
+ namePrefix:
+ type: string
+ nameSuffix:
+ type: string
+ namespace:
+ type: string
+ patches:
+ items:
+ properties:
+ options:
+ additionalProperties:
+ type: boolean
+ type: object
+ patch:
+ type: string
+ path:
+ type: string
+ target:
+ properties:
+ annotationSelector:
+ type: string
+ group:
+ type: string
+ kind:
+ type: string
+ labelSelector:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ type: array
+ replicas:
+ items:
+ properties:
+ count:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ name:
+ type: string
+ required:
+ - count
+ - name
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ path:
+ type: string
+ plugin:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ name:
+ type: string
+ parameters:
+ items:
+ properties:
+ array:
+ items:
+ type: string
+ type: array
+ map:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ string:
+ type: string
+ type: object
+ type: array
+ type: object
+ ref:
+ type: string
+ repoURL:
+ type: string
+ targetRevision:
+ type: string
+ required:
+ - repoURL
+ type: object
+ type: array
+ syncPolicy:
+ properties:
+ automated:
+ properties:
+ allowEmpty:
+ type: boolean
+ enabled:
+ type: boolean
+ prune:
+ type: boolean
+ selfHeal:
+ type: boolean
+ type: object
+ managedNamespaceMetadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ retry:
+ properties:
+ backoff:
+ properties:
+ duration:
+ type: string
+ factor:
+ format: int64
+ type: integer
+ maxDuration:
+ type: string
+ type: object
+ limit:
+ format: int64
+ type: integer
+ type: object
+ syncOptions:
+ items:
+ type: string
+ type: array
+ type: object
+ required:
+ - destination
+ - project
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ templatePatch:
+ type: string
+ required:
+ - generators
+ - template
+ type: object
+ status:
+ properties:
+ applicationStatus:
+ items:
+ properties:
+ application:
+ type: string
+ lastTransitionTime:
+ format: date-time
+ type: string
+ message:
+ type: string
+ status:
+ type: string
+ step:
+ type: string
+ targetRevisions:
+ items:
+ type: string
+ type: array
+ required:
+ - application
+ - message
+ - status
+ - step
+ - targetRevisions
+ type: object
+ type: array
+ conditions:
+ items:
+ properties:
+ lastTransitionTime:
+ format: date-time
+ type: string
+ message:
+ type: string
+ reason:
+ type: string
+ status:
+ type: string
+ type:
+ type: string
+ required:
+ - message
+ - reason
+ - status
+ - type
+ type: object
+ type: array
+ resources:
+ items:
+ properties:
+ group:
+ type: string
+ health:
+ properties:
+ lastTransitionTime:
+ format: date-time
+ type: string
+ message:
+ type: string
+ status:
+ type: string
+ type: object
+ hook:
+ type: boolean
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ requiresDeletionConfirmation:
+ type: boolean
+ requiresPruning:
+ type: boolean
+ status:
+ type: string
+ syncWave:
+ format: int64
+ type: integer
+ version:
+ type: string
+ type: object
+ type: array
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+{{- end }}
+
diff --git a/astroshop-platform/argocd-helmchart/templates/crds/crd-project.yaml b/astroshop-platform/argocd-helmchart/templates/crds/crd-project.yaml
new file mode 100644
index 0000000..7e50234
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/crds/crd-project.yaml
@@ -0,0 +1,379 @@
+{{- if .Values.crds.install }}
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ {{- if .Values.crds.keep }}
+ "helm.sh/resource-policy": keep
+ {{- end }}
+ {{- with .Values.crds.annotations }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ labels:
+ app.kubernetes.io/name: appprojects.argoproj.io
+ app.kubernetes.io/part-of: argocd
+ {{- with .Values.crds.additionalLabels }}
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ name: appprojects.argoproj.io
+spec:
+ group: argoproj.io
+ names:
+ kind: AppProject
+ listKind: AppProjectList
+ plural: appprojects
+ shortNames:
+ - appproj
+ - appprojs
+ singular: appproject
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ description: |-
+ AppProject provides a logical grouping of applications, providing controls for:
+ * where the apps may deploy to (cluster whitelist)
+ * what may be deployed (repository whitelist, resource whitelist/blacklist)
+ * who can access these applications (roles, OIDC group claims bindings)
+ * and what they can do (RBAC policies)
+ * automation access to these roles (JWT tokens)
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: AppProjectSpec is the specification of an AppProject
+ properties:
+ clusterResourceBlacklist:
+ description: ClusterResourceBlacklist contains list of blacklisted
+ cluster level resources
+ items:
+ description: |-
+ GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying
+ concepts during lookup stages without having partially valid types
+ properties:
+ group:
+ type: string
+ kind:
+ type: string
+ required:
+ - group
+ - kind
+ type: object
+ type: array
+ clusterResourceWhitelist:
+ description: ClusterResourceWhitelist contains list of whitelisted
+ cluster level resources
+ items:
+ description: |-
+ GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying
+ concepts during lookup stages without having partially valid types
+ properties:
+ group:
+ type: string
+ kind:
+ type: string
+ required:
+ - group
+ - kind
+ type: object
+ type: array
+ description:
+ description: Description contains optional project description
+ maxLength: 255
+ type: string
+ destinationServiceAccounts:
+ description: DestinationServiceAccounts holds information about the
+ service accounts to be impersonated for the application sync operation
+ for each destination.
+ items:
+ description: ApplicationDestinationServiceAccount holds information
+ about the service account to be impersonated for the application
+ sync operation.
+ properties:
+ defaultServiceAccount:
+ description: DefaultServiceAccount to be used for impersonation
+ during the sync operation
+ type: string
+ namespace:
+ description: Namespace specifies the target namespace for the
+ application's resources.
+ type: string
+ server:
+ description: Server specifies the URL of the target cluster's
+ Kubernetes control plane API.
+ type: string
+ required:
+ - defaultServiceAccount
+ - server
+ type: object
+ type: array
+ destinations:
+ description: Destinations contains list of destinations available
+ for deployment
+ items:
+ description: ApplicationDestination holds information about the
+ application's destination
+ properties:
+ name:
+ description: Name is an alternate way of specifying the target
+ cluster by its symbolic name. This must be set if Server is
+ not set.
+ type: string
+ namespace:
+ description: |-
+ Namespace specifies the target namespace for the application's resources.
+ The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace
+ type: string
+ server:
+ description: Server specifies the URL of the target cluster's
+ Kubernetes control plane API. This must be set if Name is
+ not set.
+ type: string
+ type: object
+ type: array
+ namespaceResourceBlacklist:
+ description: NamespaceResourceBlacklist contains list of blacklisted
+ namespace level resources
+ items:
+ description: |-
+ GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying
+ concepts during lookup stages without having partially valid types
+ properties:
+ group:
+ type: string
+ kind:
+ type: string
+ required:
+ - group
+ - kind
+ type: object
+ type: array
+ namespaceResourceWhitelist:
+ description: NamespaceResourceWhitelist contains list of whitelisted
+ namespace level resources
+ items:
+ description: |-
+ GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying
+ concepts during lookup stages without having partially valid types
+ properties:
+ group:
+ type: string
+ kind:
+ type: string
+ required:
+ - group
+ - kind
+ type: object
+ type: array
+ orphanedResources:
+ description: OrphanedResources specifies if controller should monitor
+ orphaned resources of apps in this project
+ properties:
+ ignore:
+ description: Ignore contains a list of resources that are to be
+ excluded from orphaned resources monitoring
+ items:
+ description: OrphanedResourceKey is a reference to a resource
+ to be ignored from
+ properties:
+ group:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ type: object
+ type: array
+ warn:
+ description: Warn indicates if warning condition should be created
+ for apps which have orphaned resources
+ type: boolean
+ type: object
+ permitOnlyProjectScopedClusters:
+ description: PermitOnlyProjectScopedClusters determines whether destinations
+ can only reference clusters which are project-scoped
+ type: boolean
+ roles:
+ description: Roles are user defined RBAC roles associated with this
+ project
+ items:
+ description: ProjectRole represents a role that has access to a
+ project
+ properties:
+ description:
+ description: Description is a description of the role
+ type: string
+ groups:
+ description: Groups are a list of OIDC group claims bound to
+ this role
+ items:
+ type: string
+ type: array
+ jwtTokens:
+ description: JWTTokens are a list of generated JWT tokens bound
+ to this role
+ items:
+ description: JWTToken holds the issuedAt and expiresAt values
+ of a token
+ properties:
+ exp:
+ format: int64
+ type: integer
+ iat:
+ format: int64
+ type: integer
+ id:
+ type: string
+ required:
+ - iat
+ type: object
+ type: array
+ name:
+ description: Name is a name for this role
+ type: string
+ policies:
+ description: Policies Stores a list of casbin formatted strings
+ that define access policies for the role in the project
+ items:
+ type: string
+ type: array
+ required:
+ - name
+ type: object
+ type: array
+ signatureKeys:
+ description: SignatureKeys contains a list of PGP key IDs that commits
+ in Git must be signed with in order to be allowed for sync
+ items:
+ description: SignatureKey is the specification of a key required
+ to verify commit signatures with
+ properties:
+ keyID:
+ description: The ID of the key in hexadecimal notation
+ type: string
+ required:
+ - keyID
+ type: object
+ type: array
+ sourceNamespaces:
+ description: SourceNamespaces defines the namespaces application resources
+ are allowed to be created in
+ items:
+ type: string
+ type: array
+ sourceRepos:
+ description: SourceRepos contains list of repository URLs which can
+ be used for deployment
+ items:
+ type: string
+ type: array
+ syncWindows:
+ description: SyncWindows controls when syncs can be run for apps in
+ this project
+ items:
+ description: SyncWindow contains the kind, time, duration and attributes
+ that are used to assign the syncWindows to apps
+ properties:
+ andOperator:
+ description: UseAndOperator use AND operator for matching applications,
+ namespaces and clusters instead of the default OR operator
+ type: boolean
+ applications:
+ description: Applications contains a list of applications that
+ the window will apply to
+ items:
+ type: string
+ type: array
+ clusters:
+ description: Clusters contains a list of clusters that the window
+ will apply to
+ items:
+ type: string
+ type: array
+ description:
+ description: Description of the sync that will be applied to
+ the schedule, can be used to add any information such as a
+ ticket number for example
+ type: string
+ duration:
+ description: Duration is the amount of time the sync window
+ will be open
+ type: string
+ kind:
+ description: Kind defines if the window allows or blocks syncs
+ type: string
+ manualSync:
+ description: ManualSync enables manual syncs when they would
+ otherwise be blocked
+ type: boolean
+ namespaces:
+ description: Namespaces contains a list of namespaces that the
+ window will apply to
+ items:
+ type: string
+ type: array
+ schedule:
+ description: Schedule is the time the window will begin, specified
+ in cron format
+ type: string
+ timeZone:
+ description: TimeZone of the sync that will be applied to the
+ schedule
+ type: string
+ type: object
+ type: array
+ type: object
+ status:
+ description: AppProjectStatus contains status information for AppProject
+ CRs
+ properties:
+ jwtTokensByRole:
+ additionalProperties:
+ description: JWTTokens represents a list of JWT tokens
+ properties:
+ items:
+ items:
+ description: JWTToken holds the issuedAt and expiresAt values
+ of a token
+ properties:
+ exp:
+ format: int64
+ type: integer
+ iat:
+ format: int64
+ type: integer
+ id:
+ type: string
+ required:
+ - iat
+ type: object
+ type: array
+ type: object
+ description: JWTTokensByRole contains a list of JWT tokens issued
+ for a given role
+ type: object
+ type: object
+ required:
+ - metadata
+ - spec
+ type: object
+ served: true
+ storage: true
+{{- end }}
+
diff --git a/astroshop-platform/argocd-helmchart/templates/dex/deployment.yaml b/astroshop-platform/argocd-helmchart/templates/dex/deployment.yaml
new file mode 100644
index 0000000..fe23a76
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/dex/deployment.yaml
@@ -0,0 +1,254 @@
+{{- if .Values.dex.enabled }}
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.dex.deploymentAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ name: {{ template "argo-cd.dex.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentLabels) .Values.dex.deploymentLabels) }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ {{- with include "argo-cd.strategy" (mergeOverwrite (deepCopy .Values.global.deploymentStrategy) .Values.dex.deploymentStrategy) }}
+ strategy:
+ {{- trim . | nindent 4 }}
+ {{- end }}
+ replicas: 1
+ revisionHistoryLimit: {{ .Values.global.revisionHistoryLimit }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.dex.name) | nindent 6 }}
+ template:
+ metadata:
+ annotations:
+ checksum/cmd-params: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmd-params-cm.yaml") . | sha256sum }}
+ {{- if (index .Values.configs.cm "dex.config") }}
+ checksum/cm: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cm.yaml") . | sha256sum }}
+ {{- end }}
+ {{- if .Values.dex.certificateSecret.enabled }}
+ checksum/dex-server-tls: {{ include (print $.Template.BasePath "/argocd-configs/argocd-dex-server-tls-secret.yaml") . | sha256sum }}
+ {{- end }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.dex.podAnnotations) }}
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 8 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.dex.podLabels) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ spec:
+ {{- with .Values.dex.runtimeClassName | default .Values.global.runtimeClassName }}
+ runtimeClassName: {{ . }}
+ {{- end }}
+ {{- with .Values.dex.imagePullSecrets | default .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.hostAliases }}
+ hostAliases:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with.Values.global.securityContext }}
+ securityContext:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.dex.priorityClassName | default .Values.global.priorityClassName }}
+ priorityClassName: {{ . }}
+ {{- end }}
+ {{- if .Values.dex.terminationGracePeriodSeconds }}
+ terminationGracePeriodSeconds: {{ .Values.dex.terminationGracePeriodSeconds }}
+ {{- end }}
+ serviceAccountName: {{ template "argo-cd.dex.serviceAccountName" . }}
+ automountServiceAccountToken: {{ .Values.dex.automountServiceAccountToken }}
+ containers:
+ - name: {{ .Values.dex.name }}
+ image: {{ .Values.dex.image.repository }}:{{ .Values.dex.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.dex.image.imagePullPolicy }}
+ command:
+ - /shared/argocd-dex
+ {{- with .Values.dex.logLevel }}
+ - --loglevel={{ . }}
+ {{- end }}
+ {{- with .Values.dex.logFormat }}
+ - --logformat={{ . }}
+ {{- end }}
+ args:
+ - rundex
+ {{- with .Values.dex.extraArgs }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ env:
+ {{- with (concat .Values.global.env .Values.dex.env) }}
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ - name: ARGOCD_DEX_SERVER_LOGFORMAT
+ valueFrom:
+ configMapKeyRef:
+ key: dexserver.log.format
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_DEX_SERVER_LOGLEVEL
+ valueFrom:
+ configMapKeyRef:
+ key: dexserver.log.level
+ name: argocd-cmd-params-cm
+ optional: true
+ - name: ARGOCD_LOG_FORMAT_TIMESTAMP
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: log.format.timestamp
+ optional: true
+ - name: ARGOCD_DEX_SERVER_DISABLE_TLS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: dexserver.disable.tls
+ optional: true
+ {{- with .Values.dex.envFrom }}
+ envFrom:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ ports:
+ - name: http
+ containerPort: {{ .Values.dex.containerPorts.http }}
+ protocol: TCP
+ - name: grpc
+ containerPort: {{ .Values.dex.containerPorts.grpc }}
+ protocol: TCP
+ - name: metrics
+ containerPort: {{ .Values.dex.containerPorts.metrics }}
+ protocol: TCP
+ {{- if .Values.dex.livenessProbe.enabled }}
+ livenessProbe:
+ httpGet:
+ path: {{ .Values.dex.livenessProbe.httpPath }}
+ port: {{ .Values.dex.livenessProbe.httpPort }}
+ scheme: {{ .Values.dex.livenessProbe.httpScheme }}
+ initialDelaySeconds: {{ .Values.dex.livenessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.dex.livenessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.dex.livenessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.dex.livenessProbe.successThreshold }}
+ failureThreshold: {{ .Values.dex.livenessProbe.failureThreshold }}
+ {{- end }}
+ {{- if .Values.dex.readinessProbe.enabled }}
+ readinessProbe:
+ httpGet:
+ path: {{ .Values.dex.readinessProbe.httpPath }}
+ port: {{ .Values.dex.readinessProbe.httpPort }}
+ scheme: {{ .Values.dex.readinessProbe.httpScheme }}
+ initialDelaySeconds: {{ .Values.dex.readinessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.dex.readinessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.dex.readinessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.dex.readinessProbe.successThreshold }}
+ failureThreshold: {{ .Values.dex.readinessProbe.failureThreshold }}
+ {{- end }}
+ resources:
+ {{- toYaml .Values.dex.resources | nindent 10 }}
+ {{- with .Values.dex.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ volumeMounts:
+ {{- with .Values.dex.volumeMounts }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ - name: static-files
+ mountPath: /shared
+ - name: dexconfig
+ mountPath: /tmp
+ - name: argocd-dex-server-tls
+ mountPath: /tls
+ {{- with .Values.dex.extraContainers }}
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ initContainers:
+ - name: copyutil
+ image: {{ default .Values.global.image.repository .Values.dex.initImage.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.dex.initImage.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.dex.initImage.imagePullPolicy }}
+ command:
+ - /bin/cp
+ - -n
+ - /usr/local/bin/argocd
+ - /shared/argocd-dex
+ volumeMounts:
+ - mountPath: /shared
+ name: static-files
+ - mountPath: /tmp
+ name: dexconfig
+ resources:
+ {{- toYaml (default .Values.dex.resources .Values.dex.initImage.resources) | nindent 10 }}
+ {{- with .Values.dex.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ {{- with .Values.dex.initContainers }}
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.dex) }}
+ affinity:
+ {{- trim . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.dex.nodeSelector | default .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.dex.tolerations | default .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.dex.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- range $constraint := . }}
+ - {{ toYaml $constraint | nindent 8 | trim }}
+ {{- if not $constraint.labelSelector }}
+ labelSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" $ "name" $.Values.dex.name) | nindent 12 }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ volumes:
+ - name: static-files
+ {{- if .Values.dex.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.dex.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ - name: dexconfig
+ {{- if .Values.dex.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.dex.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ - name: argocd-dex-server-tls
+ secret:
+ secretName: argocd-dex-server-tls
+ optional: true
+ items:
+ - key: tls.crt
+ path: tls.crt
+ - key: tls.key
+ path: tls.key
+ - key: ca.crt
+ path: ca.crt
+ {{- with .Values.dex.volumes }}
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+ {{- with .Values.dex.dnsConfig }}
+ dnsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ dnsPolicy: {{ .Values.dex.dnsPolicy }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/dex/networkpolicy.yaml b/astroshop-platform/argocd-helmchart/templates/dex/networkpolicy.yaml
new file mode 100644
index 0000000..6f3088f
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/dex/networkpolicy.yaml
@@ -0,0 +1,30 @@
+{{- if and (or .Values.dex.networkPolicy.create .Values.global.networkPolicy.create) .Values.dex.enabled }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }}
+ name: {{ template "argo-cd.dex.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+spec:
+ ingress:
+ - from:
+ - podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 10 }}
+ ports:
+ - port: http
+ protocol: TCP
+ - port: grpc
+ protocol: TCP
+ - from:
+ - namespaceSelector: {}
+ ports:
+ - port: metrics
+ protocol: TCP
+ podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.dex.name) | nindent 6 }}
+ policyTypes:
+ - Ingress
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/dex/pdb.yaml b/astroshop-platform/argocd-helmchart/templates/dex/pdb.yaml
new file mode 100644
index 0000000..1216102
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/dex/pdb.yaml
@@ -0,0 +1,27 @@
+{{- if and .Values.dex.enabled .Values.dex.pdb.enabled }}
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: {{ include "argo-cd.dex.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }}
+ {{- with .Values.dex.pdb.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.dex.pdb.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ {{- with .Values.dex.pdb.maxUnavailable }}
+ maxUnavailable: {{ . }}
+ {{- else }}
+ minAvailable: {{ .Values.dex.pdb.minAvailable | default 0 }}
+ {{- end }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.dex.name) | nindent 6 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/dex/role.yaml b/astroshop-platform/argocd-helmchart/templates/dex/role.yaml
new file mode 100644
index 0000000..e79b3cf
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/dex/role.yaml
@@ -0,0 +1,19 @@
+{{- if .Values.dex.enabled }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: {{ template "argo-cd.dex.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }}
+rules:
+- apiGroups:
+ - ""
+ resources:
+ - secrets
+ - configmaps
+ verbs:
+ - get
+ - list
+ - watch
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/dex/rolebinding.yaml b/astroshop-platform/argocd-helmchart/templates/dex/rolebinding.yaml
new file mode 100644
index 0000000..792a465
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/dex/rolebinding.yaml
@@ -0,0 +1,17 @@
+{{- if .Values.dex.enabled }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: {{ include "argo-cd.dex.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: {{ include "argo-cd.dex.fullname" . }}
+subjects:
+- kind: ServiceAccount
+ name: {{ include "argo-cd.dex.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/dex/service.yaml b/astroshop-platform/argocd-helmchart/templates/dex/service.yaml
new file mode 100644
index 0000000..b52acfb
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/dex/service.yaml
@@ -0,0 +1,37 @@
+{{- if .Values.dex.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ template "argo-cd.dex.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+{{- if .Values.dex.metrics.service.annotations }}
+ annotations:
+ {{- range $key, $value := .Values.dex.metrics.service.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+{{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }}
+{{- if .Values.dex.metrics.service.labels }}
+{{- toYaml .Values.dex.metrics.service.labels | nindent 4 }}
+{{- end }}
+spec:
+ {{- include "argo-cd.dualStack" . | indent 2 }}
+ ports:
+ - name: {{ .Values.dex.servicePortHttpName }}
+ protocol: TCP
+ port: {{ .Values.dex.servicePortHttp }}
+ targetPort: http
+ - name: {{ .Values.dex.servicePortGrpcName }}
+ protocol: TCP
+ port: {{ .Values.dex.servicePortGrpc }}
+ targetPort: grpc
+{{- if .Values.dex.metrics.enabled }}
+ - name: {{ .Values.dex.metrics.service.portName }}
+ protocol: TCP
+ port: {{ .Values.dex.servicePortMetrics }}
+ targetPort: metrics
+{{- end }}
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.dex.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/dex/serviceaccount.yaml b/astroshop-platform/argocd-helmchart/templates/dex/serviceaccount.yaml
new file mode 100644
index 0000000..aeff244
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/dex/serviceaccount.yaml
@@ -0,0 +1,16 @@
+{{- if and .Values.dex.enabled .Values.dex.serviceAccount.create }}
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: {{ .Values.dex.serviceAccount.automountServiceAccountToken }}
+metadata:
+ name: {{ include "argo-cd.dex.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ {{- with .Values.dex.serviceAccount.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/dex/servicemonitor.yaml b/astroshop-platform/argocd-helmchart/templates/dex/servicemonitor.yaml
new file mode 100644
index 0000000..2564cfa
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/dex/servicemonitor.yaml
@@ -0,0 +1,48 @@
+{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.dex.enabled .Values.dex.metrics.enabled .Values.dex.metrics.serviceMonitor.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "argo-cd.dex.fullname" . }}
+ namespace: {{ default (include "argo-cd.namespace" .) .Values.dex.metrics.serviceMonitor.namespace | quote }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }}
+ {{- with .Values.dex.metrics.serviceMonitor.selector }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.dex.metrics.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.dex.metrics.serviceMonitor.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ endpoints:
+ - port: {{ .Values.dex.metrics.service.portName }}
+ {{- with .Values.dex.metrics.serviceMonitor.interval }}
+ interval: {{ . }}
+ {{- end }}
+ path: /metrics
+ {{- with .Values.dex.metrics.serviceMonitor.relabelings }}
+ relabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.dex.metrics.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+ {{- toYaml . |nindent 8 }}
+ {{- end }}
+ honorLabels: {{ .Values.dex.metrics.serviceMonitor.honorLabels }}
+ {{- with .Values.dex.metrics.serviceMonitor.scheme }}
+ scheme: {{ . }}
+ {{- end }}
+ {{- with .Values.dex.metrics.serviceMonitor.tlsConfig }}
+ tlsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - {{ include "argo-cd.namespace" . }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 6 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/extra-manifests.yaml b/astroshop-platform/argocd-helmchart/templates/extra-manifests.yaml
new file mode 100644
index 0000000..fc9a76b
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/extra-manifests.yaml
@@ -0,0 +1,8 @@
+{{ range .Values.extraObjects }}
+---
+{{ if typeIs "string" . }}
+ {{- tpl . $ }}
+{{- else }}
+ {{- tpl (toYaml .) $ }}
+{{- end }}
+{{ end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/networkpolicy-default-deny.yaml b/astroshop-platform/argocd-helmchart/templates/networkpolicy-default-deny.yaml
new file mode 100644
index 0000000..06d1979
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/networkpolicy-default-deny.yaml
@@ -0,0 +1,13 @@
+{{- if and .Values.global.networkPolicy.create .Values.global.networkPolicy.defaultDenyIngress }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ labels:
+ {{- include "argo-cd.labels" (dict "context" .) | nindent 4 }}
+ name: {{ template "argo-cd.fullname" . }}-default-deny
+ namespace: {{ include "argo-cd.namespace" . }}
+spec:
+ podSelector: {}
+ policyTypes:
+ - Ingress
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis-secret-init/job.yaml b/astroshop-platform/argocd-helmchart/templates/redis-secret-init/job.yaml
new file mode 100644
index 0000000..5fd41f6
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis-secret-init/job.yaml
@@ -0,0 +1,70 @@
+{{- if and .Values.redisSecretInit.enabled (not .Values.externalRedis.host) }}
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: {{ include "argo-cd.redisSecretInit.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . | quote }}
+ annotations:
+ "helm.sh/hook": pre-install,pre-upgrade
+ "helm.sh/hook-delete-policy": before-hook-creation
+ {{- range $key, $value := .Values.redisSecretInit.jobAnnotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redisSecretInit.name "name" .Values.redisSecretInit.name) | nindent 4 }}
+spec:
+ ttlSecondsAfterFinished: 60
+ template:
+ metadata:
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redisSecretInit.name "name" .Values.redisSecretInit.name) | nindent 8 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.redisSecretInit.podLabels) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.redisSecretInit.podAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ spec:
+ {{- with .Values.redisSecretInit.imagePullSecrets | default .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ containers:
+ - command:
+ - argocd
+ - admin
+ - redis-initial-password
+ image: {{ default .Values.global.image.repository .Values.redisSecretInit.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.redisSecretInit.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.redisSecretInit.image.imagePullPolicy }}
+ name: secret-init
+ resources:
+ {{- toYaml .Values.redisSecretInit.resources | nindent 10 }}
+ {{- with .Values.redisSecretInit.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ {{- with .Values.redisSecretInit.securityContext }}
+ securityContext:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redisSecretInit.priorityClassName | default .Values.global.priorityClassName }}
+ priorityClassName: {{ . }}
+ {{- end }}
+ restartPolicy: OnFailure
+ {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.redisSecretInit) }}
+ affinity:
+ {{- trim . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redisSecretInit.nodeSelector | default .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redisSecretInit.tolerations | default .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ serviceAccountName: {{ include "argo-cd.redisSecretInit.serviceAccountName" . }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis-secret-init/role.yaml b/astroshop-platform/argocd-helmchart/templates/redis-secret-init/role.yaml
new file mode 100644
index 0000000..9e8259f
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis-secret-init/role.yaml
@@ -0,0 +1,27 @@
+{{- if and .Values.redisSecretInit.enabled (not .Values.externalRedis.host) }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ annotations:
+ "helm.sh/hook": pre-install,pre-upgrade
+ "helm.sh/hook-delete-policy": before-hook-creation
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redisSecretInit.name "name" .Values.redisSecretInit.name) | nindent 4 }}
+ name: {{ include "argo-cd.redisSecretInit.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . | quote }}
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - secrets
+ resourceNames:
+ - argocd-redis
+ verbs:
+ - get
+ - apiGroups:
+ - ""
+ resources:
+ - secrets
+ verbs:
+ - create
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis-secret-init/rolebinding.yaml b/astroshop-platform/argocd-helmchart/templates/redis-secret-init/rolebinding.yaml
new file mode 100644
index 0000000..a199628
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis-secret-init/rolebinding.yaml
@@ -0,0 +1,19 @@
+{{- if and .Values.redisSecretInit.enabled (not .Values.externalRedis.host) }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ annotations:
+ "helm.sh/hook": pre-install,pre-upgrade
+ "helm.sh/hook-delete-policy": before-hook-creation
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redisSecretInit.name "name" .Values.redisSecretInit.name) | nindent 4 }}
+ name: {{ include "argo-cd.redisSecretInit.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . | quote }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: {{ include "argo-cd.redisSecretInit.fullname" . }}
+subjects:
+ - kind: ServiceAccount
+ name: {{ include "argo-cd.redisSecretInit.serviceAccountName" . }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis-secret-init/serviceaccount.yaml b/astroshop-platform/argocd-helmchart/templates/redis-secret-init/serviceaccount.yaml
new file mode 100644
index 0000000..85540d2
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis-secret-init/serviceaccount.yaml
@@ -0,0 +1,16 @@
+{{- if and .Values.redisSecretInit.enabled .Values.redisSecretInit.serviceAccount.create (not .Values.externalRedis.host) }}
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: {{ .Values.redisSecretInit.serviceAccount.automountServiceAccountToken }}
+metadata:
+ name: {{ include "argo-cd.redisSecretInit.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . | quote }}
+ annotations:
+ "helm.sh/hook": pre-install,pre-upgrade
+ "helm.sh/hook-delete-policy": before-hook-creation
+ {{- range $key, $value := .Values.redisSecretInit.serviceAccount.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redisSecretInit.name "name" .Values.redisSecretInit.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/deployment.yaml b/astroshop-platform/argocd-helmchart/templates/redis/deployment.yaml
new file mode 100644
index 0000000..e7c540c
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/deployment.yaml
@@ -0,0 +1,223 @@
+{{- $redisHa := index .Values "redis-ha" -}}
+{{- if and .Values.redis.enabled (not $redisHa.enabled) -}}
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.redis.deploymentAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ name: {{ include "argo-cd.redis.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentLabels) .Values.redis.deploymentLabels) }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ replicas: 1
+ revisionHistoryLimit: {{ .Values.global.revisionHistoryLimit }}
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: {{ include "argo-cd.name" . }}-{{ .Values.redis.name }}
+ template:
+ metadata:
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 8 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.redis.podLabels) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.redis.podAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ spec:
+ {{- with .Values.redis.runtimeClassName | default .Values.global.runtimeClassName }}
+ runtimeClassName: {{ . }}
+ {{- end }}
+ {{- with .Values.redis.imagePullSecrets | default .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.hostAliases }}
+ hostAliases:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redis.securityContext }}
+ securityContext:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redis.priorityClassName | default .Values.global.priorityClassName }}
+ priorityClassName: {{ . }}
+ {{- end }}
+ {{- if .Values.redis.terminationGracePeriodSeconds }}
+ terminationGracePeriodSeconds: {{ .Values.redis.terminationGracePeriodSeconds }}
+ {{- end }}
+ serviceAccountName: {{ include "argo-cd.redis.serviceAccountName" . }}
+ automountServiceAccountToken: {{ .Values.redis.automountServiceAccountToken }}
+ containers:
+ - name: {{ .Values.redis.name }}
+ image: {{ .Values.redis.image.repository }}:{{ .Values.redis.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.redis.image.imagePullPolicy }}
+ args:
+ {{- with .Values.redis.extraArgs }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ - --save
+ - ""
+ - --appendonly
+ - "no"
+ - --requirepass $(REDIS_PASSWORD)
+ env:
+ - name: REDIS_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: argocd-redis
+ key: auth
+ {{- with (concat .Values.global.env .Values.redis.env) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redis.envFrom }}
+ envFrom:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- if .Values.redis.livenessProbe.enabled }}
+ livenessProbe:
+ initialDelaySeconds: {{ .Values.redis.livenessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.redis.livenessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.redis.livenessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.redis.livenessProbe.successThreshold }}
+ failureThreshold: {{ .Values.redis.livenessProbe.failureThreshold }}
+ exec:
+ command:
+ - sh
+ - -c
+ - /health/redis_liveness.sh
+ {{- end }}
+ {{- if .Values.redis.readinessProbe.enabled }}
+ readinessProbe:
+ initialDelaySeconds: {{ .Values.redis.readinessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.redis.readinessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.redis.readinessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.redis.readinessProbe.successThreshold }}
+ failureThreshold: {{ .Values.redis.readinessProbe.failureThreshold }}
+ exec:
+ command:
+ - sh
+ - -c
+ - /health/redis_readiness.sh
+ {{- end }}
+ ports:
+ - name: redis
+ containerPort: {{ .Values.redis.containerPorts.redis }}
+ protocol: TCP
+ resources:
+ {{- toYaml .Values.redis.resources | nindent 10 }}
+ {{- with .Values.redis.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ volumeMounts:
+ - mountPath: /health
+ name: health
+ {{- with .Values.redis.volumeMounts }}
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ {{- if .Values.redis.exporter.enabled }}
+ - name: metrics
+ image: {{ .Values.redis.exporter.image.repository }}:{{ .Values.redis.exporter.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.redis.exporter.image.imagePullPolicy }}
+ env:
+ - name: REDIS_ADDR
+ value: {{ printf "redis://localhost:%v" .Values.redis.containerPorts.redis }}
+ - name: REDIS_EXPORTER_WEB_LISTEN_ADDRESS
+ value: {{ printf "0.0.0.0:%v" .Values.redis.containerPorts.metrics }}
+ - name: REDIS_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: argocd-redis
+ key: auth
+ {{- with (concat .Values.global.env .Values.redis.exporter.env) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ ports:
+ - name: metrics
+ containerPort: {{ .Values.redis.containerPorts.metrics }}
+ protocol: TCP
+ {{- if .Values.redis.exporter.livenessProbe.enabled }}
+ livenessProbe:
+ httpGet:
+ path: /metrics
+ port: {{ .Values.redis.containerPorts.metrics }}
+ initialDelaySeconds: {{ .Values.redis.exporter.livenessProbe.initialDelaySeconds }}
+ timeoutSeconds: {{ .Values.redis.exporter.livenessProbe.timeoutSeconds }}
+ periodSeconds: {{ .Values.redis.exporter.livenessProbe.periodSeconds }}
+ successThreshold: {{ .Values.redis.exporter.livenessProbe.successThreshold }}
+ failureThreshold: {{ .Values.redis.exporter.livenessProbe.failureThreshold }}
+ {{- end }}
+ {{- if .Values.redis.exporter.readinessProbe.enabled }}
+ readinessProbe:
+ httpGet:
+ path: /metrics
+ port: {{ .Values.redis.containerPorts.metrics }}
+ initialDelaySeconds: {{ .Values.redis.exporter.readinessProbe.initialDelaySeconds }}
+ timeoutSeconds: {{ .Values.redis.exporter.readinessProbe.timeoutSeconds }}
+ periodSeconds: {{ .Values.redis.exporter.readinessProbe.periodSeconds }}
+ successThreshold: {{ .Values.redis.exporter.readinessProbe.successThreshold }}
+ failureThreshold: {{ .Values.redis.exporter.readinessProbe.failureThreshold }}
+ {{- end }}
+ resources:
+ {{- toYaml .Values.redis.exporter.resources | nindent 10 }}
+ {{- with .Values.redis.exporter.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ {{- end }}
+ {{- with .Values.redis.extraContainers }}
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with .Values.redis.initContainers }}
+ initContainers:
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with .Values.redis.nodeSelector | default .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redis.tolerations | default .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.redis) }}
+ affinity:
+ {{- trim . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redis.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- range $constraint := . }}
+ - {{ toYaml $constraint | nindent 8 | trim }}
+ {{- if not $constraint.labelSelector }}
+ labelSelector:
+ matchLabels:
+ app.kubernetes.io/name: {{ include "argo-cd.name" $ }}-{{ $.Values.redis.name }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ volumes:
+ - name: health
+ configMap:
+ name: {{ include "argo-cd.redis.fullname" . }}-health-configmap
+ defaultMode: 493
+ {{- with .Values.redis.volumes }}
+ {{- toYaml . | nindent 8}}
+ {{- end }}
+ {{- with .Values.redis.dnsConfig }}
+ dnsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ dnsPolicy: {{ .Values.redis.dnsPolicy }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/health-configmap.yaml b/astroshop-platform/argocd-helmchart/templates/redis/health-configmap.yaml
new file mode 100644
index 0000000..7443625
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/health-configmap.yaml
@@ -0,0 +1,37 @@
+{{- $redisHa := index .Values "redis-ha" -}}
+{{- if and .Values.redis.enabled (not $redisHa.enabled) -}}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "argo-cd.redis.fullname" . }}-health-configmap
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+data:
+ redis_liveness.sh: |
+ response=$(
+ redis-cli \
+ -a "${REDIS_PASSWORD}" --no-auth-warning \
+ -h localhost \
+ -p {{ .Values.redis.containerPorts.redis }} \
+ ping
+ )
+ if [ "$response" != "PONG" ] && [ "${response:0:7}" != "LOADING" ] ; then
+ echo "$response"
+ exit 1
+ fi
+ echo "response=$response"
+ redis_readiness.sh: |
+ response=$(
+ redis-cli \
+ -a "${REDIS_PASSWORD}" --no-auth-warning \
+ -h localhost \
+ -p {{ .Values.redis.containerPorts.redis }} \
+ ping
+ )
+ if [ "$response" != "PONG" ] ; then
+ echo "$response"
+ exit 1
+ fi
+ echo "response=$response"
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/metrics.yaml b/astroshop-platform/argocd-helmchart/templates/redis/metrics.yaml
new file mode 100644
index 0000000..040f5eb
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/metrics.yaml
@@ -0,0 +1,35 @@
+{{- $redisHa := (index .Values "redis-ha") -}}
+{{- if and .Values.redis.enabled (not $redisHa.enabled) .Values.redis.metrics.enabled -}}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "argo-cd.redis.fullname" . }}-metrics
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+ {{- with .Values.redis.metrics.service.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- if or .Values.redis.metrics.service.annotations .Values.global.addPrometheusAnnotations }}
+ annotations:
+ {{- if .Values.global.addPrometheusAnnotations }}
+ prometheus.io/port: {{ .Values.redis.metrics.service.servicePort | quote }}
+ prometheus.io/scrape: "true"
+ {{- end }}
+ {{- range $key, $value := .Values.redis.metrics.service.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ type: {{ .Values.redis.metrics.service.type }}
+ {{- if and .Values.redis.metrics.service.clusterIP (eq .Values.redis.metrics.service.type "ClusterIP") }}
+ clusterIP: {{ .Values.redis.metrics.service.clusterIP }}
+ {{- end }}
+ ports:
+ - name: {{ .Values.redis.metrics.service.portName }}
+ protocol: TCP
+ port: {{ .Values.redis.metrics.service.servicePort }}
+ targetPort: metrics
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/networkpolicy.yaml b/astroshop-platform/argocd-helmchart/templates/redis/networkpolicy.yaml
new file mode 100644
index 0000000..ccf0699
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/networkpolicy.yaml
@@ -0,0 +1,35 @@
+{{- $redisHa := (index .Values "redis-ha") -}}
+{{- if and (or .Values.redis.networkPolicy.create .Values.global.networkPolicy.create) .Values.redis.enabled (not $redisHa.enabled) }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+ name: {{ template "argo-cd.redis.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+spec:
+ ingress:
+ - from:
+ - podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 10 }}
+ - podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.repoServer.name) | nindent 10 }}
+ - podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 10 }}
+ ports:
+ - port: redis
+ protocol: TCP
+ - from:
+ - namespaceSelector: {}
+ ports:
+ - port: metrics
+ protocol: TCP
+ podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.redis.name) | nindent 6 }}
+ policyTypes:
+ - Ingress
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/pdb.yaml b/astroshop-platform/argocd-helmchart/templates/redis/pdb.yaml
new file mode 100644
index 0000000..c614144
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/pdb.yaml
@@ -0,0 +1,28 @@
+{{- $redisHa := index .Values "redis-ha" -}}
+{{- if and .Values.redis.enabled (not $redisHa.enabled) .Values.redis.pdb.enabled }}
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: {{ include "argo-cd.redis.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+ {{- with .Values.redis.pdb.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.redis.pdb.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ {{- with .Values.redis.pdb.maxUnavailable }}
+ maxUnavailable: {{ . }}
+ {{- else }}
+ minAvailable: {{ .Values.redis.pdb.minAvailable | default 0 }}
+ {{- end }}
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: {{ include "argo-cd.name" . }}-{{ .Values.redis.name }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/service.yaml b/astroshop-platform/argocd-helmchart/templates/redis/service.yaml
new file mode 100644
index 0000000..a60cf77
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/service.yaml
@@ -0,0 +1,27 @@
+{{- $redisHa := (index .Values "redis-ha") -}}
+{{- if and .Values.redis.enabled (not $redisHa.enabled) -}}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ template "argo-cd.redis.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+ {{- with .Values.redis.service.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.redis.service.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ {{- include "argo-cd.dualStack" . | indent 2 }}
+ ports:
+ - name: redis
+ port: {{ .Values.redis.servicePort }}
+ targetPort: redis
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.redis.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/serviceaccount.yaml b/astroshop-platform/argocd-helmchart/templates/redis/serviceaccount.yaml
new file mode 100644
index 0000000..bc942e2
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/serviceaccount.yaml
@@ -0,0 +1,16 @@
+{{- if and .Values.redis.enabled .Values.redis.serviceAccount.create }}
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: {{ .Values.redis.serviceAccount.automountServiceAccountToken }}
+metadata:
+ name: {{ include "argo-cd.redis.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ {{- with .Values.redis.serviceAccount.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/servicemonitor.yaml b/astroshop-platform/argocd-helmchart/templates/redis/servicemonitor.yaml
new file mode 100644
index 0000000..4710d28
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/servicemonitor.yaml
@@ -0,0 +1,49 @@
+{{- $redisHa := (index .Values "redis-ha") -}}
+{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.redis.enabled (not $redisHa.enabled) .Values.redis.metrics.enabled .Values.redis.metrics.serviceMonitor.enabled -}}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "argo-cd.redis.fullname" . }}
+ namespace: {{ default (include "argo-cd.namespace" .) .Values.redis.metrics.serviceMonitor.namespace | quote }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+ {{- with .Values.redis.metrics.serviceMonitor.selector }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.redis.metrics.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.redis.metrics.serviceMonitor.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ endpoints:
+ - port: {{ .Values.redis.metrics.service.portName }}
+ {{- with .Values.redis.metrics.serviceMonitor.interval }}
+ interval: {{ . }}
+ {{- end }}
+ path: /metrics
+ {{- with .Values.redis.metrics.serviceMonitor.relabelings }}
+ relabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redis.metrics.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ honorLabels: {{ .Values.redis.metrics.serviceMonitor.honorLabels }}
+ {{- with .Values.redis.metrics.serviceMonitor.scheme }}
+ scheme: {{ . }}
+ {{- end }}
+ {{- with .Values.redis.metrics.serviceMonitor.tlsConfig }}
+ tlsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - {{ include "argo-cd.namespace" . }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 6 }}
+{{- end }}