From 941561e16092baf5db9b1ec7c78cb48e7b971426 Mon Sep 17 00:00:00 2001 From: Giovanni Ferri Date: Tue, 11 Aug 2026 22:24:32 +0100 Subject: [PATCH] fix(argocd): harden reconciliation on Kubernetes 1.36 --- .gitignore | 4 + appset.yaml | 3 + bootstrap/argocd-cm.yaml | 49 + .../unraid-lab/omni/inline-manifests.yaml | 14805 ++++++++++++---- omni/scripts/apply-inline-manifests.sh | 87 + omni/scripts/generate-manifests.sh | 13 +- 6 files changed, 11505 insertions(+), 3456 deletions(-) create mode 100755 omni/scripts/apply-inline-manifests.sh diff --git a/.gitignore b/.gitignore index 9c2469c..cc82596 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ # bootstrap secret values — delivered via Omni, never committed omni/secrets.env + +# A literal $HOME can be created by misconfigured CLI environments; it may +# contain local credentials and must never be staged. +/$HOME/ diff --git a/appset.yaml b/appset.yaml index 8cfcc58..7324504 100644 --- a/appset.yaml +++ b/appset.yaml @@ -82,3 +82,6 @@ spec: selfHeal: true syncOptions: - CreateNamespace=true + # Allow a CRD-owning chart to establish its custom resource type when + # API discovery lags a cold-cluster bootstrap. + - SkipDryRunOnMissingResource=true diff --git a/bootstrap/argocd-cm.yaml b/bootstrap/argocd-cm.yaml index 6c46879..a9f0faa 100644 --- a/bootstrap/argocd-cm.yaml +++ b/bootstrap/argocd-cm.yaml @@ -10,10 +10,59 @@ metadata: app.kubernetes.io/name: argocd-cm app.kubernetes.io/part-of: argocd data: + # Argo CD 3 defaults to annotation tracking. Keep the established label + # tracking during this upgrade so existing resources are not orphaned. + application.resourceTrackingMethod: label resource.exclusions: | + # Keep Argo CD 3's default high-churn exclusions while preserving the + # pre-existing CiliumIdentity exclusion. + - apiGroups: + - '' + - discovery.k8s.io + kinds: + - Endpoints + - EndpointSlice + - apiGroups: + - coordination.k8s.io + kinds: + - Lease + - apiGroups: + - authentication.k8s.io + - authorization.k8s.io + kinds: + - SelfSubjectReview + - TokenReview + - LocalSubjectAccessReview + - SelfSubjectAccessReview + - SelfSubjectRulesReview + - SubjectAccessReview + - apiGroups: + - certificates.k8s.io + kinds: + - CertificateSigningRequest + - apiGroups: + - cert-manager.io + kinds: + - CertificateRequest - apiGroups: - cilium.io kinds: - CiliumIdentity + - CiliumEndpoint + - CiliumEndpointSlice + - apiGroups: + - kyverno.io + - reports.kyverno.io + - wgpolicyk8s.io + kinds: + - PolicyReport + - ClusterPolicyReport + - EphemeralReport + - ClusterEphemeralReport + - AdmissionReport + - ClusterAdmissionReport + - BackgroundScanReport + - ClusterBackgroundScanReport + - UpdateRequest clusters: - "*" diff --git a/clusters/unraid-lab/omni/inline-manifests.yaml b/clusters/unraid-lab/omni/inline-manifests.yaml index f8678d3..0acbae2 100644 --- a/clusters/unraid-lab/omni/inline-manifests.yaml +++ b/clusters/unraid-lab/omni/inline-manifests.yaml @@ -138,6 +138,10 @@ cluster: a failed sync. If set to 0, no retries will be performed. format: int64 type: integer + refresh: + description: 'Refresh indicates if the latest revision should + be used on retry instead of the initial one (default: false)' + type: boolean type: object sync: description: Sync contains parameters for the operation @@ -407,6 +411,11 @@ cluster: 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 @@ -420,17 +429,21 @@ cluster: 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 + description: NamePrefix overrides the namePrefix in the + kustomization.yaml for Kustomize apps type: string nameSuffix: - description: NameSuffix is a suffix appended to resources - for Kustomize apps + description: NameSuffix overrides the nameSuffix in the + kustomization.yaml for Kustomize apps type: string namespace: description: Namespace sets the namespace that Kustomize @@ -556,6 +569,13 @@ cluster: description: RepoURL is the URL to the repository (Git or Helm) that contains the application manifests type: string + tagPrefix: + description: |- + TagPrefix filters git tags to only those with this prefix before evaluating targetRevision as a semver constraint. + The prefix is stripped from tag names before comparison and re-added to the resolved version. + For example, with tagPrefix "component-b/" and targetRevision "1.0.*", tags like "component-b/1.0.0" and + "component-b/1.0.1" are candidates, and the constraint resolves to "component-b/1.0.1". + type: string targetRevision: description: |- TargetRevision defines the revision of the source to sync the application to. @@ -787,6 +807,11 @@ cluster: 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 @@ -800,17 +825,21 @@ cluster: 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 + description: NamePrefix overrides the namePrefix in + the kustomization.yaml for Kustomize apps type: string nameSuffix: - description: NameSuffix is a suffix appended to resources - for Kustomize apps + description: NameSuffix overrides the nameSuffix in + the kustomization.yaml for Kustomize apps type: string namespace: description: Namespace sets the namespace that Kustomize @@ -936,6 +965,13 @@ cluster: description: RepoURL is the URL to the repository (Git or Helm) that contains the application manifests type: string + tagPrefix: + description: |- + TagPrefix filters git tags to only those with this prefix before evaluating targetRevision as a semver constraint. + The prefix is stripped from tag names before comparison and re-added to the resolved version. + For example, with tagPrefix "component-b/" and targetRevision "1.0.*", tags like "component-b/1.0.0" and + "component-b/1.0.1" are candidates, and the constraint resolves to "component-b/1.0.1". + type: string targetRevision: description: |- TargetRevision defines the revision of the source to sync the application to. @@ -1277,6 +1313,11 @@ cluster: 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 @@ -1290,16 +1331,20 @@ cluster: 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 + description: NamePrefix overrides the namePrefix in the kustomization.yaml for Kustomize apps type: string nameSuffix: - description: NameSuffix is a suffix appended to resources + description: NameSuffix overrides the nameSuffix in the kustomization.yaml for Kustomize apps type: string namespace: @@ -1422,6 +1467,13 @@ cluster: description: RepoURL is the URL to the repository (Git or Helm) that contains the application manifests type: string + tagPrefix: + description: |- + TagPrefix filters git tags to only those with this prefix before evaluating targetRevision as a semver constraint. + The prefix is stripped from tag names before comparison and re-added to the resolved version. + For example, with tagPrefix "component-b/" and targetRevision "1.0.*", tags like "component-b/1.0.0" and + "component-b/1.0.1" are candidates, and the constraint resolves to "component-b/1.0.1". + type: string targetRevision: description: |- TargetRevision defines the revision of the source to sync the application to. @@ -1439,2702 +1491,1661 @@ cluster: 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: + directory: + description: Directory specifies 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 - 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 + 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: - 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 + 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 - 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: + recurse: + description: Recurse specifies whether to scan a directory + recursively for manifests + type: boolean + type: object + helm: + description: Helm specifies 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 - type: array - commonAnnotations: - additionalProperties: + namespace: + description: Namespace is an optional namespace to template + with. If left empty, defaults to the app's destination + namespace. 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: + 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 - 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: + 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 - 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 - 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=]: + 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: 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 - 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 + kustomize: + description: Kustomize specifies 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 - 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 + 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 - type: array - name: - type: string - parameters: - items: - properties: - array: - description: Array is the value of an array type parameter. - items: + 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=]: + 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 overrides the namePrefix in the + kustomization.yaml for Kustomize apps + type: string + nameSuffix: + description: NameSuffix overrides the nameSuffix in the + kustomization.yaml 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 - type: array - map: - additionalProperties: + path: 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 - 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 + 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 - type: object - retry: - description: Retry controls failed sync retry behavior - properties: - backoff: - description: Backoff controls how to backoff on subsequent - retries of failed syncs + path: + description: Path is a directory path within the Git repository + where the manifests are located + type: string + plugin: + description: Plugin specifies config management plugin specific + options 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 + 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 - 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 + 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 - 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 - type: string - status: - description: Status holds the status code of the application or - resource - type: string + 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. The Path should never point to the root of the repo. If hydrateTo is set, this is just the path from which + hydrated manifests will be synced. + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: + description: |- + RepoURL is the URL to the git repository that contains the hydrated manifests. If not set, defaults to + the DrySource.RepoURL. + type: string + targetBranch: + description: |- + TargetBranch is the branch from which hydrated manifests will be synced. + If HydrateTo is not set, this is also the branch to which hydrated manifests are committed. + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource type: object - history: - description: History contains information about the application's - sync history + sources: + description: Sources is a reference to the location of the application's + manifests or chart items: - description: RevisionHistory contains history information about - a previous sync + description: ApplicationSource contains all required information + about the source of an application 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 + chart: + description: Chart is a Helm chart name, and must be specified + for applications sourced from a Helm repo. 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 + directory: + description: Directory holds path/directory specific options 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 + exclude: + description: Exclude contains a glob pattern to match paths + against that should be explicitly excluded from being + used during manifest generation 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. + include: + description: Include contains a glob pattern to match paths + against that should be explicitly included during manifest + generation type: string - directory: - description: Directory holds path/directory specific options + jsonnet: + description: Jsonnet holds options specific to Jsonnet 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: + 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 - 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 + value: type: string + required: + - name + - value 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 + libs: + description: Additional library search dirs items: - description: HelmParameter is a parameter that's passed - to helm template during manifest generation + 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: - forceString: - description: ForceString determines whether to - tell Helm to interpret booleans and numbers - as strings + code: 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 + required: + - name + - value 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: + 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 - 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: + path: + description: Path is the path to the file containing + the values for the Helm parameter 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: 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 - 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 - 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=]: + value: + description: Value is the value for the Helm parameter 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 - 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 + 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 - name: - description: Name is used to refer to a source and is displayed - in the UI. It is used in multi-source Applications. + x-kubernetes-preserve-unknown-fields: true + version: + description: Version is the Helm version to use for templating + ("3") type: string - path: - description: Path is a directory path within the Git repository, - and is only valid for applications sourced from Git. + 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=]: + 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 - 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 + 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 overrides the namePrefix in the + kustomization.yaml for Kustomize apps + type: string + nameSuffix: + description: NameSuffix overrides the nameSuffix in the + kustomization.yaml 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: - name: - description: Name is the name of the variable, - usually expressed in uppercase + annotationSelector: type: string - value: - description: Value is the value of the variable + group: + type: string + kind: + type: string + labelSelector: 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. + namespace: + type: string + version: 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: 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 - 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 + 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: - exclude: - description: Exclude contains a glob pattern to match - paths against that should be explicitly excluded - from being used during manifest generation + name: + description: Name is the name of the variable, usually + expressed in uppercase type: string - include: - description: Include contains a glob pattern to match - paths against that should be explicitly included - during manifest generation + value: + description: Value is the value of the variable 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 + required: + - name + - value type: object - helm: - description: Helm holds helm specific options + type: array + name: + type: string + parameters: + items: 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. + array: + description: Array is the value of an array type parameter. 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: + map: + additionalProperties: 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. + description: Map is the value of a map type parameter. type: object - x-kubernetes-preserve-unknown-fields: true - version: - description: Version is the Helm version to use for - templating ("3") + 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 - 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 - 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=]: - 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 - 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 + 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 + tagPrefix: + description: |- + TagPrefix filters git tags to only those with this prefix before evaluating targetRevision as a semver constraint. + The prefix is stripped from tag names before comparison and re-added to the resolved version. + For example, with tagPrefix "component-b/" and targetRevision "1.0.*", tags like "component-b/1.0.0" and + "component-b/1.0.1" are candidates, and the constraint resolves to "component-b/1.0.1". + 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: - - deployedAt - - id + - repoURL 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 + syncPolicy: + description: SyncPolicy controls when and how a sync will be performed 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 + automated: + description: Automated will keep an application synced to the + target revision 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 + 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 - sync: - description: Sync contains parameters for the operation + 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: - autoHealAttemptsCount: - description: SelfHealAttemptsCount contains the number - of auto-heal attempts + 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 - 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. + maxDuration: + description: MaxDuration is the maximum amount of time + allowed for the backoff strategy 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: 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 + refresh: + description: 'Refresh indicates if the latest revision should + be used on retry instead of the initial one (default: false)' + type: boolean + 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 - 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 + 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 - recurse: - description: Recurse specifies whether to scan - a directory recursively for manifests - type: boolean - type: object - helm: - description: Helm holds helm specific options + 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: - 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. + name: + description: Name is the name of the Helm parameter type: string - namespace: - description: Namespace is an optional namespace - to template with. If left empty, defaults to - the app's destination namespace. + path: + description: Path is the path to the file containing + the values for the Helm parameter 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: 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 - releaseName: - description: ReleaseName is the Helm release name - to use. If omitted it will use the application - name + name: + description: Name is the name of the Helm parameter 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") + value: + description: Value is the value for the Helm parameter type: string type: object - kustomize: - description: Kustomize holds kustomize specific options + 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=]: + 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 overrides the namePrefix in + the kustomization.yaml for Kustomize apps + type: string + nameSuffix: + description: NameSuffix overrides the nameSuffix in + the kustomization.yaml 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: - 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: + options: additionalProperties: - type: string - description: CommonAnnotations is a list of additional - annotations to add to rendered manifests + type: boolean 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 + 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 - components: - description: Components specifies a list of kustomize - components to add to the kustomization before - building + 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 - 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 - 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=]: + map: + additionalProperties: 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 - 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 + description: Map is the value of a map type parameter. + type: object + name: + description: Name is the name identifying a parameter. 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 + string: + description: String_ is the value of a string + type parameter. 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: 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 + tagPrefix: + description: |- + TagPrefix filters git tags to only those with this prefix before evaluating targetRevision as a semver constraint. + The prefix is stripped from tag names before comparison and re-added to the resolved version. + For example, with tagPrefix "component-b/" and targetRevision "1.0.*", tags like "component-b/1.0.0" and + "component-b/1.0.1" are candidates, and the constraint resolves to "component-b/1.0.1". + 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 - path: - description: Path is a directory path within the Git - repository, and is only valid for applications sourced - from Git. + include: + description: Include contains a glob pattern to match + paths against that should be explicitly included + during manifest generation type: string - plugin: - description: Plugin holds config management plugin - specific options + jsonnet: + description: Jsonnet holds options specific to Jsonnet properties: - env: - description: Env is a list of environment variable - entries + extVars: + description: ExtVars is a list of Jsonnet External + Variables items: - description: EnvEntry represents an entry in - the application's environment + description: JsonnetVar represents a variable + to be passed to jsonnet during manifest generation properties: + code: + type: boolean 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: + 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: - 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 + code: + type: boolean name: - description: Name is the name identifying - a parameter. type: string - string: - description: String_ is the value of a string - type parameter. + value: type: string + required: + - name + - value 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 + recurse: + description: Recurse specifies whether to scan a directory + recursively for manifests + type: boolean 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. + 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 - directory: - description: Directory holds path/directory specific - options + 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: - exclude: - description: Exclude contains a glob pattern - to match paths against that should be explicitly - excluded from being used during manifest generation + name: + description: Name is the name of the Helm parameter type: string - include: - description: Include contains a glob pattern - to match paths against that should be explicitly - included during manifest generation + path: + description: Path is the path to the file containing + the values for the Helm parameter 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 + 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: - 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). + forceString: + description: ForceString determines whether + to tell Helm to interpret booleans and numbers + as strings 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. + name: + description: Name is the name of the Helm parameter 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") + value: + description: Value is the value for the Helm + parameter 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 - 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=]: - 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 - 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: 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 - repoURL: - description: RepoURL is the URL to the repository - (Git or Helm) that contains the application manifests + 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 - 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: array + commonAnnotations: + additionalProperties: 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 + description: CommonAnnotations is a list of additional + annotations to add to rendered manifests 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 + 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 - 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 - 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. + components: + description: Components specifies a list of kustomize + components to add to the kustomization before building items: type: string type: array - fileParameters: - description: FileParameters are file parameters to - the helm template + 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: 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 + description: KustomizeImage represents a Kustomize + image definition in the format [old_image_name=]: + type: string 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 + 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 overrides the namePrefix in + the kustomization.yaml for Kustomize apps + type: string + nameSuffix: + description: NameSuffix overrides the nameSuffix in + the kustomization.yaml for Kustomize apps + type: string namespace: - description: Namespace is an optional namespace to - template with. If left empty, defaults to the app's - destination namespace. + description: Namespace sets the namespace that Kustomize + adds to all resources type: string - parameters: - description: Parameters is a list of Helm parameters - which are passed to the helm template command upon - manifest generation + patches: + description: Patches is a list of Kustomize patches 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 + options: + additionalProperties: + type: boolean + type: object + patch: type: string - value: - description: Value is the value for the Helm - parameter + path: 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 - 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=]: - 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 - 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 + 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: @@ -4229,6 +3240,13 @@ cluster: description: RepoURL is the URL to the repository (Git or Helm) that contains the application manifests type: string + tagPrefix: + description: |- + TagPrefix filters git tags to only those with this prefix before evaluating targetRevision as a semver constraint. + The prefix is stripped from tag names before comparison and re-added to the resolved version. + For example, with tagPrefix "component-b/" and targetRevision "1.0.*", tags like "component-b/1.0.0" and + "component-b/1.0.1" are candidates, and the constraint resolves to "component-b/1.0.1". + type: string targetRevision: description: |- TargetRevision defines the revision of the source to sync the application to. @@ -4238,480 +3256,2029 @@ cluster: required: - repoURL type: object - sources: - description: Source records the application source information - of the sync, used for comparing auto-sync + 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: - 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. + name: type: string - directory: - description: Directory holds path/directory specific - options + 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 + refresh: + description: 'Refresh indicates if the latest revision + should be used on retry instead of the initial one (default: + false)' + type: boolean + 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: - exclude: - description: Exclude contains a glob pattern to - match paths against that should be explicitly - excluded from being used during manifest generation + group: type: string - include: - description: Include contains a glob pattern to - match paths against that should be explicitly - included during manifest generation + kind: 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. + name: 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 + required: + - kind + - name 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: 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 - 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 - 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=]: + include: + description: Include contains a glob pattern to + match paths against that should be explicitly + included during manifest generation 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 - 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: + jsonnet: + description: Jsonnet holds options specific to + Jsonnet properties: - array: - description: Array is the value of an array - type parameter. + extVars: + description: ExtVars is a list of Jsonnet + External Variables items: - type: string + 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 - map: - additionalProperties: + libs: + description: Additional library search dirs + items: 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: 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 - 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 sync and health status of a resource - TODO: describe members of this type - properties: - group: - type: string - health: - description: HealthStatus contains information about the currently - observed health state of an application or resource - 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 - type: string - status: - description: Status holds the status code of the application - or resource - type: string - type: object - hook: - type: boolean - kind: - type: string - name: - type: string - namespace: - type: string - requiresDeletionConfirmation: - type: boolean - requiresPruning: - type: boolean - status: - description: SyncStatusCode is a type which represents possible - comparison results - type: string - syncWave: - format: int64 - type: integer - version: - 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 + 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=]: + 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 overrides the namePrefix + in the kustomization.yaml for Kustomize apps + type: string + nameSuffix: + description: NameSuffix overrides the nameSuffix + in the kustomization.yaml 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 + tagPrefix: + description: |- + TagPrefix filters git tags to only those with this prefix before evaluating targetRevision as a semver constraint. + The prefix is stripped from tag names before comparison and re-added to the resolved version. + For example, with tagPrefix "component-b/" and targetRevision "1.0.*", tags like "component-b/1.0.0" and + "component-b/1.0.1" are candidates, and the constraint resolves to "component-b/1.0.1". + 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=]: + 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 overrides the namePrefix + in the kustomization.yaml for Kustomize apps + type: string + nameSuffix: + description: NameSuffix overrides the nameSuffix + in the kustomization.yaml 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 + tagPrefix: + description: |- + TagPrefix filters git tags to only those with this prefix before evaluating targetRevision as a semver constraint. + The prefix is stripped from tag names before comparison and re-added to the resolved version. + For example, with tagPrefix "component-b/" and targetRevision "1.0.*", tags like "component-b/1.0.0" and + "component-b/1.0.1" are candidates, and the constraint resolves to "component-b/1.0.1". + 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=]: + 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 overrides the namePrefix in + the kustomization.yaml for Kustomize apps + type: string + nameSuffix: + description: NameSuffix overrides the nameSuffix in + the kustomization.yaml 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 + tagPrefix: + description: |- + TagPrefix filters git tags to only those with this prefix before evaluating targetRevision as a semver constraint. + The prefix is stripped from tag names before comparison and re-added to the resolved version. + For example, with tagPrefix "component-b/" and targetRevision "1.0.*", tags like "component-b/1.0.0" and + "component-b/1.0.1" are candidates, and the constraint resolves to "component-b/1.0.1". + 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=]: + 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 overrides the namePrefix + in the kustomization.yaml for Kustomize apps + type: string + nameSuffix: + description: NameSuffix overrides the nameSuffix + in the kustomization.yaml 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 + tagPrefix: + description: |- + TagPrefix filters git tags to only those with this prefix before evaluating targetRevision as a semver constraint. + The prefix is stripped from tag names before comparison and re-added to the resolved version. + For example, with tagPrefix "component-b/" and targetRevision "1.0.*", tags like "component-b/1.0.0" and + "component-b/1.0.1" are candidates, and the constraint resolves to "component-b/1.0.1". + 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: @@ -4723,17 +5290,480 @@ cluster: 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 + 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: + directory: + description: Directory specifies 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 specifies 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 specifies 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=]: + 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 overrides the namePrefix + in the kustomization.yaml for Kustomize apps + type: string + nameSuffix: + description: NameSuffix overrides the nameSuffix + in the kustomization.yaml 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 + path: + description: Path is a directory path within the Git + repository where the manifests are located + type: string + plugin: + description: Plugin specifies 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 + 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. The Path should never point to the root of the repo. If hydrateTo is set, this is just the path from which + hydrated manifests will be synced. + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: + description: |- + RepoURL is the URL to the git repository that contains the hydrated manifests. If not set, defaults to + the DrySource.RepoURL. + type: string + targetBranch: + description: |- + TargetBranch is the branch from which hydrated manifests will be synced. + If HydrateTo is not set, this is also the branch to which hydrated manifests are 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 + lastComparedDryRevision: + description: |- + LastComparedDryRevision holds the resolved revision from the most recent dry source comparison. + This is updated on every evaluation, even when hydration is skipped due to no changes. + type: string + 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 @@ -4742,10 +5772,380 @@ cluster: description: DrySource specifies where the dry "don't repeat yourself" manifest source lives. properties: + directory: + description: Directory specifies 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 specifies 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 specifies 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=]: + 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 overrides the namePrefix + in the kustomization.yaml for Kustomize apps + type: string + nameSuffix: + description: NameSuffix overrides the nameSuffix + in the kustomization.yaml 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 path: description: Path is a directory path within the Git repository where the manifests are located type: string + plugin: + description: Plugin specifies 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 repoURL: description: RepoURL is the URL to the git repository that contains the application manifests @@ -4778,90 +6178,20 @@ cluster: 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 + from. The Path should never point to the root of the repo. If hydrateTo is set, this is just the path from which + hydrated manifests will be synced. + minLength: 1 + pattern: ^.{2,}|[^./]$ 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. + RepoURL is the URL to the git repository that contains the hydrated manifests. If not set, defaults to + the DrySource.RepoURL. type: string targetBranch: - description: TargetBranch is the branch to which hydrated - manifests should be committed + description: |- + TargetBranch is the branch from which hydrated manifests will be synced. + If HydrateTo is not set, this is also the branch to which hydrated manifests are committed. type: string required: - path @@ -4899,6 +6229,10 @@ cluster: items: type: string type: array + isAppOfApps: + description: IsAppOfApps holds true if the application has any + application for child resource. + type: boolean type: object sync: description: Sync contains information about the application's current @@ -5184,6 +6518,11 @@ cluster: 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 @@ -5197,18 +6536,23 @@ cluster: 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 + description: NamePrefix overrides the namePrefix in + the kustomization.yaml for Kustomize apps type: string nameSuffix: - description: NameSuffix is a suffix appended to resources - for Kustomize apps + description: NameSuffix overrides the nameSuffix in + the kustomization.yaml for Kustomize apps type: string namespace: description: Namespace sets the namespace that Kustomize @@ -5337,6 +6681,13 @@ cluster: description: RepoURL is the URL to the repository (Git or Helm) that contains the application manifests type: string + tagPrefix: + description: |- + TagPrefix filters git tags to only those with this prefix before evaluating targetRevision as a semver constraint. + The prefix is stripped from tag names before comparison and re-added to the resolved version. + For example, with tagPrefix "component-b/" and targetRevision "1.0.*", tags like "component-b/1.0.0" and + "component-b/1.0.1" are candidates, and the constraint resolves to "component-b/1.0.1". + type: string targetRevision: description: |- TargetRevision defines the revision of the source to sync the application to. @@ -5578,6 +6929,11 @@ cluster: 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 @@ -5591,18 +6947,23 @@ cluster: 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 + description: NamePrefix overrides the namePrefix + in the kustomization.yaml for Kustomize apps type: string nameSuffix: - description: NameSuffix is a suffix appended to - resources for Kustomize apps + description: NameSuffix overrides the nameSuffix + in the kustomization.yaml for Kustomize apps type: string namespace: description: Namespace sets the namespace that Kustomize @@ -5732,6 +7093,13 @@ cluster: description: RepoURL is the URL to the repository (Git or Helm) that contains the application manifests type: string + tagPrefix: + description: |- + TagPrefix filters git tags to only those with this prefix before evaluating targetRevision as a semver constraint. + The prefix is stripped from tag names before comparison and re-added to the resolved version. + For example, with tagPrefix "component-b/" and targetRevision "1.0.*", tags like "component-b/1.0.0" and + "component-b/1.0.1" are candidates, and the constraint resolves to "component-b/1.0.1". + type: string targetRevision: description: |- TargetRevision defines the revision of the source to sync the application to. @@ -6043,12 +7411,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -6136,28 +7508,252 @@ cluster: 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: + name: + type: string + string: + type: string + type: object + type: array + type: object + ref: + type: string + repoURL: + type: string + tagPrefix: + type: string + targetRevision: + type: string + required: + - repoURL + type: object + sourceHydrator: + properties: + drySource: + properties: + 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 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 repoURL: type: string targetRevision: @@ -6177,6 +7773,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -6315,12 +7915,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -6419,6 +8023,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -6431,6 +8037,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -6462,6 +8070,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -6715,12 +8325,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -6742,94 +8356,318 @@ cluster: type: string target: properties: - annotationSelector: - type: string - group: - type: string - kind: + 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 + tagPrefix: + type: string + targetRevision: + type: string + required: + - repoURL + type: object + sourceHydrator: + properties: + drySource: + properties: + 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 - labelSelector: + 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 - namespace: + required: + - count + - name + type: object + type: array + version: + type: string + type: object + path: + type: string + plugin: + properties: + env: + items: + properties: + name: type: string - version: + value: type: string + required: + - name + - value 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: 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 - 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 + type: array + type: object repoURL: type: string targetRevision: @@ -6849,6 +8687,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -6987,12 +8829,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -7091,6 +8937,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -7103,6 +8951,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -7134,6 +8984,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -7169,6 +9021,8 @@ cluster: files: items: properties: + exclude: + type: boolean path: type: string required: @@ -7386,12 +9240,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -7490,6 +9348,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -7499,8 +9359,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -7520,6 +9602,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -7658,12 +9744,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -7762,6 +9852,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -7774,6 +9866,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -7805,6 +9899,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -8037,12 +10133,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -8141,6 +10241,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -8150,8 +10252,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -8171,6 +10495,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -8309,12 +10637,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -8413,6 +10745,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -8425,6 +10759,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -8456,6 +10792,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -8713,12 +11051,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -8817,6 +11159,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -8826,8 +11170,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -8847,6 +11413,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -8985,12 +11555,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -9089,6 +11663,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -9101,6 +11677,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -9132,6 +11710,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -9385,12 +11965,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -9489,6 +12073,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -9498,8 +12084,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -9519,6 +12327,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -9657,12 +12469,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -9761,6 +12577,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -9773,6 +12591,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -9804,6 +12624,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -9839,6 +12661,8 @@ cluster: files: items: properties: + exclude: + type: boolean path: type: string required: @@ -10056,12 +12880,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -10149,28 +12977,252 @@ cluster: 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: + name: + type: string + string: + type: string + type: object + type: array + type: object + ref: + type: string + repoURL: + type: string + tagPrefix: + type: string + targetRevision: + type: string + required: + - repoURL + type: object + sourceHydrator: + properties: + drySource: + properties: + 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 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 repoURL: type: string targetRevision: @@ -10190,6 +13242,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -10328,12 +13384,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -10432,6 +13492,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -10444,6 +13506,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -10475,6 +13539,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -10707,12 +13773,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -10811,6 +13881,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -10820,8 +13892,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -10841,6 +14135,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -10979,12 +14277,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -11083,6 +14385,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -11095,6 +14399,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -11126,6 +14432,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -11366,12 +14674,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -11459,28 +14771,252 @@ cluster: 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: + name: + type: string + string: + type: string + type: object + type: array + type: object + ref: + type: string + repoURL: + type: string + tagPrefix: + type: string + targetRevision: + type: string + required: + - repoURL + type: object + sourceHydrator: + properties: + drySource: + properties: + 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 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 repoURL: type: string targetRevision: @@ -11500,6 +15036,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -11638,12 +15178,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -11742,6 +15286,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -11754,6 +15300,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -11785,6 +15333,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -11940,6 +15490,8 @@ cluster: - project - repo type: object + continueOnRepoNotFoundError: + type: boolean filters: items: properties: @@ -11947,6 +15499,8 @@ cluster: type: string targetBranchMatch: type: string + titleMatch: + type: string type: object type: array gitea: @@ -11955,6 +15509,10 @@ cluster: type: string insecure: type: boolean + labels: + items: + type: string + type: array owner: type: string repo: @@ -12244,12 +15802,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -12348,6 +15910,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -12357,8 +15921,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -12378,6 +16164,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -12516,12 +16306,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -12620,6 +16414,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -12632,6 +16428,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -12663,6 +16461,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -12677,6 +16477,10 @@ cluster: - metadata - spec type: object + values: + additionalProperties: + type: string + type: object type: object scmProvider: properties: @@ -12832,6 +16636,8 @@ cluster: type: boolean api: type: string + excludeArchivedRepos: + type: boolean insecure: type: boolean owner: @@ -12858,6 +16664,8 @@ cluster: type: string appSecretName: type: string + excludeArchivedRepos: + type: boolean organization: type: string tokenRef: @@ -12891,6 +16699,8 @@ cluster: type: object group: type: string + includeArchivedRepos: + type: boolean includeSharedProjects: type: boolean includeSubgroups: @@ -13117,12 +16927,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -13221,6 +17035,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -13230,8 +17046,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -13251,6 +17289,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -13389,12 +17431,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -13493,6 +17539,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -13505,6 +17553,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -13536,6 +17586,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -13785,12 +17837,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -13889,6 +17945,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -13898,8 +17956,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -13919,6 +18199,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -14057,12 +18341,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -14161,6 +18449,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -14173,6 +18463,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -14204,6 +18496,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -14463,12 +18757,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -14567,6 +18865,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -14576,8 +18876,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -14597,6 +19119,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -14735,12 +19261,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -14839,6 +19369,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -14851,6 +19383,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -14882,6 +19416,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -15135,12 +19671,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -15239,6 +19779,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -15248,8 +19790,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -15269,6 +20033,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -15407,12 +20175,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -15511,6 +20283,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -15523,6 +20297,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -15554,6 +20330,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -15589,6 +20367,8 @@ cluster: files: items: properties: + exclude: + type: boolean path: type: string required: @@ -15806,12 +20586,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -15899,28 +20683,252 @@ cluster: 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: + name: + type: string + string: + type: string + type: object + type: array + type: object + ref: + type: string + repoURL: + type: string + tagPrefix: + type: string + targetRevision: + type: string + required: + - repoURL + type: object + sourceHydrator: + properties: + drySource: + properties: + 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 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 repoURL: type: string targetRevision: @@ -15940,6 +20948,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -16078,12 +21090,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -16182,6 +21198,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -16194,6 +21212,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -16225,6 +21245,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -16457,12 +21479,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -16561,6 +21587,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -16570,8 +21598,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -16591,6 +21841,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -16729,12 +21983,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -16833,6 +22091,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -16845,6 +22105,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -16876,6 +22138,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -17116,12 +22380,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -17220,6 +22488,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -17229,8 +22499,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -17250,6 +22742,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -17388,12 +22884,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -17492,6 +22992,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -17504,6 +23006,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -17535,6 +23039,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -17690,6 +23196,8 @@ cluster: - project - repo type: object + continueOnRepoNotFoundError: + type: boolean filters: items: properties: @@ -17697,6 +23205,8 @@ cluster: type: string targetBranchMatch: type: string + titleMatch: + type: string type: object type: array gitea: @@ -17705,6 +23215,10 @@ cluster: type: string insecure: type: boolean + labels: + items: + type: string + type: array owner: type: string repo: @@ -17994,12 +23508,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -18098,6 +23616,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -18107,8 +23627,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -18128,6 +23870,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -18266,12 +24012,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -18370,6 +24120,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -18382,6 +24134,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -18413,6 +24167,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -18427,6 +24183,10 @@ cluster: - metadata - spec type: object + values: + additionalProperties: + type: string + type: object type: object scmProvider: properties: @@ -18582,6 +24342,8 @@ cluster: type: boolean api: type: string + excludeArchivedRepos: + type: boolean insecure: type: boolean owner: @@ -18608,6 +24370,8 @@ cluster: type: string appSecretName: type: string + excludeArchivedRepos: + type: boolean organization: type: string tokenRef: @@ -18641,6 +24405,8 @@ cluster: type: object group: type: string + includeArchivedRepos: + type: boolean includeSharedProjects: type: boolean includeSubgroups: @@ -18867,12 +24633,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -18971,6 +24741,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -18980,8 +24752,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -19001,6 +24995,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -19139,12 +25137,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -19243,6 +25245,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -19255,6 +25259,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -19286,6 +25292,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -19539,12 +25547,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -19643,6 +25655,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -19652,8 +25666,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -19673,6 +25909,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -19811,12 +26051,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -19915,6 +26159,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -19927,6 +26173,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -19958,6 +26206,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -20197,12 +26447,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -20301,6 +26555,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -20310,8 +26566,230 @@ cluster: properties: drySource: properties: + 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 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 repoURL: type: string targetRevision: @@ -20331,6 +26809,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -20469,12 +26951,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -20573,6 +27059,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -20585,6 +27073,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -20616,6 +27106,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -20771,6 +27263,8 @@ cluster: - project - repo type: object + continueOnRepoNotFoundError: + type: boolean filters: items: properties: @@ -20778,6 +27272,8 @@ cluster: type: string targetBranchMatch: type: string + titleMatch: + type: string type: object type: array gitea: @@ -20786,6 +27282,10 @@ cluster: type: string insecure: type: boolean + labels: + items: + type: string + type: array owner: type: string repo: @@ -21075,12 +27575,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -21102,94 +27606,318 @@ cluster: type: string target: properties: - annotationSelector: - type: string - group: + 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 + tagPrefix: + type: string + targetRevision: + type: string + required: + - repoURL + type: object + sourceHydrator: + properties: + drySource: + properties: + 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 - kind: + required: + - count + - name + type: object + type: array + version: + type: string + type: object + path: + type: string + plugin: + properties: + env: + items: + properties: + name: type: string - labelSelector: + 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 - namespace: - type: string - version: + string: 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 + type: array + type: object repoURL: type: string targetRevision: @@ -21209,6 +27937,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -21347,12 +28079,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -21451,6 +28187,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -21463,6 +28201,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -21494,6 +28234,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -21508,6 +28250,10 @@ cluster: - metadata - spec type: object + values: + additionalProperties: + type: string + type: object type: object scmProvider: properties: @@ -21663,6 +28409,8 @@ cluster: type: boolean api: type: string + excludeArchivedRepos: + type: boolean insecure: type: boolean owner: @@ -21689,6 +28437,8 @@ cluster: type: string appSecretName: type: string + excludeArchivedRepos: + type: boolean organization: type: string tokenRef: @@ -21722,6 +28472,8 @@ cluster: type: object group: type: string + includeArchivedRepos: + type: boolean includeSharedProjects: type: boolean includeSubgroups: @@ -21948,12 +28700,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -22041,28 +28797,252 @@ cluster: 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: + name: + type: string + string: + type: string + type: object + type: array + type: object + ref: + type: string + repoURL: + type: string + tagPrefix: + type: string + targetRevision: + type: string + required: + - repoURL + type: object + sourceHydrator: + properties: + drySource: + properties: + 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 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 repoURL: type: string targetRevision: @@ -22082,6 +29062,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -22220,12 +29204,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -22324,6 +29312,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -22336,6 +29326,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -22367,6 +29359,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -22448,6 +29442,8 @@ cluster: type: object strategy: properties: + deletionOrder: + type: string rollingSync: properties: steps: @@ -22691,12 +29687,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -22784,28 +29784,252 @@ cluster: 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: + name: + type: string + string: + type: string + type: object + type: array + type: object + ref: + type: string + repoURL: + type: string + tagPrefix: + type: string + targetRevision: + type: string + required: + - repoURL + type: object + sourceHydrator: + properties: + drySource: + properties: + 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 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 repoURL: type: string targetRevision: @@ -22825,6 +30049,10 @@ cluster: syncSource: properties: path: + minLength: 1 + pattern: ^.{2,}|[^./]$ + type: string + repoURL: type: string targetBranch: type: string @@ -22963,12 +30191,16 @@ cluster: type: boolean forceCommonLabels: type: boolean + ignoreMissingComponents: + type: boolean images: items: type: string type: array kubeVersion: type: string + labelIncludeTemplates: + type: boolean labelWithoutSelector: type: boolean namePrefix: @@ -23067,6 +30299,8 @@ cluster: type: string repoURL: type: string + tagPrefix: + type: string targetRevision: type: string required: @@ -23079,6 +30313,8 @@ cluster: properties: allowEmpty: type: boolean + enabled: + type: boolean prune: type: boolean selfHeal: @@ -23110,6 +30346,8 @@ cluster: limit: format: int64 type: integer + refresh: + type: boolean type: object syncOptions: items: @@ -23179,6 +30417,16 @@ cluster: - type type: object type: array + health: + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + status: + type: string + type: object resources: items: properties: @@ -23215,6 +30463,9 @@ cluster: type: string type: object type: array + resourcesCount: + format: int64 + type: integer type: object required: - metadata @@ -23279,14 +30530,18 @@ cluster: 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 + description: ClusterResourceRestrictionItem is a cluster resource + that is restricted by the project's whitelist or blacklist properties: group: type: string kind: type: string + name: + description: |- + Name is the name of the restricted resource. Glob patterns using Go's filepath.Match syntax are supported. + Unlike the group and kind fields, if no name is specified, all resources of the specified group/kind are matched. + type: string required: - group - kind @@ -23296,14 +30551,18 @@ cluster: 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 + description: ClusterResourceRestrictionItem is a cluster resource + that is restricted by the project's whitelist or blacklist properties: group: type: string kind: type: string + name: + description: |- + Name is the name of the restricted resource. Glob patterns using Go's filepath.Match syntax are supported. + Unlike the group and kind fields, if no name is specified, all resources of the specified group/kind are matched. + type: string required: - group - kind @@ -23311,6 +30570,7 @@ cluster: type: array description: description: Description contains optional project description + maxLength: 255 type: string destinationServiceAccounts: description: DestinationServiceAccounts holds information about the @@ -23473,11 +30733,15 @@ cluster: 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 + description: |- + SignatureKeys contains a list of PGP key IDs that commits in Git must be signed with in order to be allowed for sync + + Deprecated: Use SourceIntegrity instead. SignatureKeys will be removed with the next major version. items: - description: SignatureKey is the specification of a key required - to verify commit signatures with + description: |- + SignatureKey is the specification of a key required to verify commit signatures with + + Deprecated: Use SourceIntegrity instead. SignatureKeys will be removed with the next major version. properties: keyID: description: The ID of the key in hexadecimal notation @@ -23486,6 +30750,55 @@ cluster: - keyID type: object type: array + sourceIntegrity: + description: |- + SourceIntegrity represents a constraint on manifest sources integrity to be met before they can be used. + Do not access directly, use EffectiveSourceIntegrity() for correct backwards compatibility handling. + properties: + git: + description: Git - policies for git source verification + properties: + policies: + items: + properties: + gpg: + description: Verify GPG commit/tag signatures + properties: + keys: + description: List of key IDs to trust. The keys + need to be in the repository server keyring. + items: + type: string + type: array + mode: + type: string + required: + - keys + - mode + type: object + repos: + description: List of repository criteria restricting + repositories the policy will apply to + items: + properties: + url: + description: URL specifier, glob. + type: string + required: + - url + type: object + type: array + required: + - gpg + - repos + type: object + type: array + required: + - policies + type: object + required: + - git + type: object sourceNamespaces: description: SourceNamespaces defines the namespaces application resources are allowed to be created in @@ -23505,6 +30818,10 @@ cluster: 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 @@ -23517,6 +30834,11 @@ cluster: 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 @@ -23538,6 +30860,12 @@ cluster: description: Schedule is the time the window will begin, specified in cron format type: string + syncOverrun: + description: |- + SyncOverrun allows ongoing syncs to continue in two scenarios: + For deny windows: allows syncs that started before the deny window became active to continue running + For allow windows: allows syncs that started during the allow window to continue after the window ends + type: boolean timeZone: description: TimeZone of the sync that will be applied to the schedule @@ -23675,6 +31003,7 @@ cluster: - argoproj.io resources: - applications + - applicationsets - appprojects verbs: - create @@ -23760,14 +31089,21 @@ cluster: - list - watch - apiGroups: - - apps - - extensions + - coordination.k8s.io resources: - - deployments + - leases + verbs: + - create + - apiGroups: + - coordination.k8s.io + resourceNames: + - 58ac56fa.applicationsets.argoproj.io + resources: + - leases verbs: - get - - list - - watch + - update + - create --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role @@ -23948,14 +31284,6 @@ cluster: - patch - update - watch - - apiGroups: - - argoproj.io - resources: - - applicationsets/status - verbs: - - get - - patch - - update - apiGroups: - argoproj.io resources: @@ -23965,23 +31293,19 @@ cluster: - list - watch - apiGroups: - - "" + - argoproj.io resources: - - events + - applicationsets/status verbs: - - create - get - - list - patch - - watch + - update - apiGroups: - "" resources: - - configmaps + - events verbs: - create - - update - - delete - get - list - patch @@ -23990,31 +31314,27 @@ cluster: - "" resources: - secrets + - configmaps verbs: - get - list - watch - apiGroups: - - apps - - extensions + - coordination.k8s.io resources: - - deployments + - leases verbs: - - get - - list - - watch + - create - apiGroups: - coordination.k8s.io + resourceNames: + - 58ac56fa.applicationsets.argoproj.io resources: - leases verbs: - - create - - delete - get - - list - - patch - update - - watch + - create --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole @@ -24228,6 +31548,101 @@ cluster: namespace: argocd --- apiVersion: v1 + data: + application.resourceTrackingMethod: label + resource.customizations.ignoreResourceUpdates.ConfigMap: | + jqPathExpressions: + # Ignore the cluster-autoscaler status + - '.metadata.annotations."cluster-autoscaler.kubernetes.io/last-updated"' + # Ignore the annotation of the legacy Leases election + - '.metadata.annotations."control-plane.alpha.kubernetes.io/leader"' + resource.customizations.ignoreResourceUpdates.Endpoints: | + jsonPointers: + - /metadata + - /subsets + resource.customizations.ignoreResourceUpdates.all: | + jsonPointers: + - /status + resource.customizations.ignoreResourceUpdates.apps_ReplicaSet: | + jqPathExpressions: + - '.metadata.annotations."deployment.kubernetes.io/desired-replicas"' + - '.metadata.annotations."deployment.kubernetes.io/max-replicas"' + - '.metadata.annotations."rollout.argoproj.io/desired-replicas"' + resource.customizations.ignoreResourceUpdates.argoproj.io_Application: | + jqPathExpressions: + - '.metadata.annotations."notified.notifications.argoproj.io"' + - '.metadata.annotations."argocd.argoproj.io/refresh"' + - '.metadata.annotations."argocd.argoproj.io/hydrate"' + - '.operation' + resource.customizations.ignoreResourceUpdates.argoproj.io_Rollout: | + jqPathExpressions: + - '.metadata.annotations."notified.notifications.argoproj.io"' + resource.customizations.ignoreResourceUpdates.autoscaling_HorizontalPodAutoscaler: | + jqPathExpressions: + - '.metadata.annotations."autoscaling.alpha.kubernetes.io/behavior"' + - '.metadata.annotations."autoscaling.alpha.kubernetes.io/conditions"' + - '.metadata.annotations."autoscaling.alpha.kubernetes.io/metrics"' + - '.metadata.annotations."autoscaling.alpha.kubernetes.io/current-metrics"' + resource.customizations.ignoreResourceUpdates.discovery.k8s.io_EndpointSlice: | + jsonPointers: + - /metadata + - /endpoints + - /ports + resource.exclusions: | + ### Network resources created by the Kubernetes control plane and excluded to reduce the number of watched events and UI clutter + - apiGroups: + - '' + - discovery.k8s.io + kinds: + - Endpoints + - EndpointSlice + ### Internal Kubernetes resources excluded reduce the number of watched events + - apiGroups: + - coordination.k8s.io + kinds: + - Lease + ### Internal Kubernetes Authz/Authn resources excluded reduce the number of watched events + - apiGroups: + - authentication.k8s.io + - authorization.k8s.io + kinds: + - SelfSubjectReview + - TokenReview + - LocalSubjectAccessReview + - SelfSubjectAccessReview + - SelfSubjectRulesReview + - SubjectAccessReview + ### Intermediate Certificate Request excluded reduce the number of watched events + - apiGroups: + - certificates.k8s.io + kinds: + - CertificateSigningRequest + - apiGroups: + - cert-manager.io + kinds: + - CertificateRequest + ### Cilium internal resources excluded reduce the number of watched events and UI Clutter + - apiGroups: + - cilium.io + kinds: + - CiliumIdentity + - CiliumEndpoint + - CiliumEndpointSlice + ### Kyverno intermediate and reporting resources excluded reduce the number of watched events and improve performance + - apiGroups: + - kyverno.io + - reports.kyverno.io + - wgpolicyk8s.io + kinds: + - PolicyReport + - ClusterPolicyReport + - EphemeralReport + - ClusterEphemeralReport + - AdmissionReport + - ClusterAdmissionReport + - BackgroundScanReport + - ClusterBackgroundScanReport + - UpdateRequest kind: ConfigMap metadata: labels: @@ -24515,6 +31930,12 @@ cluster: - args: - /usr/local/bin/argocd-applicationset-controller env: + - name: GRPC_ENABLE_TXT_SERVICE_CONFIG + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.grpc.enable.txt.service.config + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_APPLICATIONSET_CONTROLLER_GLOBAL_PRESERVED_ANNOTATIONS valueFrom: configMapKeyRef: @@ -24573,6 +31994,54 @@ cluster: key: applicationsetcontroller.log.level name: argocd-cmd-params-cm optional: true + - name: ARGOCD_LOG_FORMAT_TIMESTAMP + valueFrom: + configMapKeyRef: + key: log.format.timestamp + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_CLIENT_QPS + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.k8s.client.qps + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_CLIENT_BURST + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.k8s.client.burst + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_CLIENT_MAX_IDLE_CONNECTIONS + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.k8s.client.max.idle.connections + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_TCP_TIMEOUT + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.k8s.tcp.timeout + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_TCP_KEEPALIVE + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.k8s.tcp.keepalive + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_TLS_HANDSHAKE_TIMEOUT + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.k8s.tls.handshake.timeout + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_TCP_IDLE_TIMEOUT + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.k8s.tcp.idle.timeout + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_APPLICATIONSET_CONTROLLER_DRY_RUN valueFrom: configMapKeyRef: @@ -24615,6 +32084,24 @@ cluster: key: applicationsetcontroller.repo.server.strict.tls name: argocd-cmd-params-cm optional: true + - name: ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER_CA_CERT_PATH + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.repo.server.ca.cert.path + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER_CLIENT_CERT_PATH + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.repo.server.client.cert.path + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER_CLIENT_CERT_KEY_PATH + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.repo.server.client.cert.key.path + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER_TIMEOUT_SECONDS valueFrom: configMapKeyRef: @@ -24651,6 +32138,12 @@ cluster: key: applicationsetcontroller.enable.scm.providers name: argocd-cmd-params-cm optional: true + - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_GITHUB_API_METRICS + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.enable.github.api.metrics + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_APPLICATIONSET_CONTROLLER_WEBHOOK_PARALLELISM_LIMIT valueFrom: configMapKeyRef: @@ -24663,7 +32156,13 @@ cluster: key: applicationsetcontroller.requeue.after name: argocd-cmd-params-cm optional: true - image: quay.io/argoproj/argocd:v2.14.4 + - name: ARGOCD_APPLICATIONSET_CONTROLLER_MAX_RESOURCES_STATUS_COUNT + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.status.max.resources.count + name: argocd-cmd-params-cm + optional: true + image: quay.io/argoproj/argocd:v3.5.0 imagePullPolicy: Always name: argocd-applicationset-controller ports: @@ -24700,6 +32199,10 @@ cluster: name: tmp - mountPath: /app/config/reposerver/tls name: argocd-repo-server-tls + - mountPath: /app/config/reposerver/mtls + name: argocd-repo-server-mtls + - mountPath: /home/argocd/params + name: argocd-cmd-params-cm nodeSelector: kubernetes.io/os: linux serviceAccountName: argocd-applicationset-controller @@ -24727,7 +32230,25 @@ cluster: - key: ca.crt path: ca.crt optional: true - secretName: argocd-repo-server-tls + secretName: argocd-repo-server-tls + - name: argocd-repo-server-mtls + secret: + items: + - key: client.crt + path: client.crt + - key: client.key + path: client.key + - key: server-ca.crt + path: server-ca.crt + optional: true + secretName: argocd-repo-server-mtls + - configMap: + items: + - key: applicationsetcontroller.profile.enabled + path: profiler.enabled + name: argocd-cmd-params-cm + optional: true + name: argocd-cmd-params-cm --- apiVersion: apps/v1 kind: Deployment @@ -24773,13 +32294,25 @@ cluster: key: dexserver.log.level name: argocd-cmd-params-cm optional: true + - name: ARGOCD_LOG_FORMAT_TIMESTAMP + valueFrom: + configMapKeyRef: + key: log.format.timestamp + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_DEX_SERVER_DISABLE_TLS valueFrom: configMapKeyRef: key: dexserver.disable.tls name: argocd-cmd-params-cm optional: true - image: ghcr.io/dexidp/dex:v2.41.1 + - name: DEX_CONTINUE_ON_CONNECTOR_FAILURE + valueFrom: + configMapKeyRef: + key: dexserver.connector.failure.continue + name: argocd-cmd-params-cm + optional: true + image: ghcr.io/dexidp/dex:v2.45.0 imagePullPolicy: Always name: dex ports: @@ -24800,6 +32333,7 @@ cluster: - ALL readOnlyRootFilesystem: true runAsNonRoot: true + runAsUser: 1001 seccompProfile: type: RuntimeDefault volumeMounts: @@ -24815,7 +32349,7 @@ cluster: - -n - /usr/local/bin/argocd - /shared/argocd-dex - image: quay.io/argoproj/argocd:v2.14.4 + image: quay.io/argoproj/argocd:v3.5.0 imagePullPolicy: Always name: copyutil securityContext: @@ -24888,6 +32422,18 @@ cluster: key: notificationscontroller.log.level name: argocd-cmd-params-cm optional: true + - name: ARGOCD_NOTIFICATION_CONTROLLER_PROCESSORS_COUNT + valueFrom: + configMapKeyRef: + key: notificationscontroller.processors.count + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_LOG_FORMAT_TIMESTAMP + valueFrom: + configMapKeyRef: + key: log.format.timestamp + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_APPLICATION_NAMESPACES valueFrom: configMapKeyRef: @@ -24906,7 +32452,25 @@ cluster: key: notificationscontroller.repo.server.plaintext name: argocd-cmd-params-cm optional: true - image: quay.io/argoproj/argocd:v2.14.4 + - name: ARGOCD_NOTIFICATION_CONTROLLER_REPO_SERVER_CA_CERT_PATH + valueFrom: + configMapKeyRef: + key: notificationscontroller.repo.server.ca.cert.path + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_NOTIFICATION_CONTROLLER_REPO_SERVER_CLIENT_CERT_PATH + valueFrom: + configMapKeyRef: + key: notificationscontroller.repo.server.client.cert.path + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_NOTIFICATION_CONTROLLER_REPO_SERVER_CLIENT_CERT_KEY_PATH + valueFrom: + configMapKeyRef: + key: notificationscontroller.repo.server.client.cert.key.path + name: argocd-cmd-params-cm + optional: true + image: quay.io/argoproj/argocd:v3.5.0 imagePullPolicy: Always livenessProbe: tcpSocket: @@ -24930,6 +32494,8 @@ cluster: name: tls-certs - mountPath: /app/config/reposerver/tls name: argocd-repo-server-tls + - mountPath: /app/config/reposerver/mtls + name: argocd-repo-server-mtls workingDir: /app nodeSelector: kubernetes.io/os: linux @@ -24953,6 +32519,17 @@ cluster: path: ca.crt optional: true secretName: argocd-repo-server-tls + - name: argocd-repo-server-mtls + secret: + items: + - key: client.crt + path: client.crt + - key: client.key + path: client.key + - key: server-ca.crt + path: server-ca.crt + optional: true + secretName: argocd-repo-server-mtls --- apiVersion: apps/v1 kind: Deployment @@ -25000,7 +32577,7 @@ cluster: secretKeyRef: key: auth name: argocd-redis - image: redis:7.0.15-alpine + image: public.ecr.aws/docker/library/redis:8.2.3-alpine imagePullPolicy: Always name: redis ports: @@ -25023,7 +32600,7 @@ cluster: - argocd - admin - redis-initial-password - image: quay.io/argoproj/argocd:v2.14.4 + image: quay.io/argoproj/argocd:v3.5.0 imagePullPolicy: IfNotPresent name: secret-init securityContext: @@ -25087,6 +32664,12 @@ cluster: secretKeyRef: key: auth name: argocd-redis + - name: GRPC_ENABLE_TXT_SERVICE_CONFIG + valueFrom: + configMapKeyRef: + key: reposerver.grpc.enable.txt.service.config + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_RECONCILIATION_TIMEOUT valueFrom: configMapKeyRef: @@ -25105,6 +32688,12 @@ cluster: key: reposerver.log.level name: argocd-cmd-params-cm optional: true + - name: ARGOCD_LOG_FORMAT_TIMESTAMP + valueFrom: + configMapKeyRef: + key: log.format.timestamp + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_REPO_SERVER_PARALLELISM_LIMIT valueFrom: configMapKeyRef: @@ -25147,6 +32736,12 @@ cluster: key: reposerver.tls.ciphers name: argocd-cmd-params-cm optional: true + - name: ARGOCD_REPO_SERVER_CLIENT_CA_PATH + valueFrom: + configMapKeyRef: + key: reposerver.client.ca.path + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_REPO_CACHE_EXPIRATION valueFrom: configMapKeyRef: @@ -25195,6 +32790,12 @@ cluster: key: otlp.headers name: argocd-cmd-params-cm optional: true + - name: ARGOCD_REPO_SERVER_OTLP_ATTRS + valueFrom: + configMapKeyRef: + key: otlp.attrs + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_REPO_SERVER_MAX_COMBINED_DIRECTORY_MANIFESTS_SIZE valueFrom: configMapKeyRef: @@ -25243,6 +32844,24 @@ cluster: key: reposerver.disable.helm.manifest.max.extracted.size 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: @@ -25267,6 +32886,12 @@ cluster: key: reposerver.git.request.timeout name: argocd-cmd-params-cm optional: true + - name: ARGOCD_REPO_SERVER_ENABLE_BUILTIN_GIT_CONFIG + valueFrom: + configMapKeyRef: + key: reposerver.enable.builtin.git.config + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_GRPC_MAX_SIZE_MB valueFrom: configMapKeyRef: @@ -25279,13 +32904,19 @@ cluster: key: reposerver.include.hidden.directories name: argocd-cmd-params-cm optional: true + - name: ARGOCD_HELM_USER_AGENT + valueFrom: + configMapKeyRef: + key: reposerver.helm.user.agent + name: argocd-cmd-params-cm + optional: true - name: HELM_CACHE_HOME value: /helm-working-dir - name: HELM_CONFIG_HOME value: /helm-working-dir - name: HELM_DATA_HOME value: /helm-working-dir - image: quay.io/argoproj/argocd:v2.14.4 + image: quay.io/argoproj/argocd:v3.5.0 imagePullPolicy: Always livenessProbe: failureThreshold: 3 @@ -25332,19 +32963,24 @@ cluster: name: gpg-keyring - mountPath: /app/config/reposerver/tls name: argocd-repo-server-tls + - mountPath: /app/config/reposerver/mtls + name: argocd-repo-server-mtls - mountPath: /tmp name: tmp - mountPath: /helm-working-dir name: helm-working-dir - mountPath: /home/argocd/cmp-server/plugins name: plugins + - mountPath: /home/argocd/params + name: argocd-cmd-params-cm initContainers: - - command: - - /bin/cp - - -n - - /usr/local/bin/argocd - - /var/run/argocd/argocd-cmp-server - image: quay.io/argoproj/argocd:v2.14.4 + - args: + - /bin/cp /usr/local/bin/argocd /var/run/argocd/argocd && /bin/ln -sf /var/run/argocd/argocd + /var/run/argocd/argocd-cmp-server + command: + - sh + - -c + image: quay.io/argoproj/argocd:v3.5.0 name: copyutil securityContext: allowPrivilegeEscalation: false @@ -25388,10 +33024,24 @@ cluster: path: ca.crt optional: true secretName: argocd-repo-server-tls + - name: argocd-repo-server-mtls + secret: + items: + - key: client-ca.crt + path: client-ca.crt + optional: true + secretName: argocd-repo-server-mtls - emptyDir: {} name: var-files - emptyDir: {} name: plugins + - configMap: + items: + - key: reposerver.profile.enabled + path: profiler.enabled + name: argocd-cmd-params-cm + optional: true + name: argocd-cmd-params-cm --- apiVersion: apps/v1 kind: Deployment @@ -25436,6 +33086,12 @@ cluster: secretKeyRef: key: auth name: argocd-redis + - name: GRPC_ENABLE_TXT_SERVICE_CONFIG + valueFrom: + configMapKeyRef: + key: server.grpc.enable.txt.service.config + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_SERVER_INSECURE valueFrom: configMapKeyRef: @@ -25466,6 +33122,48 @@ cluster: key: server.log.level name: argocd-cmd-params-cm optional: true + - name: ARGOCD_K8S_CLIENT_QPS + valueFrom: + configMapKeyRef: + key: server.k8s.client.qps + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_CLIENT_BURST + valueFrom: + configMapKeyRef: + key: server.k8s.client.burst + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_CLIENT_MAX_IDLE_CONNECTIONS + valueFrom: + configMapKeyRef: + key: server.k8s.client.max.idle.connections + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_TCP_TIMEOUT + valueFrom: + configMapKeyRef: + key: server.k8s.tcp.timeout + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_TCP_KEEPALIVE + valueFrom: + configMapKeyRef: + key: server.k8s.tcp.keepalive + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_TLS_HANDSHAKE_TIMEOUT + valueFrom: + configMapKeyRef: + key: server.k8s.tls.handshake.timeout + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_TCP_IDLE_TIMEOUT + valueFrom: + configMapKeyRef: + key: server.k8s.tcp.idle.timeout + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_SERVER_REPO_SERVER valueFrom: configMapKeyRef: @@ -25520,6 +33218,24 @@ cluster: key: server.repo.server.strict.tls name: argocd-cmd-params-cm optional: true + - name: ARGOCD_SERVER_REPO_SERVER_CA_CERT_PATH + valueFrom: + configMapKeyRef: + key: server.repo.server.ca.cert.path + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_SERVER_REPO_SERVER_CLIENT_CERT_PATH + valueFrom: + configMapKeyRef: + key: server.repo.server.client.cert.path + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_SERVER_REPO_SERVER_CLIENT_CERT_KEY_PATH + valueFrom: + configMapKeyRef: + key: server.repo.server.client.cert.key.path + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_SERVER_DEX_SERVER_PLAINTEXT valueFrom: configMapKeyRef: @@ -25562,12 +33278,6 @@ cluster: key: server.oidc.cache.expiration name: argocd-cmd-params-cm optional: true - - name: ARGOCD_SERVER_LOGIN_ATTEMPTS_EXPIRATION - valueFrom: - configMapKeyRef: - key: server.login.attempts.expiration - name: argocd-cmd-params-cm - optional: true - name: ARGOCD_SERVER_STATIC_ASSETS valueFrom: configMapKeyRef: @@ -25640,6 +33350,12 @@ cluster: key: otlp.headers name: argocd-cmd-params-cm optional: true + - name: ARGOCD_SERVER_OTLP_ATTRS + valueFrom: + configMapKeyRef: + key: otlp.attrs + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_APPLICATION_NAMESPACES valueFrom: configMapKeyRef: @@ -25676,6 +33392,18 @@ cluster: key: server.webhook.parallelism.limit name: argocd-cmd-params-cm optional: true + - name: ARGOCD_SERVER_GLOB_CACHE_SIZE + valueFrom: + configMapKeyRef: + key: server.glob.cache.size + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_SERVER_WEBHOOK_REFRESH_WORKERS + valueFrom: + configMapKeyRef: + key: server.webhook.refresh.workers + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_NEW_GIT_FILE_GLOBBING valueFrom: configMapKeyRef: @@ -25700,13 +33428,25 @@ cluster: key: applicationsetcontroller.enable.scm.providers name: argocd-cmd-params-cm optional: true + - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_GITHUB_API_METRICS + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.enable.github.api.metrics + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_HYDRATOR_ENABLED valueFrom: configMapKeyRef: key: hydrator.enabled name: argocd-cmd-params-cm optional: true - image: quay.io/argoproj/argocd:v2.14.4 + - name: ARGOCD_SYNC_WITH_REPLACE_ALLOWED + valueFrom: + configMapKeyRef: + key: server.sync.replace.allowed + name: argocd-cmd-params-cm + optional: true + image: quay.io/argoproj/argocd:v3.5.0 imagePullPolicy: Always livenessProbe: httpGet: @@ -25748,6 +33488,8 @@ cluster: name: tls-certs - mountPath: /app/config/server/tls name: argocd-repo-server-tls + - mountPath: /app/config/reposerver/mtls + name: argocd-repo-server-mtls - mountPath: /app/config/dex/tls name: argocd-dex-server-tls - mountPath: /home/argocd @@ -25790,6 +33532,17 @@ cluster: path: ca.crt optional: true secretName: argocd-dex-server-tls + - name: argocd-repo-server-mtls + secret: + items: + - key: client.crt + path: client.crt + - key: client.key + path: client.key + - key: server-ca.crt + path: server-ca.crt + optional: true + secretName: argocd-repo-server-mtls - configMap: items: - key: server.profile.enabled @@ -25842,6 +33595,12 @@ cluster: secretKeyRef: key: auth name: argocd-redis + - name: GRPC_ENABLE_TXT_SERVICE_CONFIG + valueFrom: + configMapKeyRef: + key: controller.grpc.enable.txt.service.config + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_CONTROLLER_REPLICAS value: "1" - name: ARGOCD_RECONCILIATION_TIMEOUT @@ -25892,6 +33651,12 @@ cluster: key: controller.operation.processors name: argocd-cmd-params-cm optional: true + - name: ARGOCD_APPLICATION_CONTROLLER_HYDRATION_PROCESSORS + valueFrom: + configMapKeyRef: + key: controller.hydration.processors + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_APPLICATION_CONTROLLER_LOGFORMAT valueFrom: configMapKeyRef: @@ -25904,6 +33669,54 @@ cluster: key: controller.log.level name: argocd-cmd-params-cm optional: true + - name: ARGOCD_LOG_FORMAT_TIMESTAMP + valueFrom: + configMapKeyRef: + key: log.format.timestamp + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_CLIENT_QPS + valueFrom: + configMapKeyRef: + key: controller.k8s.client.qps + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_CLIENT_BURST + valueFrom: + configMapKeyRef: + key: controller.k8s.client.burst + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_CLIENT_MAX_IDLE_CONNECTIONS + valueFrom: + configMapKeyRef: + key: controller.k8s.client.max.idle.connections + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_TCP_TIMEOUT + valueFrom: + configMapKeyRef: + key: controller.k8s.tcp.timeout + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_TCP_KEEPALIVE + valueFrom: + configMapKeyRef: + key: controller.k8s.tcp.keepalive + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_TLS_HANDSHAKE_TIMEOUT + valueFrom: + configMapKeyRef: + key: controller.k8s.tls.handshake.timeout + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_K8S_TCP_IDLE_TIMEOUT + valueFrom: + configMapKeyRef: + key: controller.k8s.tcp.idle.timeout + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_APPLICATION_CONTROLLER_METRICS_CACHE_EXPIRATION valueFrom: configMapKeyRef: @@ -25934,6 +33747,18 @@ cluster: key: controller.self.heal.backoff.cap.seconds name: argocd-cmd-params-cm optional: true + - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_COOLDOWN_SECONDS + valueFrom: + configMapKeyRef: + key: controller.self.heal.backoff.cooldown.seconds + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_SYNC_WAVE_DELAY + valueFrom: + configMapKeyRef: + key: controller.sync.wave.delay.seconds + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_APPLICATION_CONTROLLER_SYNC_TIMEOUT valueFrom: configMapKeyRef: @@ -25952,6 +33777,24 @@ cluster: key: controller.repo.server.strict.tls name: argocd-cmd-params-cm optional: true + - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_CA_CERT_PATH + valueFrom: + configMapKeyRef: + key: controller.repo.server.ca.cert.path + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_CLIENT_CERT_PATH + valueFrom: + configMapKeyRef: + key: controller.repo.server.client.cert.path + name: argocd-cmd-params-cm + optional: true + - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_CLIENT_CERT_KEY_PATH + valueFrom: + configMapKeyRef: + key: controller.repo.server.client.cert.key.path + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_APPLICATION_CONTROLLER_PERSIST_RESOURCE_HEALTH valueFrom: configMapKeyRef: @@ -26006,6 +33849,12 @@ cluster: key: otlp.headers name: argocd-cmd-params-cm optional: true + - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_ATTRS + valueFrom: + configMapKeyRef: + key: otlp.attrs + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_APPLICATION_NAMESPACES valueFrom: configMapKeyRef: @@ -26066,9 +33915,15 @@ cluster: key: controller.cluster.cache.events.processing.interval name: argocd-cmd-params-cm optional: true + - name: ARGOCD_APPLICATION_CONTROLLER_COMMIT_SERVER + valueFrom: + configMapKeyRef: + key: commit.server + name: argocd-cmd-params-cm + optional: true - name: KUBECACHEDIR value: /tmp/kubecache - image: quay.io/argoproj/argocd:v2.14.4 + image: quay.io/argoproj/argocd:v3.5.0 imagePullPolicy: Always name: argocd-application-controller ports: @@ -26098,6 +33953,8 @@ cluster: volumeMounts: - mountPath: /app/config/controller/tls name: argocd-repo-server-tls + - mountPath: /app/config/reposerver/mtls + name: argocd-repo-server-mtls - mountPath: /home/argocd name: argocd-home - mountPath: /home/argocd/params @@ -26124,6 +33981,17 @@ cluster: path: ca.crt optional: true secretName: argocd-repo-server-tls + - name: argocd-repo-server-mtls + secret: + items: + - key: client.crt + path: client.crt + - key: client.key + path: client.key + - key: server-ca.crt + path: server-ca.crt + optional: true + secretName: argocd-repo-server-mtls - configMap: items: - key: controller.profile.enabled @@ -26135,6 +34003,10 @@ cluster: apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: + labels: + app.kubernetes.io/component: application-controller + app.kubernetes.io/name: argocd-application-controller + app.kubernetes.io/part-of: argocd name: argocd-application-controller-network-policy namespace: argocd spec: @@ -26152,6 +34024,10 @@ cluster: apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: + labels: + app.kubernetes.io/component: applicationset-controller + app.kubernetes.io/name: argocd-applicationset-controller + app.kubernetes.io/part-of: argocd name: argocd-applicationset-controller-network-policy namespace: argocd spec: @@ -26172,6 +34048,10 @@ cluster: apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: + labels: + app.kubernetes.io/component: dex-server + app.kubernetes.io/name: argocd-dex-server + app.kubernetes.io/part-of: argocd name: argocd-dex-server-network-policy namespace: argocd spec: @@ -26221,6 +34101,10 @@ cluster: apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: + labels: + app.kubernetes.io/component: redis + app.kubernetes.io/name: argocd-redis + app.kubernetes.io/part-of: argocd name: argocd-redis-network-policy namespace: argocd spec: @@ -26247,6 +34131,10 @@ cluster: apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: + labels: + app.kubernetes.io/component: repo-server + app.kubernetes.io/name: argocd-repo-server + app.kubernetes.io/part-of: argocd name: argocd-repo-server-network-policy namespace: argocd spec: @@ -26280,6 +34168,10 @@ cluster: apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: + labels: + app.kubernetes.io/component: server + app.kubernetes.io/name: argocd-server + app.kubernetes.io/part-of: argocd name: argocd-server-network-policy namespace: argocd spec: @@ -26376,6 +34268,9 @@ cluster: selfHeal: true syncOptions: - CreateNamespace=true + # Allow a CRD-owning chart to establish its custom resource type when + # API discovery lags a cold-cluster bootstrap. + - SkipDryRunOnMissingResource=true - name: argocd-bootstrap contents: | apiVersion: argoproj.io/v1alpha1 diff --git a/omni/scripts/apply-inline-manifests.sh b/omni/scripts/apply-inline-manifests.sh new file mode 100755 index 0000000..4bde843 --- /dev/null +++ b/omni/scripts/apply-inline-manifests.sh @@ -0,0 +1,87 @@ +#!/usr/bin/env bash +# Apply generated unraid-lab inline manifests and upgrade the live Argo install. +set -euo pipefail + +CLUSTER="unraid-lab" +REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +MANIFESTS="$REPO_ROOT/clusters/$CLUSTER/omni/inline-manifests.yaml" +PATCH_ID="202-cluster-$CLUSTER-omni/patches/inline-manifests.yaml" + +[[ -f "$MANIFESTS" ]] || { + printf 'missing %s\n' "$MANIFESTS" >&2 + exit 1 +} + +temporary="$(mktemp -d)" +trap 'rm -rf "$temporary"' EXIT + +cat >"$temporary/configpatch.yaml" <"$temporary/existing-configpatch.json" + python3 - "$temporary/existing-configpatch.json" "$PATCH_ID" "$CLUSTER" <<'PY' +import json +import sys + +configpatch_path, expected_id, expected_cluster = sys.argv[1:] +with open(configpatch_path) as configpatch_file: + configpatch = json.load(configpatch_file) + +metadata = configpatch["metadata"] +if ( + metadata["id"] != expected_id + or metadata["namespace"] != "default" + or metadata.get("labels", {}).get("omni.sidero.dev/cluster") != expected_cluster +): + raise SystemExit("refusing to update an unexpected ConfigPatch") +PY + omnictl apply -f "$temporary/configpatch.yaml" + printf 'Inline-manifest ConfigPatch applied to Omni.\n' + omnictl kubeconfig "$temporary/kubeconfig" --cluster "$CLUSTER" --merge=false --force + KUBECONFIG="$temporary/kubeconfig" kubectl apply --server-side --force-conflicts \ + -f "$temporary/argocd.yaml" + printf 'Argo CD upgraded from the generated manifest.\n' +else + printf 'Inline-manifest ConfigPatch and Argo CD manifest rendered and validated; re-run with --apply to deploy.\n' +fi diff --git a/omni/scripts/generate-manifests.sh b/omni/scripts/generate-manifests.sh index 4937a2e..8e94308 100755 --- a/omni/scripts/generate-manifests.sh +++ b/omni/scripts/generate-manifests.sh @@ -16,7 +16,7 @@ set -euo pipefail CLUSTER="${1:?usage: generate-manifests.sh }" CILIUM_VERSION="${CILIUM_VERSION:-1.17.2}" -ARGOCD_VERSION="${ARGOCD_VERSION:-v2.14.4}" +ARGOCD_VERSION="${ARGOCD_VERSION:-}" REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" @@ -25,11 +25,13 @@ case "$CLUSTER" in CLUSTER_TYPE="cloud" FILE="omni/cluster-templates/patches/oci-lab-inline-manifests.yaml" WITH_CILIUM=1 + ARGOCD_VERSION="${ARGOCD_VERSION:-v2.14.4}" ;; unraid-lab) CLUSTER_TYPE="homelab-kvm" FILE="clusters/unraid-lab/omni/inline-manifests.yaml" WITH_CILIUM=0 + ARGOCD_VERSION="${ARGOCD_VERSION:-v3.5.0}" ;; *) echo "unknown cluster '$CLUSTER' (expected oci-lab or unraid-lab)" >&2 @@ -66,6 +68,15 @@ namespace: argocd resources: - install.yaml patches: + # Argo CD 3 defaults to annotation tracking. Keep existing resources on + # label tracking from the first controller start so none are orphaned. + - target: + kind: ConfigMap + name: argocd-cm + patch: |- + - op: add + path: /data/application.resourceTrackingMethod + value: label # argocd-server serves TLS on its own port by default and 307-redirects # any plain-HTTP request to https — including requests our own tailscale # Ingress forwards as plain HTTP after terminating TLS at the tailnet