From c6c4722787ebc081fee543e64b09a24b5a278c1f Mon Sep 17 00:00:00 2001 From: Mathew Wicks Date: Fri, 27 Mar 2020 07:27:13 +1100 Subject: [PATCH 01/10] fix: remove foreign character (#280) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit An accented character snuck into values.yaml: `bitbucketUUÌD` rather than `bitbucketUUID` --- charts/argo-cd/Chart.yaml | 2 +- charts/argo-cd/values.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/argo-cd/Chart.yaml b/charts/argo-cd/Chart.yaml index 8871b4b2..2848766a 100644 --- a/charts/argo-cd/Chart.yaml +++ b/charts/argo-cd/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v1 appVersion: "1.4.2" description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes. name: argo-cd -version: 2.0.1 +version: 2.0.2 home: https://github.com/argoproj/argo-helm icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png keywords: diff --git a/charts/argo-cd/values.yaml b/charts/argo-cd/values.yaml index 8c3f94d6..74e14938 100755 --- a/charts/argo-cd/values.yaml +++ b/charts/argo-cd/values.yaml @@ -760,7 +760,7 @@ configs: githubSecret: "" gitlabSecret: "" bitbucketServerSecret: "" - bitbucketUUÌD: "" + bitbucketUUID: "" gogsSecret: "" # Custom secrets. Useful for injecting SSO secrets into environment variables. From bad9aff0aa4d31b7ecb9ac2c856a242500840c3e Mon Sep 17 00:00:00 2001 From: Erik Lund Jensen Date: Fri, 27 Mar 2020 14:49:47 +0100 Subject: [PATCH 02/10] feat: Helm Chart: add hostAliases to deployments #272 (#274) * feat: Helm Chart: add hostAliases to deployments #272 * feat: Bumped version number of argo-cd chart * Bumped version number of argo-cd chart. Feature #272 --- charts/argo-cd/Chart.yaml | 2 +- charts/argo-cd/README.md | 1 + .../templates/argocd-application-controller/deployment.yaml | 4 ++++ charts/argo-cd/templates/argocd-repo-server/deployment.yaml | 4 ++++ charts/argo-cd/templates/argocd-server/deployment.yaml | 4 ++++ charts/argo-cd/values.yaml | 4 ++++ 6 files changed, 18 insertions(+), 1 deletion(-) diff --git a/charts/argo-cd/Chart.yaml b/charts/argo-cd/Chart.yaml index 2848766a..23b3695c 100644 --- a/charts/argo-cd/Chart.yaml +++ b/charts/argo-cd/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v1 appVersion: "1.4.2" description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes. name: argo-cd -version: 2.0.2 +version: 2.0.3 home: https://github.com/argoproj/argo-helm icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png keywords: diff --git a/charts/argo-cd/README.md b/charts/argo-cd/README.md index d4d8a188..3a6123c9 100644 --- a/charts/argo-cd/README.md +++ b/charts/argo-cd/README.md @@ -60,6 +60,7 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i | global.image.tag | If defined, a tag applied to all ArgoCD deployments. | `"v1.4.2"` | | global.securityContext | Toggle and define securityContext | See [values.yaml](values.yaml) |  | global.imagePullSecrets | If defined, uses a Secret to pull an image from a private Docker registry or repository. | `[]` |  +| global.hostAliases | Mapping between IP and hostnames that will be injected as entries in the pod's hosts files | `[]` | | nameOverride | Provide a name in place of `argocd` | `"argocd"` | | installCRDs | bool | `true` | Install CRDs if you are using Helm2. | | configs.knownHosts.data.ssh_known_hosts | Known Hosts | See [values.yaml](values.yaml) | diff --git a/charts/argo-cd/templates/argocd-application-controller/deployment.yaml b/charts/argo-cd/templates/argocd-application-controller/deployment.yaml index 5bab57d6..b785e463 100755 --- a/charts/argo-cd/templates/argocd-application-controller/deployment.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/deployment.yaml @@ -113,6 +113,10 @@ spec: {{- toYaml .Values.controller.affinity | nindent 8 }} {{- end }} serviceAccountName: {{ template "argo-cd.controllerServiceAccountName" . }} +{{- with .Values.global.hostAliases }} + hostAliases: +{{ toYaml . | indent 6 }} +{{- end }} {{- if .Values.controller.volumes }} volumes: {{- toYaml .Values.controller.volumes | nindent 8 }} diff --git a/charts/argo-cd/templates/argocd-repo-server/deployment.yaml b/charts/argo-cd/templates/argocd-repo-server/deployment.yaml index ff6d796c..0431bd63 100755 --- a/charts/argo-cd/templates/argocd-repo-server/deployment.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/deployment.yaml @@ -120,6 +120,10 @@ spec: {{- toYaml .Values.repoServer.affinity | nindent 8 }} {{- end }} serviceAccountName: {{ template "argo-cd.repoServerServiceAccountName" . }} +{{- with .Values.global.hostAliases }} + hostAliases: +{{ toYaml . | indent 6 }} +{{- end }} volumes: {{- if .Values.repoServer.volumes }} {{- toYaml .Values.repoServer.volumes | nindent 6}} diff --git a/charts/argo-cd/templates/argocd-server/deployment.yaml b/charts/argo-cd/templates/argocd-server/deployment.yaml index 6ce87df3..f9e84bd2 100755 --- a/charts/argo-cd/templates/argocd-server/deployment.yaml +++ b/charts/argo-cd/templates/argocd-server/deployment.yaml @@ -130,6 +130,10 @@ spec: {{- toYaml .Values.server.affinity | nindent 8 }} {{- end }} serviceAccountName: {{ template "argo-cd.serverServiceAccountName" . }} +{{- with .Values.global.hostAliases }} + hostAliases: +{{ toYaml . | indent 6 }} +{{- end }} volumes: {{- if .Values.server.volumes }} {{- toYaml .Values.server.volumes | nindent 6}} diff --git a/charts/argo-cd/values.yaml b/charts/argo-cd/values.yaml index 74e14938..0f810c1a 100755 --- a/charts/argo-cd/values.yaml +++ b/charts/argo-cd/values.yaml @@ -17,6 +17,10 @@ global: # runAsGroup: 999 # fsGroup: 999 imagePullSecrets: [] + hostAliases: [] + # - ip: 10.20.30.40 + # hostnames: + # - git.myhostname ## Controller controller: From 2dec8e44f712a04315020446dbede21670003652 Mon Sep 17 00:00:00 2001 From: Vlad Losev Date: Mon, 6 Apr 2020 09:13:40 -0700 Subject: [PATCH 03/10] feat: Add support for extra arguments to Argo Server (#271) --- charts/argo/Chart.yaml | 2 +- charts/argo/templates/server-deployment.yaml | 3 +++ charts/argo/values.yaml | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/charts/argo/Chart.yaml b/charts/argo/Chart.yaml index 7aabd888..33604dcb 100644 --- a/charts/argo/Chart.yaml +++ b/charts/argo/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v1 appVersion: "v2.6.1" description: A Helm chart for Argo Workflows name: argo -version: 0.7.2 +version: 0.7.3 icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png home: https://github.com/argoproj/argo-helm maintainers: diff --git a/charts/argo/templates/server-deployment.yaml b/charts/argo/templates/server-deployment.yaml index 182c6edb..bbf82dd1 100644 --- a/charts/argo/templates/server-deployment.yaml +++ b/charts/argo/templates/server-deployment.yaml @@ -31,6 +31,9 @@ spec: - name: argo-server args: - server + {{- if .Values.server.extraArgs }} + {{- toYaml .Values.server.extraArgs | nindent 10 }} + {{- end }} image: "{{ .Values.images.namespace }}/{{ .Values.images.server }}:{{ default .Values.images.tag .Values.server.image.tag }}" imagePullPolicy: {{ .Values.images.pullPolicy }} {{- if .Values.server.podPortName }} diff --git a/charts/argo/values.yaml b/charts/argo/values.yaml index bdc7d697..e1bb1376 100644 --- a/charts/argo/values.yaml +++ b/charts/argo/values.yaml @@ -143,6 +143,9 @@ server: tolerations: [] affinity: {} + # Extra arguments to provide to the Argo server binary. + extraArgs: [] + ## Ingress configuration. ## ref: https://kubernetes.io/docs/user-guide/ingress/ ## From f89527b21b1c7bd8c1edb6d3de2d8e383affe3c0 Mon Sep 17 00:00:00 2001 From: Yann Soubeyrand Date: Tue, 7 Apr 2020 15:39:29 +0200 Subject: [PATCH 04/10] chore: bump Argo CD Docker image tag to v1.5.1 (#293) --- charts/argo-cd/Chart.yaml | 4 ++-- charts/argo-cd/README.md | 2 +- charts/argo-cd/values.yaml | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/charts/argo-cd/Chart.yaml b/charts/argo-cd/Chart.yaml index 23b3695c..3e61a38b 100644 --- a/charts/argo-cd/Chart.yaml +++ b/charts/argo-cd/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 -appVersion: "1.4.2" +appVersion: "1.5.1" description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes. name: argo-cd -version: 2.0.3 +version: 2.1.0 home: https://github.com/argoproj/argo-helm icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png keywords: diff --git a/charts/argo-cd/README.md b/charts/argo-cd/README.md index 3a6123c9..591d9314 100644 --- a/charts/argo-cd/README.md +++ b/charts/argo-cd/README.md @@ -57,7 +57,7 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i |-----|------|---------| | global.image.imagePullPolicy | If defined, a imagePullPolicy applied to all ArgoCD deployments. | `"IfNotPresent"` | | global.image.repository | If defined, a repository applied to all ArgoCD deployments. | `"argoproj/argocd"` | -| global.image.tag | If defined, a tag applied to all ArgoCD deployments. | `"v1.4.2"` | +| global.image.tag | If defined, a tag applied to all ArgoCD deployments. | `"v1.5.1"` | | global.securityContext | Toggle and define securityContext | See [values.yaml](values.yaml) |  | global.imagePullSecrets | If defined, uses a Secret to pull an image from a private Docker registry or repository. | `[]` |  | global.hostAliases | Mapping between IP and hostnames that will be injected as entries in the pod's hosts files | `[]` | diff --git a/charts/argo-cd/values.yaml b/charts/argo-cd/values.yaml index 0f810c1a..07bbfb7e 100755 --- a/charts/argo-cd/values.yaml +++ b/charts/argo-cd/values.yaml @@ -10,7 +10,7 @@ installCRDs: true global: image: repository: argoproj/argocd - tag: v1.4.2 + tag: v1.5.1 imagePullPolicy: IfNotPresent securityContext: {} # runAsUser: 999 @@ -28,7 +28,7 @@ controller: image: repository: # argoproj/argocd - tag: # v1.4.2 + tag: # v1.5.1 imagePullPolicy: # IfNotPresent ## Argo controller commandline flags @@ -301,7 +301,7 @@ server: image: repository: # argoproj/argocd - tag: # v1.4.2 + tag: # v1.5.1 imagePullPolicy: # IfNotPresent ## Additional command line arguments to pass to argocd-server @@ -556,7 +556,7 @@ repoServer: image: repository: # argoproj/argocd - tag: # v1.4.2 + tag: # v1.5.1 imagePullPolicy: # IfNotPresent ## Additional command line arguments to pass to argocd-repo-server From 40a234dcead6b1841bcea656356ba59106c3bfd1 Mon Sep 17 00:00:00 2001 From: Yann Soubeyrand Date: Wed, 8 Apr 2020 17:43:40 +0200 Subject: [PATCH 05/10] fix: update CRDs (#297) --- charts/argo-cd/Chart.yaml | 2 +- charts/argo-cd/crds/crd-application.yaml | 1186 +++++------ charts/argo-cd/crds/crd-project.yaml | 508 +---- charts/argo-cd/templates/crds.yaml | 6 + .../templates/crds/application-crd.yaml | 1762 ----------------- .../templates/crds/appproject-crd.yaml | 544 ----- 6 files changed, 535 insertions(+), 3473 deletions(-) create mode 100644 charts/argo-cd/templates/crds.yaml delete mode 100644 charts/argo-cd/templates/crds/application-crd.yaml delete mode 100644 charts/argo-cd/templates/crds/appproject-crd.yaml diff --git a/charts/argo-cd/Chart.yaml b/charts/argo-cd/Chart.yaml index 3e61a38b..3163b4db 100644 --- a/charts/argo-cd/Chart.yaml +++ b/charts/argo-cd/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v1 appVersion: "1.5.1" description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes. name: argo-cd -version: 2.1.0 +version: 2.1.1 home: https://github.com/argoproj/argo-helm icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png keywords: diff --git a/charts/argo-cd/crds/crd-application.yaml b/charts/argo-cd/crds/crd-application.yaml index 20e2b20d..683d41d4 100644 --- a/charts/argo-cd/crds/crd-application.yaml +++ b/charts/argo-cd/crds/crd-application.yaml @@ -5,448 +5,71 @@ metadata: app.kubernetes.io/name: applications.argoproj.io app.kubernetes.io/part-of: argocd name: applications.argoproj.io + annotations: + helm.sh/hook: crd-install spec: group: argoproj.io names: kind: Application + listKind: ApplicationList plural: applications shortNames: - - app - - apps + - app + - apps + singular: application scope: Namespaced validation: openAPIV3Schema: description: Application is a definition of Application resource. properties: apiVersion: - description: - "APIVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: - "Kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: - properties: - annotations: - additionalProperties: - type: string - description: - "Annotations is an unstructured key value map stored with - a resource that may be set by external tools to store and retrieve - arbitrary metadata. They are not queryable and should be preserved - when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations" - type: object - clusterName: - description: - The name of the cluster which the object belongs to. This - is used to distinguish resources with same name and namespace in different - clusters. This field is not set anywhere right now and apiserver is - going to ignore it if set in create or update request. - type: string - deletionGracePeriodSeconds: - description: - Number of seconds allowed for this object to gracefully - terminate before it will be removed from the system. Only set when - deletionTimestamp is also set. May only be shortened. Read-only. - format: int64 - type: integer - deletionTimestamp: - description: - "DeletionTimestamp is RFC 3339 date and time at which this - resource will be deleted. This field is set by the server when a graceful - deletion is requested by the user, and is not directly settable by - a client. The resource is expected to be deleted (no longer visible - from resource lists, and not reachable by name) after the time in - this field, once the finalizers list is empty. As long as the finalizers - list contains items, deletion is blocked. Once the deletionTimestamp - is set, this value may not be unset or be set further into the future, - although it may be shortened or the resource may be deleted prior - to this time. For example, a user may request that a pod is deleted - in 30 seconds. The Kubelet will react by sending a graceful termination - signal to the containers in the pod. After that 30 seconds, the Kubelet - will send a hard termination signal (SIGKILL) to the container and - after cleanup, remove the pod from the API. In the presence of network - partitions, this object may still exist after this timestamp, until - an administrator or automated process can determine the resource is - fully terminated. If not set, graceful deletion of the object has - not been requested. \n Populated by the system when a graceful deletion - is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - format: date-time - type: string - finalizers: - description: - Must be empty before the object is deleted from the registry. - Each entry is an identifier for the responsible component that will - remove the entry from the list. If the deletionTimestamp of the object - is non-nil, entries in this list can only be removed. - items: - type: string - type: array - generateName: - description: - "GenerateName is an optional prefix, used by the server, - to generate a unique name ONLY IF the Name field has not been provided. - If this field is used, the name returned to the client will be different - than the name passed. This value will also be combined with a unique - suffix. The provided value has the same validation rules as the Name - field, and may be truncated by the length of the suffix required to - make the value unique on the server. \n If this field is specified - and the generated name exists, the server will NOT return a 409 - - instead, it will either return 201 Created or 500 with Reason ServerTimeout - indicating a unique name could not be found in the time allotted, - and the client should retry (optionally after the time indicated in - the Retry-After header). \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency" - type: string - generation: - description: - A sequence number representing a specific generation of - the desired state. Populated by the system. Read-only. - format: int64 - type: integer - initializers: - description: - "An initializer is a controller which enforces some system - invariant at object creation time. This field is a list of initializers - that have not yet acted on this object. If nil or empty, this object - has been completely initialized. Otherwise, the object is considered - uninitialized and is hidden (in list/watch and get calls) from clients - that haven't explicitly asked to observe uninitialized objects. \n - When an object is created, the system will populate this list with - the current set of initializers. Only privileged users may set or - modify this list. Once it is empty, it may not be modified further - by any user. \n DEPRECATED - initializers are an alpha field and will - be removed in v1.15." - properties: - pending: - description: - Pending is a list of initializers that must execute - in order before this object is visible. When the last pending - initializer is removed, and no failing result is set, the initializers - struct will be set to nil and the object is considered as initialized - and visible to all clients. - items: - properties: - name: - description: - name of the process that is responsible for initializing - this object. - type: string - required: - - name - type: object - type: array - result: - description: - If result is set with the Failure field, the object - will be persisted to storage and then deleted, ensuring that other - clients can observe the deletion. - properties: - apiVersion: - description: - "APIVersion defines the versioned schema of this - representation of an object. Servers should convert recognized - schemas to the latest internal value, and may reject unrecognized - values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - type: string - code: - description: - Suggested HTTP return code for this status, 0 if - not set. - format: int32 - type: integer - details: - description: - Extended data associated with the reason. Each - reason may define its own extended details. This field is - optional and the data returned is not guaranteed to conform - to any schema except that defined by the reason type. - properties: - causes: - description: - The Causes array includes more details associated - with the StatusReason failure. Not all StatusReasons may - provide detailed causes. - items: - properties: - field: - description: - "The field of the resource that has caused - this error, as named by its JSON serialization. - May include dot and postfix notation for nested - attributes. Arrays are zero-indexed. Fields may - appear more than once in an array of causes due - to fields having multiple errors. Optional. \n Examples: - \ \"name\" - the field \"name\" on the current - resource \"items[0].name\" - the field \"name\" - on the first array entry in \"items\"" - type: string - message: - description: - A human-readable description of the cause - of the error. This field may be presented as-is - to a reader. - type: string - reason: - description: - A machine-readable description of the - cause of the error. If this value is empty there - is no information available. - type: string - type: object - type: array - group: - description: - The group attribute of the resource associated - with the status StatusReason. - type: string - kind: - description: - "The kind attribute of the resource associated - with the status StatusReason. On some operations may differ - from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - type: string - name: - description: - The name attribute of the resource associated - with the status StatusReason (when there is a single name - which can be described). - type: string - retryAfterSeconds: - description: - If specified, the time in seconds before the - operation should be retried. Some errors may indicate - the client must take an alternate action - for those errors - this field may indicate how long to wait before taking - the alternate action. - format: int32 - type: integer - uid: - description: - "UID of the resource. (when there is a single - resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - type: string - type: object - kind: - description: - "Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint - the client submits requests to. Cannot be updated. In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - type: string - message: - description: - A human-readable description of the status of this - operation. - type: string - metadata: - description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - properties: - continue: - description: - continue may be set if the user set a limit - on the number of items returned, and indicates that the - server has more data available. The value is opaque and - may be used to issue another request to the endpoint that - served this list to retrieve the next set of available - objects. Continuing a consistent list may not be possible - if the server configuration has changed or more than a - few minutes have passed. The resourceVersion field returned - when using this continue value will be identical to the - value in the first response, unless you have received - this token from an error message. - type: string - resourceVersion: - description: - "String that identifies the server's internal - version of this object that can be used by clients to - determine when objects have changed. Value must be treated - as opaque by clients and passed unmodified back to the - server. Populated by the system. Read-only. More info: - https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" - type: string - selfLink: - description: - selfLink is a URL representing this object. - Populated by the system. Read-only. - type: string - type: object - reason: - description: - A machine-readable description of why this operation - is in the "Failure" status. If this value is empty there is - no information available. A Reason clarifies an HTTP status - code but does not override it. - type: string - status: - description: - 'Status of the operation. One of: "Success" or - "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' - type: string - type: object - required: - - pending - type: object - labels: - additionalProperties: - type: string - description: - "Map of string keys and values that can be used to organize - and categorize (scope and select) objects. May match selectors of - replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels" - type: object - managedFields: - description: - "ManagedFields maps workflow-id and version to the set - of fields that are managed by that workflow. This is mostly for internal - housekeeping, and users typically shouldn't need to set or understand - this field. A workflow can be the user's name, a controller's name, - or the name of a specific apply path like \"ci-cd\". The set of fields - is always in the version that the workflow used when modifying the - object. \n This field is alpha and can be changed or removed without - notice." - items: - properties: - apiVersion: - description: - APIVersion defines the version of this resource that - this field set applies to. The format is "group/version" just - like the top-level APIVersion field. It is necessary to track - the version of a field set because it cannot be automatically - converted. - type: string - fields: - additionalProperties: true - description: Fields identifies a set of fields. - type: object - manager: - description: - Manager is an identifier of the workflow managing - these fields. - type: string - operation: - description: - Operation is the type of operation which lead to - this ManagedFieldsEntry being created. The only valid values - for this field are 'Apply' and 'Update'. - type: string - time: - description: - Time is timestamp of when these fields were set. - It should always be empty if Operation is 'Apply' - format: date-time - type: string - type: object - type: array - name: - description: - "Name must be unique within a namespace. Is required when - creating resources, although some resources may allow a client to - request the generation of an appropriate name automatically. Name - is primarily intended for creation idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - type: string - namespace: - description: - "Namespace defines the space within each name must be unique. - An empty namespace is equivalent to the \"default\" namespace, but - \"default\" is the canonical representation. Not all objects are required - to be scoped to a namespace - the value of this field for those objects - will be empty. \n Must be a DNS_LABEL. Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/namespaces" - type: string - ownerReferences: - description: - List of objects depended by this object. If ALL objects - in the list have been deleted, this object will be garbage collected. - If this object is managed by a controller, then an entry in this list - will point to this controller, with the controller field set to true. - There cannot be more than one managing controller. - items: - properties: - apiVersion: - description: API version of the referent. - type: string - blockOwnerDeletion: - description: - If true, AND if the owner has the "foregroundDeletion" - finalizer, then the owner cannot be deleted from the key-value - store until this reference is removed. Defaults to false. To - set this field, a user needs "delete" permission of the owner, - otherwise 422 (Unprocessable Entity) will be returned. - type: boolean - controller: - description: If true, this reference points to the managing controller. - type: boolean - kind: - description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - type: string - name: - description: "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - type: string - uid: - description: "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - type: string - required: - - apiVersion - - kind - - name - - uid - type: object - type: array - resourceVersion: - description: - "An opaque value that represents the internal version of - this object that can be used by clients to determine when objects - have changed. May be used for optimistic concurrency, change detection, - and the watch operation on a resource or set of resources. Clients - must treat these values as opaque and passed unmodified back to the - server. They may only be valid for a particular resource or set of - resources. \n Populated by the system. Read-only. Value must be treated - as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" - type: string - selfLink: - description: - SelfLink is a URL representing this object. Populated by - the system. Read-only. - type: string - uid: - description: - "UID is the unique in time and space value for this object. - It is typically generated by the server on successful creation of - a resource and is not allowed to change on PUT operations. \n Populated - by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - type: string type: object operation: + description: Operation contains requested operation parameters. properties: + initiatedBy: + description: OperationInitiator holds information about the operation + initiator + properties: + automated: + description: Automated is set to true if operation was initiated + automatically by the application controller. + type: boolean + username: + description: Name of a user who started operation. + type: string + type: object sync: + description: SyncOperation contains sync operation details. properties: dryRun: - description: - DryRun will perform a `kubectl apply --dry-run` without + description: DryRun will perform a `kubectl apply --dry-run` without actually performing the sync type: boolean manifests: - description: - Manifests is an optional field that overrides sync + description: Manifests is an optional field that overrides sync source with a local directory for development items: type: string type: array prune: - description: - Prune deletes resources that are no longer tracked + description: Prune deletes resources that are no longer tracked in git type: boolean resources: description: Resources describes which resources to sync items: + description: SyncOperationResource contains resources to sync. properties: group: type: string @@ -455,18 +78,16 @@ spec: name: type: string required: - - kind - - name + - kind + - name type: object type: array revision: - description: - Revision is the revision in which to sync the application + description: Revision is the revision in which to sync the application to. If omitted, will use the revision specified in app spec. type: string source: - description: - Source overrides the source definition set in the application. + description: Source overrides the source definition set in the application. This is typically set in a Rollback operation and nil during a Sync operation properties: @@ -477,10 +98,13 @@ spec: description: Directory holds path/directory specific options properties: jsonnet: + description: ApplicationSourceJsonnet holds jsonnet specific + options properties: extVars: description: ExtVars is a list of Jsonnet External Variables items: + description: JsonnetVar is a jsonnet variable properties: code: type: boolean @@ -489,13 +113,14 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array tlas: description: TLAS is a list of Jsonnet Top-level Arguments items: + description: JsonnetVar is a jsonnet variable properties: code: type: boolean @@ -504,8 +129,8 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array type: object @@ -515,13 +140,28 @@ spec: helm: description: Helm holds helm specific options properties: + fileParameters: + description: FileParameters are file parameters to the helm + template + items: + description: HelmFileParameter is a file parameter to + a helm template + properties: + name: + description: Name is the name of the helm parameter + type: string + path: + description: Path is the path value for the helm parameter + type: string + type: object + type: array parameters: description: Parameters are parameters to the helm template items: + description: HelmParameter is a parameter to a helm template properties: forceString: - description: - ForceString determines whether to tell + description: ForceString determines whether to tell Helm to interpret booleans and numbers as strings type: boolean name: @@ -533,20 +173,17 @@ spec: type: object type: array releaseName: - description: - The Helm release name. If omitted it will use + description: The Helm release name. If omitted it will use the application name type: string valueFiles: - description: - ValuesFiles is a list of Helm value files to + description: ValuesFiles is a list of Helm value files to use when generating a template items: type: string type: array values: - description: - Values is Helm values, typically defined as + description: Values is Helm values, typically defined as a block type: string type: object @@ -554,15 +191,14 @@ spec: description: Ksonnet holds ksonnet specific options properties: environment: - description: - Environment is a ksonnet application environment + description: Environment is a ksonnet application environment name type: string parameters: - description: - Parameters are a list of ksonnet component + description: Parameters are a list of ksonnet component parameter override values items: + description: KsonnetParameter is a ksonnet component parameter properties: component: type: string @@ -571,8 +207,8 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array type: object @@ -590,8 +226,11 @@ spec: type: string type: array namePrefix: - description: - NamePrefix is a prefix appended to resources + 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 type: object @@ -599,8 +238,7 @@ spec: description: Path is a directory path within the Git repository type: string plugin: - description: - ConfigManagementPlugin holds config management + description: ConfigManagementPlugin holds config management plugin specific options properties: env: @@ -613,51 +251,50 @@ spec: description: the value type: string required: - - name - - value + - name + - value type: object type: array name: type: string type: object repoURL: - description: - RepoURL is the repository URL of the application + description: RepoURL is the repository URL of the application manifests type: string targetRevision: - description: - TargetRevision defines the commit, tag, or branch + description: TargetRevision defines the commit, tag, or branch in which to sync the application to. If omitted, will sync to HEAD type: string required: - - repoURL + - repoURL type: object + 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 wil perform a `kubectl apply` to perform + description: Apply wil perform a `kubectl apply` to perform the sync. properties: force: - description: - Force indicates whether or not to supply the + 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 + 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 + 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. @@ -667,28 +304,30 @@ spec: type: object type: object spec: + description: ApplicationSpec represents desired application state. Contains + link to repository with application definition and additional parameters + link definition revision. properties: destination: - description: - Destination overrides the kubernetes server and namespace + description: Destination overrides the kubernetes server and namespace defined in the environment ksonnet app.yaml properties: namespace: - description: - Namespace overrides the environment namespace value + description: Namespace overrides the environment namespace value in the ksonnet app.yaml type: string server: - description: - Server overrides the environment server value in the + description: Server overrides the environment server value in the ksonnet app.yaml type: string type: object ignoreDifferences: - description: - IgnoreDifferences controls resources fields which should + description: IgnoreDifferences controls resources fields which should be ignored during comparison items: + description: ResourceIgnoreDifferences contains resource filter and + list of json paths which should be ignored during comparison with + live state. properties: group: type: string @@ -703,13 +342,12 @@ spec: namespace: type: string required: - - kind - - jsonPointers + - jsonPointers + - kind type: object type: array info: - description: - Infos contains a list of useful information (URLs, email + description: Infos contains a list of useful information (URLs, email addresses, and plain text) that relates to the application items: properties: @@ -718,18 +356,24 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array project: - description: - Project is a application project name. Empty name means + description: Project is a application project name. Empty name means that application belongs to 'default' project. type: string + revisionHistoryLimit: + description: This limits this number of items kept in the apps revision + history. This should only be changed in exceptional circumstances. + Setting to zero will store no history. This will reduce storage used. + Increasing will increase the space used to store the history, so we + do not recommend increasing it. Default is 10. + format: int64 + type: integer source: - description: - Source is a reference to the location ksonnet application + description: Source is a reference to the location ksonnet application definition properties: chart: @@ -739,10 +383,13 @@ spec: description: Directory holds path/directory specific options properties: jsonnet: + description: ApplicationSourceJsonnet holds jsonnet specific + options properties: extVars: description: ExtVars is a list of Jsonnet External Variables items: + description: JsonnetVar is a jsonnet variable properties: code: type: boolean @@ -751,13 +398,14 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array tlas: description: TLAS is a list of Jsonnet Top-level Arguments items: + description: JsonnetVar is a jsonnet variable properties: code: type: boolean @@ -766,8 +414,8 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array type: object @@ -777,13 +425,28 @@ spec: helm: description: Helm holds helm specific options properties: + fileParameters: + description: FileParameters are file parameters to the helm + template + items: + description: HelmFileParameter is a file parameter to a helm + template + properties: + name: + description: Name is the name of the helm parameter + type: string + path: + description: Path is the path value for the helm parameter + type: string + type: object + type: array parameters: description: Parameters are parameters to the helm template items: + description: HelmParameter is a parameter to a helm template properties: forceString: - description: - ForceString determines whether to tell Helm + description: ForceString determines whether to tell Helm to interpret booleans and numbers as strings type: boolean name: @@ -795,13 +458,11 @@ spec: type: object type: array releaseName: - description: - The Helm release name. If omitted it will use the + description: The Helm release name. If omitted it will use the application name type: string valueFiles: - description: - ValuesFiles is a list of Helm value files to use + description: ValuesFiles is a list of Helm value files to use when generating a template items: type: string @@ -814,15 +475,14 @@ spec: description: Ksonnet holds ksonnet specific options properties: environment: - description: - Environment is a ksonnet application environment + description: Environment is a ksonnet application environment name type: string parameters: - description: - Parameters are a list of ksonnet component parameter + description: Parameters are a list of ksonnet component parameter override values items: + description: KsonnetParameter is a ksonnet component parameter properties: component: type: string @@ -831,8 +491,8 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array type: object @@ -850,8 +510,11 @@ spec: type: string type: array namePrefix: - description: - NamePrefix is a prefix appended to resources for + 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 type: object @@ -859,8 +522,7 @@ spec: description: Path is a directory path within the Git repository type: string plugin: - description: - ConfigManagementPlugin holds config management plugin + description: ConfigManagementPlugin holds config management plugin specific options properties: env: @@ -873,8 +535,8 @@ spec: description: the value type: string required: - - name - - value + - name + - value type: object type: array name: @@ -884,52 +546,62 @@ spec: description: RepoURL is the repository URL of the application manifests type: string targetRevision: - description: - TargetRevision defines the commit, tag, or branch in + description: TargetRevision defines the commit, tag, or branch in which to sync the application to. If omitted, will sync to HEAD type: string required: - - repoURL + - repoURL type: object syncPolicy: description: SyncPolicy controls when a sync will be performed properties: automated: - description: - Automated will keep an application synced to the target + description: Automated will keep an application synced to the target revision properties: prune: - description: - "Prune will prune resources automatically as part - of automated sync (default: false)" + description: 'Prune will prune resources automatically as part + of automated sync (default: false)' type: boolean selfHeal: - description: "SelfHeal enables auto-syncing if (default: false)" + description: 'SelfHeal enables auto-syncing if (default: false)' type: boolean type: object + syncOptions: + description: Options allow youe to specify whole app sync-options + items: + type: string + type: array type: object required: - - source - - destination - - project + - destination + - project + - source type: object status: + description: ApplicationStatus contains information about application sync, + health status properties: conditions: items: + description: ApplicationCondition contains details about current application + condition properties: + lastTransitionTime: + description: LastTransitionTime is the time the condition was + first observed. + format: date-time + type: string message: - description: - Message contains human-readable message indicating + description: Message contains human-readable message indicating details about condition type: string type: description: Type is an application condition type type: string required: - - type - - message + - message + - type type: object type: array health: @@ -940,7 +612,11 @@ spec: type: string type: object history: + description: RevisionHistories is a array of history, oldest first and + newest last items: + description: RevisionHistory contains information relevant to an application + deployment properties: deployedAt: format: date-time @@ -951,6 +627,8 @@ spec: revision: type: string source: + description: ApplicationSource contains information about github + repository, path within repository and target application environment. properties: chart: description: Chart is a Helm chart name @@ -959,12 +637,14 @@ spec: description: Directory holds path/directory specific options properties: jsonnet: + description: ApplicationSourceJsonnet holds jsonnet specific + options properties: extVars: - description: - ExtVars is a list of Jsonnet External + description: ExtVars is a list of Jsonnet External Variables items: + description: JsonnetVar is a jsonnet variable properties: code: type: boolean @@ -973,13 +653,14 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array tlas: description: TLAS is a list of Jsonnet Top-level Arguments items: + description: JsonnetVar is a jsonnet variable properties: code: type: boolean @@ -988,8 +669,8 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array type: object @@ -999,13 +680,30 @@ spec: helm: description: Helm holds helm specific options properties: + fileParameters: + description: FileParameters are file parameters to the + helm template + items: + description: HelmFileParameter is a file parameter to + a helm template + properties: + name: + description: Name is the name of the helm parameter + type: string + path: + description: Path is the path value for the helm + parameter + type: string + type: object + type: array parameters: description: Parameters are parameters to the helm template items: + description: HelmParameter is a parameter to a helm + template properties: forceString: - description: - ForceString determines whether to tell + description: ForceString determines whether to tell Helm to interpret booleans and numbers as strings type: boolean name: @@ -1017,20 +715,17 @@ spec: type: object type: array releaseName: - description: - The Helm release name. If omitted it will + description: The Helm release name. If omitted it will use the application name type: string valueFiles: - description: - ValuesFiles is a list of Helm value files + description: ValuesFiles is a list of Helm value files to use when generating a template items: type: string type: array values: - description: - Values is Helm values, typically defined + description: Values is Helm values, typically defined as a block type: string type: object @@ -1038,15 +733,15 @@ spec: description: Ksonnet holds ksonnet specific options properties: environment: - description: - Environment is a ksonnet application environment + description: Environment is a ksonnet application environment name type: string parameters: - description: - Parameters are a list of ksonnet component + description: Parameters are a list of ksonnet component parameter override values items: + description: KsonnetParameter is a ksonnet component + parameter properties: component: type: string @@ -1055,8 +750,8 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array type: object @@ -1074,8 +769,11 @@ spec: type: string type: array namePrefix: - description: - NamePrefix is a prefix appended to resources + 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 type: object @@ -1083,8 +781,7 @@ spec: description: Path is a directory path within the Git repository type: string plugin: - description: - ConfigManagementPlugin holds config management + description: ConfigManagementPlugin holds config management plugin specific options properties: env: @@ -1097,75 +794,85 @@ spec: description: the value type: string required: - - name - - value + - name + - value type: object type: array name: type: string type: object repoURL: - description: - RepoURL is the repository URL of the application + description: RepoURL is the repository URL of the application manifests type: string targetRevision: - description: - TargetRevision defines the commit, tag, or branch + description: TargetRevision defines the commit, tag, or branch in which to sync the application to. If omitted, will sync to HEAD type: string required: - - repoURL + - repoURL type: object required: - - revision - - deployedAt - - id + - deployedAt + - id + - revision type: object type: array observedAt: - description: - ObservedAt indicates when the application state was updated + description: ObservedAt indicates when the application state was updated without querying latest git state format: date-time type: string operationState: + description: OperationState contains information about state of currently + performing operation on application. properties: finishedAt: description: FinishedAt contains time of operation completion format: date-time type: string message: - description: - Message hold any pertinent messages when attempting + description: Message hold any pertinent messages when attempting to perform operation (typically errors). type: string operation: description: Operation is the original requested operation properties: + initiatedBy: + description: OperationInitiator holds information about the + operation initiator + properties: + automated: + description: Automated is set to true if operation was initiated + automatically by the application controller. + type: boolean + username: + description: Name of a user who started operation. + type: string + type: object sync: + description: SyncOperation contains sync operation details. properties: dryRun: - description: - DryRun will perform a `kubectl apply --dry-run` + description: DryRun will perform a `kubectl apply --dry-run` without actually performing the sync type: boolean manifests: - description: - Manifests is an optional field that overrides + description: Manifests is an optional field that overrides sync source with a local directory for development items: type: string type: array prune: - description: - Prune deletes resources that are no longer + description: Prune deletes resources that are no longer tracked in git type: boolean resources: description: Resources describes which resources to sync items: + description: SyncOperationResource contains resources + to sync. properties: group: type: string @@ -1174,19 +881,17 @@ spec: name: type: string required: - - kind - - name + - kind + - name type: object type: array revision: - description: - Revision is the revision in which to sync the + description: Revision is the revision in which to sync the application to. If omitted, will use the revision specified in app spec. type: string source: - description: - Source overrides the source definition set + description: Source overrides the source definition set in the application. This is typically set in a Rollback operation and nil during a Sync operation properties: @@ -1194,17 +899,18 @@ spec: description: Chart is a Helm chart name type: string directory: - description: - Directory holds path/directory specific + description: Directory holds path/directory specific options properties: jsonnet: + description: ApplicationSourceJsonnet holds jsonnet + specific options properties: extVars: - description: - ExtVars is a list of Jsonnet External + description: ExtVars is a list of Jsonnet External Variables items: + description: JsonnetVar is a jsonnet variable properties: code: type: boolean @@ -1213,15 +919,15 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array tlas: - description: - TLAS is a list of Jsonnet Top-level + description: TLAS is a list of Jsonnet Top-level Arguments items: + description: JsonnetVar is a jsonnet variable properties: code: type: boolean @@ -1230,8 +936,8 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array type: object @@ -1241,45 +947,57 @@ spec: helm: description: Helm holds helm specific options properties: + fileParameters: + description: FileParameters are file parameters + to the helm template + items: + description: HelmFileParameter is a file parameter + to a helm template + properties: + name: + description: Name is the name of the helm + parameter + type: string + path: + description: Path is the path value for the + helm parameter + type: string + type: object + type: array parameters: - description: - Parameters are parameters to the helm + description: Parameters are parameters to the helm template items: + description: HelmParameter is a parameter to a + helm template properties: forceString: - description: - ForceString determines whether + 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 + description: Name is the name of the helm parameter type: string value: - description: - Value is the value for the helm + description: Value is the value for the helm parameter type: string type: object type: array releaseName: - description: - The Helm release name. If omitted it + description: The Helm release name. If omitted it will use the application name type: string valueFiles: - description: - ValuesFiles is a list of Helm value + description: ValuesFiles is a list of Helm value files to use when generating a template items: type: string type: array values: - description: - Values is Helm values, typically defined + description: Values is Helm values, typically defined as a block type: string type: object @@ -1287,15 +1005,15 @@ spec: description: Ksonnet holds ksonnet specific options properties: environment: - description: - Environment is a ksonnet application + description: Environment is a ksonnet application environment name type: string parameters: - description: - Parameters are a list of ksonnet component + description: Parameters are a list of ksonnet component parameter override values items: + description: KsonnetParameter is a ksonnet component + parameter properties: component: type: string @@ -1304,8 +1022,8 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array type: object @@ -1315,8 +1033,7 @@ spec: commonLabels: additionalProperties: type: string - description: - CommonLabels adds additional kustomize + description: CommonLabels adds additional kustomize commonLabels type: object images: @@ -1325,19 +1042,20 @@ spec: type: string type: array namePrefix: - description: - NamePrefix is a prefix appended to + 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 type: object path: - description: - Path is a directory path within the Git + description: Path is a directory path within the Git repository type: string plugin: - description: - ConfigManagementPlugin holds config management + description: ConfigManagementPlugin holds config management plugin specific options properties: env: @@ -1350,38 +1068,40 @@ spec: description: the value type: string required: - - name - - value + - name + - value type: object type: array name: type: string type: object repoURL: - description: - RepoURL is the repository URL of the application + description: RepoURL is the repository URL of the application manifests type: string targetRevision: - description: - TargetRevision defines the commit, tag, + description: TargetRevision defines the commit, tag, or branch in which to sync the application to. If omitted, will sync to HEAD type: string required: - - repoURL + - repoURL type: object + 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 wil perform a `kubectl apply` to + description: Apply wil perform a `kubectl apply` to perform the sync. properties: force: - description: - Force indicates whether or not to supply + 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 @@ -1389,13 +1109,11 @@ spec: type: boolean type: object hook: - description: - Hook will submit any referenced resources + 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 + 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 @@ -1416,22 +1134,21 @@ spec: description: SyncResult is the result of a Sync operation properties: resources: - description: - Resources holds the sync result of each individual + description: Resources holds the sync result of each individual resource items: + description: ResourceResult holds the operation result details + of a specific resource properties: group: type: string hookPhase: - description: - "the state of any operation associated with + description: 'the state of any operation associated with this resource OR hook note: can contain values for non-hook - resources" + resources' type: string hookType: - description: - the type of the hook, empty for non-hook + description: the type of the hook, empty for non-hook resources type: string kind: @@ -1444,32 +1161,29 @@ spec: namespace: type: string status: - description: - the final result of the sync, this is be + description: the final result of the sync, this is be empty if the resources is yet to be applied/pruned and is always zero-value for hooks type: string syncPhase: - description: - indicates the particular phase of the sync + description: indicates the particular phase of the sync that this is for type: string version: type: string required: - - group - - version - - kind - - namespace - - name + - group + - kind + - name + - namespace + - version type: object type: array revision: description: Revision holds the revision of the sync type: string source: - description: - Source records the application source information + description: Source records the application source information of the sync, used for comparing auto-sync properties: chart: @@ -1479,12 +1193,14 @@ spec: description: Directory holds path/directory specific options properties: jsonnet: + description: ApplicationSourceJsonnet holds jsonnet + specific options properties: extVars: - description: - ExtVars is a list of Jsonnet External + description: ExtVars is a list of Jsonnet External Variables items: + description: JsonnetVar is a jsonnet variable properties: code: type: boolean @@ -1493,15 +1209,15 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array tlas: - description: - TLAS is a list of Jsonnet Top-level + description: TLAS is a list of Jsonnet Top-level Arguments items: + description: JsonnetVar is a jsonnet variable properties: code: type: boolean @@ -1510,8 +1226,8 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array type: object @@ -1521,13 +1237,30 @@ spec: helm: description: Helm holds helm specific options properties: + fileParameters: + description: FileParameters are file parameters to the + helm template + items: + description: HelmFileParameter is a file parameter + to a helm template + properties: + name: + description: Name is the name of the helm parameter + type: string + path: + description: Path is the path value for the helm + parameter + type: string + type: object + type: array parameters: description: Parameters are parameters to the helm template items: + description: HelmParameter is a parameter to a helm + template properties: forceString: - description: - ForceString determines whether to + description: ForceString determines whether to tell Helm to interpret booleans and numbers as strings type: boolean @@ -1540,20 +1273,17 @@ spec: type: object type: array releaseName: - description: - The Helm release name. If omitted it will + description: The Helm release name. If omitted it will use the application name type: string valueFiles: - description: - ValuesFiles is a list of Helm value files + description: ValuesFiles is a list of Helm value files to use when generating a template items: type: string type: array values: - description: - Values is Helm values, typically defined + description: Values is Helm values, typically defined as a block type: string type: object @@ -1561,15 +1291,15 @@ spec: description: Ksonnet holds ksonnet specific options properties: environment: - description: - Environment is a ksonnet application environment + description: Environment is a ksonnet application environment name type: string parameters: - description: - Parameters are a list of ksonnet component + description: Parameters are a list of ksonnet component parameter override values items: + description: KsonnetParameter is a ksonnet component + parameter properties: component: type: string @@ -1578,8 +1308,8 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array type: object @@ -1589,8 +1319,7 @@ spec: commonLabels: additionalProperties: type: string - description: - CommonLabels adds additional kustomize + description: CommonLabels adds additional kustomize commonLabels type: object images: @@ -1599,8 +1328,11 @@ spec: type: string type: array namePrefix: - description: - NamePrefix is a prefix appended to resources + 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 type: object @@ -1608,8 +1340,7 @@ spec: description: Path is a directory path within the Git repository type: string plugin: - description: - ConfigManagementPlugin holds config management + description: ConfigManagementPlugin holds config management plugin specific options properties: env: @@ -1622,43 +1353,42 @@ spec: description: the value type: string required: - - name - - value + - name + - value type: object type: array name: type: string type: object repoURL: - description: - RepoURL is the repository URL of the application + description: RepoURL is the repository URL of the application manifests type: string targetRevision: - description: - TargetRevision defines the commit, tag, or + description: TargetRevision defines the commit, tag, or branch in which to sync the application to. If omitted, will sync to HEAD type: string required: - - repoURL + - repoURL type: object required: - - revision + - revision type: object required: - - operation - - phase - - startedAt + - operation + - phase + - startedAt type: object reconciledAt: - description: - ReconciledAt indicates when the application state was reconciled + description: ReconciledAt indicates when the application state was reconciled using the latest git version format: date-time type: string resources: items: + description: ResourceStatus holds the current sync and health status + of a resource properties: group: type: string @@ -1680,6 +1410,8 @@ spec: requiresPruning: type: boolean status: + description: SyncStatusCode is a type which represents possible + comparison results type: string version: type: string @@ -1690,8 +1422,7 @@ spec: summary: properties: externalURLs: - description: - ExternalURLs holds all external URLs of application + description: ExternalURLs holds all external URLs of application child resources. items: type: string @@ -1703,23 +1434,30 @@ spec: type: array type: object sync: + description: SyncStatus is a comparison result of application spec and + deployed application. properties: comparedTo: + description: ComparedTo contains application source and target which + was used for resources comparison properties: destination: + description: ApplicationDestination contains deployment destination + information properties: namespace: - description: - Namespace overrides the environment namespace + description: Namespace overrides the environment namespace value in the ksonnet app.yaml type: string server: - description: - Server overrides the environment server value + description: Server overrides the environment server value in the ksonnet app.yaml type: string type: object source: + description: ApplicationSource contains information about github + repository, path within repository and target application + environment. properties: chart: description: Chart is a Helm chart name @@ -1728,12 +1466,14 @@ spec: description: Directory holds path/directory specific options properties: jsonnet: + description: ApplicationSourceJsonnet holds jsonnet + specific options properties: extVars: - description: - ExtVars is a list of Jsonnet External + description: ExtVars is a list of Jsonnet External Variables items: + description: JsonnetVar is a jsonnet variable properties: code: type: boolean @@ -1742,15 +1482,15 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array tlas: - description: - TLAS is a list of Jsonnet Top-level + description: TLAS is a list of Jsonnet Top-level Arguments items: + description: JsonnetVar is a jsonnet variable properties: code: type: boolean @@ -1759,8 +1499,8 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array type: object @@ -1770,13 +1510,30 @@ spec: helm: description: Helm holds helm specific options properties: + fileParameters: + description: FileParameters are file parameters to the + helm template + items: + description: HelmFileParameter is a file parameter + to a helm template + properties: + name: + description: Name is the name of the helm parameter + type: string + path: + description: Path is the path value for the helm + parameter + type: string + type: object + type: array parameters: description: Parameters are parameters to the helm template items: + description: HelmParameter is a parameter to a helm + template properties: forceString: - description: - ForceString determines whether to + description: ForceString determines whether to tell Helm to interpret booleans and numbers as strings type: boolean @@ -1789,20 +1546,17 @@ spec: type: object type: array releaseName: - description: - The Helm release name. If omitted it will + description: The Helm release name. If omitted it will use the application name type: string valueFiles: - description: - ValuesFiles is a list of Helm value files + description: ValuesFiles is a list of Helm value files to use when generating a template items: type: string type: array values: - description: - Values is Helm values, typically defined + description: Values is Helm values, typically defined as a block type: string type: object @@ -1810,15 +1564,15 @@ spec: description: Ksonnet holds ksonnet specific options properties: environment: - description: - Environment is a ksonnet application environment + description: Environment is a ksonnet application environment name type: string parameters: - description: - Parameters are a list of ksonnet component + description: Parameters are a list of ksonnet component parameter override values items: + description: KsonnetParameter is a ksonnet component + parameter properties: component: type: string @@ -1827,8 +1581,8 @@ spec: value: type: string required: - - name - - value + - name + - value type: object type: array type: object @@ -1838,8 +1592,7 @@ spec: commonLabels: additionalProperties: type: string - description: - CommonLabels adds additional kustomize + description: CommonLabels adds additional kustomize commonLabels type: object images: @@ -1848,8 +1601,11 @@ spec: type: string type: array namePrefix: - description: - NamePrefix is a prefix appended to resources + 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 type: object @@ -1857,8 +1613,7 @@ spec: description: Path is a directory path within the Git repository type: string plugin: - description: - ConfigManagementPlugin holds config management + description: ConfigManagementPlugin holds config management plugin specific options properties: env: @@ -1871,44 +1626,45 @@ spec: description: the value type: string required: - - name - - value + - name + - value type: object type: array name: type: string type: object repoURL: - description: - RepoURL is the repository URL of the application + description: RepoURL is the repository URL of the application manifests type: string targetRevision: - description: - TargetRevision defines the commit, tag, or + description: TargetRevision defines the commit, tag, or branch in which to sync the application to. If omitted, will sync to HEAD type: string required: - - repoURL + - repoURL type: object required: - - source - - destination + - destination + - source type: object revision: type: string status: + description: SyncStatusCode is a type which represents possible + comparison results type: string required: - - status + - status type: object type: object required: - - metadata - - spec + - metadata + - spec type: object + version: v1alpha1 versions: - - name: v1alpha1 - served: true - storage: true + - name: v1alpha1 + served: true + storage: true diff --git a/charts/argo-cd/crds/crd-project.yaml b/charts/argo-cd/crds/crd-project.yaml index 5149eeb0..e9244236 100644 --- a/charts/argo-cd/crds/crd-project.yaml +++ b/charts/argo-cd/crds/crd-project.yaml @@ -5,514 +5,126 @@ metadata: app.kubernetes.io/name: appprojects.argoproj.io app.kubernetes.io/part-of: argocd name: appprojects.argoproj.io + annotations: + helm.sh/hook: crd-install spec: group: argoproj.io names: kind: AppProject + listKind: AppProjectList plural: appprojects shortNames: - - appproj - - appprojs + - appproj + - appprojs + singular: appproject scope: Namespaced validation: openAPIV3Schema: - description: - "AppProject provides a logical grouping of applications, providing + description: 'AppProject provides a logical grouping of applications, providing controls for: * where the apps may deploy to (cluster whitelist) * what may be deployed (repository whitelist, resource whitelist/blacklist) * who can access these applications (roles, OIDC group claims bindings) * and what they - can do (RBAC policies) * automation access to these roles (JWT tokens)" + can do (RBAC policies) * automation access to these roles (JWT tokens)' properties: apiVersion: - description: - "APIVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: - "Kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: - properties: - annotations: - additionalProperties: - type: string - description: - "Annotations is an unstructured key value map stored with - a resource that may be set by external tools to store and retrieve - arbitrary metadata. They are not queryable and should be preserved - when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations" - type: object - clusterName: - description: - The name of the cluster which the object belongs to. This - is used to distinguish resources with same name and namespace in different - clusters. This field is not set anywhere right now and apiserver is - going to ignore it if set in create or update request. - type: string - deletionGracePeriodSeconds: - description: - Number of seconds allowed for this object to gracefully - terminate before it will be removed from the system. Only set when - deletionTimestamp is also set. May only be shortened. Read-only. - format: int64 - type: integer - deletionTimestamp: - description: - "DeletionTimestamp is RFC 3339 date and time at which this - resource will be deleted. This field is set by the server when a graceful - deletion is requested by the user, and is not directly settable by - a client. The resource is expected to be deleted (no longer visible - from resource lists, and not reachable by name) after the time in - this field, once the finalizers list is empty. As long as the finalizers - list contains items, deletion is blocked. Once the deletionTimestamp - is set, this value may not be unset or be set further into the future, - although it may be shortened or the resource may be deleted prior - to this time. For example, a user may request that a pod is deleted - in 30 seconds. The Kubelet will react by sending a graceful termination - signal to the containers in the pod. After that 30 seconds, the Kubelet - will send a hard termination signal (SIGKILL) to the container and - after cleanup, remove the pod from the API. In the presence of network - partitions, this object may still exist after this timestamp, until - an administrator or automated process can determine the resource is - fully terminated. If not set, graceful deletion of the object has - not been requested. \n Populated by the system when a graceful deletion - is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - format: date-time - type: string - finalizers: - description: - Must be empty before the object is deleted from the registry. - Each entry is an identifier for the responsible component that will - remove the entry from the list. If the deletionTimestamp of the object - is non-nil, entries in this list can only be removed. - items: - type: string - type: array - generateName: - description: - "GenerateName is an optional prefix, used by the server, - to generate a unique name ONLY IF the Name field has not been provided. - If this field is used, the name returned to the client will be different - than the name passed. This value will also be combined with a unique - suffix. The provided value has the same validation rules as the Name - field, and may be truncated by the length of the suffix required to - make the value unique on the server. \n If this field is specified - and the generated name exists, the server will NOT return a 409 - - instead, it will either return 201 Created or 500 with Reason ServerTimeout - indicating a unique name could not be found in the time allotted, - and the client should retry (optionally after the time indicated in - the Retry-After header). \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency" - type: string - generation: - description: - A sequence number representing a specific generation of - the desired state. Populated by the system. Read-only. - format: int64 - type: integer - initializers: - description: - "An initializer is a controller which enforces some system - invariant at object creation time. This field is a list of initializers - that have not yet acted on this object. If nil or empty, this object - has been completely initialized. Otherwise, the object is considered - uninitialized and is hidden (in list/watch and get calls) from clients - that haven't explicitly asked to observe uninitialized objects. \n - When an object is created, the system will populate this list with - the current set of initializers. Only privileged users may set or - modify this list. Once it is empty, it may not be modified further - by any user. \n DEPRECATED - initializers are an alpha field and will - be removed in v1.15." - properties: - pending: - description: - Pending is a list of initializers that must execute - in order before this object is visible. When the last pending - initializer is removed, and no failing result is set, the initializers - struct will be set to nil and the object is considered as initialized - and visible to all clients. - items: - properties: - name: - description: - name of the process that is responsible for initializing - this object. - type: string - required: - - name - type: object - type: array - result: - description: - If result is set with the Failure field, the object - will be persisted to storage and then deleted, ensuring that other - clients can observe the deletion. - properties: - apiVersion: - description: - "APIVersion defines the versioned schema of this - representation of an object. Servers should convert recognized - schemas to the latest internal value, and may reject unrecognized - values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - type: string - code: - description: - Suggested HTTP return code for this status, 0 if - not set. - format: int32 - type: integer - details: - description: - Extended data associated with the reason. Each - reason may define its own extended details. This field is - optional and the data returned is not guaranteed to conform - to any schema except that defined by the reason type. - properties: - causes: - description: - The Causes array includes more details associated - with the StatusReason failure. Not all StatusReasons may - provide detailed causes. - items: - properties: - field: - description: - "The field of the resource that has caused - this error, as named by its JSON serialization. - May include dot and postfix notation for nested - attributes. Arrays are zero-indexed. Fields may - appear more than once in an array of causes due - to fields having multiple errors. Optional. \n Examples: - \ \"name\" - the field \"name\" on the current - resource \"items[0].name\" - the field \"name\" - on the first array entry in \"items\"" - type: string - message: - description: - A human-readable description of the cause - of the error. This field may be presented as-is - to a reader. - type: string - reason: - description: - A machine-readable description of the - cause of the error. If this value is empty there - is no information available. - type: string - type: object - type: array - group: - description: - The group attribute of the resource associated - with the status StatusReason. - type: string - kind: - description: - "The kind attribute of the resource associated - with the status StatusReason. On some operations may differ - from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - type: string - name: - description: - The name attribute of the resource associated - with the status StatusReason (when there is a single name - which can be described). - type: string - retryAfterSeconds: - description: - If specified, the time in seconds before the - operation should be retried. Some errors may indicate - the client must take an alternate action - for those errors - this field may indicate how long to wait before taking - the alternate action. - format: int32 - type: integer - uid: - description: - "UID of the resource. (when there is a single - resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - type: string - type: object - kind: - description: - "Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint - the client submits requests to. Cannot be updated. In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - type: string - message: - description: - A human-readable description of the status of this - operation. - type: string - metadata: - description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - properties: - continue: - description: - continue may be set if the user set a limit - on the number of items returned, and indicates that the - server has more data available. The value is opaque and - may be used to issue another request to the endpoint that - served this list to retrieve the next set of available - objects. Continuing a consistent list may not be possible - if the server configuration has changed or more than a - few minutes have passed. The resourceVersion field returned - when using this continue value will be identical to the - value in the first response, unless you have received - this token from an error message. - type: string - resourceVersion: - description: - "String that identifies the server's internal - version of this object that can be used by clients to - determine when objects have changed. Value must be treated - as opaque by clients and passed unmodified back to the - server. Populated by the system. Read-only. More info: - https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" - type: string - selfLink: - description: - selfLink is a URL representing this object. - Populated by the system. Read-only. - type: string - type: object - reason: - description: - A machine-readable description of why this operation - is in the "Failure" status. If this value is empty there is - no information available. A Reason clarifies an HTTP status - code but does not override it. - type: string - status: - description: - 'Status of the operation. One of: "Success" or - "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' - type: string - type: object - required: - - pending - type: object - labels: - additionalProperties: - type: string - description: - "Map of string keys and values that can be used to organize - and categorize (scope and select) objects. May match selectors of - replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels" - type: object - managedFields: - description: - "ManagedFields maps workflow-id and version to the set - of fields that are managed by that workflow. This is mostly for internal - housekeeping, and users typically shouldn't need to set or understand - this field. A workflow can be the user's name, a controller's name, - or the name of a specific apply path like \"ci-cd\". The set of fields - is always in the version that the workflow used when modifying the - object. \n This field is alpha and can be changed or removed without - notice." - items: - properties: - apiVersion: - description: - APIVersion defines the version of this resource that - this field set applies to. The format is "group/version" just - like the top-level APIVersion field. It is necessary to track - the version of a field set because it cannot be automatically - converted. - type: string - fields: - additionalProperties: true - description: Fields identifies a set of fields. - type: object - manager: - description: - Manager is an identifier of the workflow managing - these fields. - type: string - operation: - description: - Operation is the type of operation which lead to - this ManagedFieldsEntry being created. The only valid values - for this field are 'Apply' and 'Update'. - type: string - time: - description: - Time is timestamp of when these fields were set. - It should always be empty if Operation is 'Apply' - format: date-time - type: string - type: object - type: array - name: - description: - "Name must be unique within a namespace. Is required when - creating resources, although some resources may allow a client to - request the generation of an appropriate name automatically. Name - is primarily intended for creation idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - type: string - namespace: - description: - "Namespace defines the space within each name must be unique. - An empty namespace is equivalent to the \"default\" namespace, but - \"default\" is the canonical representation. Not all objects are required - to be scoped to a namespace - the value of this field for those objects - will be empty. \n Must be a DNS_LABEL. Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/namespaces" - type: string - ownerReferences: - description: - List of objects depended by this object. If ALL objects - in the list have been deleted, this object will be garbage collected. - If this object is managed by a controller, then an entry in this list - will point to this controller, with the controller field set to true. - There cannot be more than one managing controller. - items: - properties: - apiVersion: - description: API version of the referent. - type: string - blockOwnerDeletion: - description: - If true, AND if the owner has the "foregroundDeletion" - finalizer, then the owner cannot be deleted from the key-value - store until this reference is removed. Defaults to false. To - set this field, a user needs "delete" permission of the owner, - otherwise 422 (Unprocessable Entity) will be returned. - type: boolean - controller: - description: If true, this reference points to the managing controller. - type: boolean - kind: - description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - type: string - name: - description: "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - type: string - uid: - description: "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - type: string - required: - - apiVersion - - kind - - name - - uid - type: object - type: array - resourceVersion: - description: - "An opaque value that represents the internal version of - this object that can be used by clients to determine when objects - have changed. May be used for optimistic concurrency, change detection, - and the watch operation on a resource or set of resources. Clients - must treat these values as opaque and passed unmodified back to the - server. They may only be valid for a particular resource or set of - resources. \n Populated by the system. Read-only. Value must be treated - as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" - type: string - selfLink: - description: - SelfLink is a URL representing this object. Populated by - the system. Read-only. - type: string - uid: - description: - "UID is the unique in time and space value for this object. - It is typically generated by the server on successful creation of - a resource and is not allowed to change on PUT operations. \n Populated - by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - type: string type: object spec: + description: AppProjectSpec is the specification of an AppProject properties: clusterResourceWhitelist: - description: - ClusterResourceWhitelist contains list of whitelisted 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 properties: group: type: string kind: type: string required: - - group - - kind + - group + - kind type: object type: array description: description: Description contains optional project description type: string destinations: - description: - Destinations contains list of destinations available for + description: Destinations contains list of destinations available for deployment items: + description: ApplicationDestination contains deployment destination + information properties: namespace: - description: - Namespace overrides the environment namespace value + description: Namespace overrides the environment namespace value in the ksonnet app.yaml type: string server: - description: - Server overrides the environment server value in + description: Server overrides the environment server value in the ksonnet app.yaml type: string type: object type: array namespaceResourceBlacklist: - description: - NamespaceResourceBlacklist contains list of blacklisted + description: NamespaceResourceBlacklist contains list of blacklisted namespace level resources items: + description: GroupKind specifies a Group and a Kind, but does not + force a version. This is useful for identifying concepts during + lookup stages without having partially valid types properties: group: type: string kind: type: string required: - - group - - kind + - group + - kind type: object type: array orphanedResources: - description: - OrphanedResources specifies if controller should monitor + description: OrphanedResources specifies if controller should monitor orphaned resources of apps in this project properties: warn: - description: - Warn indicates if warning condition should be created + description: Warn indicates if warning condition should be created for apps which have orphaned resources type: boolean type: object roles: - description: - Roles are user defined RBAC roles associated with this + description: Roles are user defined RBAC roles associated with this project items: + description: ProjectRole represents a role that has access to a project properties: description: description: Description is a description of the role type: string groups: - description: - Groups are a list of OIDC group claims bound to this + description: Groups are a list of OIDC group claims bound to this role items: type: string type: array jwtTokens: - description: - JWTTokens are a list of generated JWT tokens bound + description: JWTTokens are a list of generated JWT tokens bound to this role items: + description: JWTToken holds the issuedAt and expiresAt values + of a token properties: exp: format: int64 @@ -521,83 +133,77 @@ spec: format: int64 type: integer required: - - iat + - iat type: object type: array name: description: Name is a name for this role type: string policies: - description: - Policies Stores a list of casbin formated strings + description: Policies Stores a list of casbin formated strings that define access policies for the role in the project items: type: string type: array required: - - name + - name type: object type: array sourceRepos: - description: - SourceRepos contains list of repository URLs which can + description: SourceRepos contains list of repository URLs which can be used for deployment items: type: string type: array syncWindows: - description: - SyncWindows controls when syncs can be run for apps in + description: SyncWindows controls when syncs can be run for apps in this project items: + description: SyncWindow contains the kind, time, duration and attributes + that are used to assign the syncWindows to apps properties: applications: - description: - Applications contains a list of applications that + description: Applications contains a list of applications that the window will apply to items: type: string type: array clusters: - description: - Clusters contains a list of clusters that the window + description: Clusters contains a list of clusters that the window will apply to items: type: string type: array duration: - description: - Duration is the amount of time the sync window will + description: Duration is the amount of time the sync window will be open type: string kind: description: Kind defines if the window allows or blocks syncs type: string manualSync: - description: - ManualSync enables manual syncs when they would otherwise + description: ManualSync enables manual syncs when they would otherwise be blocked type: boolean namespaces: - description: - Namespaces contains a list of namespaces that the + description: Namespaces contains a list of namespaces that the window will apply to items: type: string type: array schedule: - description: - Schedule is the time the window will begin, specified + description: Schedule is the time the window will begin, specified in cron format type: string type: object type: array type: object required: - - metadata - - spec + - metadata + - spec type: object + version: v1alpha1 versions: - - name: v1alpha1 - served: true - storage: true + - name: v1alpha1 + served: true + storage: true diff --git a/charts/argo-cd/templates/crds.yaml b/charts/argo-cd/templates/crds.yaml new file mode 100644 index 00000000..45ab72d4 --- /dev/null +++ b/charts/argo-cd/templates/crds.yaml @@ -0,0 +1,6 @@ +{{- if .Values.installCRDs }} +{{- range $path, $_ := .Files.Glob "crds/*.yaml" }} +{{ $.Files.Get $path }} +--- +{{- end }} +{{- end }} diff --git a/charts/argo-cd/templates/crds/application-crd.yaml b/charts/argo-cd/templates/crds/application-crd.yaml deleted file mode 100644 index faf763a8..00000000 --- a/charts/argo-cd/templates/crds/application-crd.yaml +++ /dev/null @@ -1,1762 +0,0 @@ -{{- if .Values.installCRDs }} -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - labels: - app.kubernetes.io/name: {{ include "argo-cd.name" . }} - helm.sh/chart: {{ include "argo-cd.chart" . }} - app.kubernetes.io/part-of: argocd - name: applications.argoproj.io - annotations: - "helm.sh/hook": crd-install - "helm.sh/hook-delete-policy": before-hook-creation -spec: - group: argoproj.io - names: - kind: Application - plural: applications - shortNames: - - app - - apps - scope: Namespaced - validation: - openAPIV3Schema: - description: Application is a definition of Application resource. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - properties: - annotations: - additionalProperties: - type: string - description: 'Annotations is an unstructured key value map stored with - a resource that may be set by external tools to store and retrieve - arbitrary metadata. They are not queryable and should be preserved - when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' - type: object - clusterName: - description: The name of the cluster which the object belongs to. This - is used to distinguish resources with same name and namespace in different - clusters. This field is not set anywhere right now and apiserver is - going to ignore it if set in create or update request. - type: string - deletionGracePeriodSeconds: - description: Number of seconds allowed for this object to gracefully - terminate before it will be removed from the system. Only set when - deletionTimestamp is also set. May only be shortened. Read-only. - format: int64 - type: integer - deletionTimestamp: - description: "DeletionTimestamp is RFC 3339 date and time at which this - resource will be deleted. This field is set by the server when a graceful - deletion is requested by the user, and is not directly settable by - a client. The resource is expected to be deleted (no longer visible - from resource lists, and not reachable by name) after the time in - this field, once the finalizers list is empty. As long as the finalizers - list contains items, deletion is blocked. Once the deletionTimestamp - is set, this value may not be unset or be set further into the future, - although it may be shortened or the resource may be deleted prior - to this time. For example, a user may request that a pod is deleted - in 30 seconds. The Kubelet will react by sending a graceful termination - signal to the containers in the pod. After that 30 seconds, the Kubelet - will send a hard termination signal (SIGKILL) to the container and - after cleanup, remove the pod from the API. In the presence of network - partitions, this object may still exist after this timestamp, until - an administrator or automated process can determine the resource is - fully terminated. If not set, graceful deletion of the object has - not been requested. \n Populated by the system when a graceful deletion - is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - format: date-time - type: string - finalizers: - description: Must be empty before the object is deleted from the registry. - Each entry is an identifier for the responsible component that will - remove the entry from the list. If the deletionTimestamp of the object - is non-nil, entries in this list can only be removed. - items: - type: string - type: array - generateName: - description: "GenerateName is an optional prefix, used by the server, - to generate a unique name ONLY IF the Name field has not been provided. - If this field is used, the name returned to the client will be different - than the name passed. This value will also be combined with a unique - suffix. The provided value has the same validation rules as the Name - field, and may be truncated by the length of the suffix required to - make the value unique on the server. \n If this field is specified - and the generated name exists, the server will NOT return a 409 - - instead, it will either return 201 Created or 500 with Reason ServerTimeout - indicating a unique name could not be found in the time allotted, - and the client should retry (optionally after the time indicated in - the Retry-After header). \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency" - type: string - generation: - description: A sequence number representing a specific generation of - the desired state. Populated by the system. Read-only. - format: int64 - type: integer - initializers: - description: "An initializer is a controller which enforces some system - invariant at object creation time. This field is a list of initializers - that have not yet acted on this object. If nil or empty, this object - has been completely initialized. Otherwise, the object is considered - uninitialized and is hidden (in list/watch and get calls) from clients - that haven't explicitly asked to observe uninitialized objects. \n - When an object is created, the system will populate this list with - the current set of initializers. Only privileged users may set or - modify this list. Once it is empty, it may not be modified further - by any user. \n DEPRECATED - initializers are an alpha field and will - be removed in v1.15." - properties: - pending: - description: Pending is a list of initializers that must execute - in order before this object is visible. When the last pending - initializer is removed, and no failing result is set, the initializers - struct will be set to nil and the object is considered as initialized - and visible to all clients. - items: - properties: - name: - description: name of the process that is responsible for initializing - this object. - type: string - required: - - name - type: object - type: array - result: - description: If result is set with the Failure field, the object - will be persisted to storage and then deleted, ensuring that other - clients can observe the deletion. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this - representation of an object. Servers should convert recognized - schemas to the latest internal value, and may reject unrecognized - values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - code: - description: Suggested HTTP return code for this status, 0 if - not set. - format: int32 - type: integer - details: - description: Extended data associated with the reason. Each - reason may define its own extended details. This field is - optional and the data returned is not guaranteed to conform - to any schema except that defined by the reason type. - properties: - causes: - description: The Causes array includes more details associated - with the StatusReason failure. Not all StatusReasons may - provide detailed causes. - items: - properties: - field: - description: "The field of the resource that has caused - this error, as named by its JSON serialization. - May include dot and postfix notation for nested - attributes. Arrays are zero-indexed. Fields may - appear more than once in an array of causes due - to fields having multiple errors. Optional. \n Examples: - \ \"name\" - the field \"name\" on the current - resource \"items[0].name\" - the field \"name\" - on the first array entry in \"items\"" - type: string - message: - description: A human-readable description of the cause - of the error. This field may be presented as-is - to a reader. - type: string - reason: - description: A machine-readable description of the - cause of the error. If this value is empty there - is no information available. - type: string - type: object - type: array - group: - description: The group attribute of the resource associated - with the status StatusReason. - type: string - kind: - description: 'The kind attribute of the resource associated - with the status StatusReason. On some operations may differ - from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - name: - description: The name attribute of the resource associated - with the status StatusReason (when there is a single name - which can be described). - type: string - retryAfterSeconds: - description: If specified, the time in seconds before the - operation should be retried. Some errors may indicate - the client must take an alternate action - for those errors - this field may indicate how long to wait before taking - the alternate action. - format: int32 - type: integer - uid: - description: 'UID of the resource. (when there is a single - resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids' - type: string - type: object - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint - the client submits requests to. Cannot be updated. In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - message: - description: A human-readable description of the status of this - operation. - type: string - metadata: - description: 'Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - properties: - continue: - description: continue may be set if the user set a limit - on the number of items returned, and indicates that the - server has more data available. The value is opaque and - may be used to issue another request to the endpoint that - served this list to retrieve the next set of available - objects. Continuing a consistent list may not be possible - if the server configuration has changed or more than a - few minutes have passed. The resourceVersion field returned - when using this continue value will be identical to the - value in the first response, unless you have received - this token from an error message. - type: string - resourceVersion: - description: 'String that identifies the server''s internal - version of this object that can be used by clients to - determine when objects have changed. Value must be treated - as opaque by clients and passed unmodified back to the - server. Populated by the system. Read-only. More info: - https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency' - type: string - selfLink: - description: selfLink is a URL representing this object. - Populated by the system. Read-only. - type: string - type: object - reason: - description: A machine-readable description of why this operation - is in the "Failure" status. If this value is empty there is - no information available. A Reason clarifies an HTTP status - code but does not override it. - type: string - status: - description: 'Status of the operation. One of: "Success" or - "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' - type: string - type: object - required: - - pending - type: object - labels: - additionalProperties: - type: string - description: 'Map of string keys and values that can be used to organize - and categorize (scope and select) objects. May match selectors of - replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' - type: object - managedFields: - description: "ManagedFields maps workflow-id and version to the set - of fields that are managed by that workflow. This is mostly for internal - housekeeping, and users typically shouldn't need to set or understand - this field. A workflow can be the user's name, a controller's name, - or the name of a specific apply path like \"ci-cd\". The set of fields - is always in the version that the workflow used when modifying the - object. \n This field is alpha and can be changed or removed without - notice." - items: - properties: - apiVersion: - description: APIVersion defines the version of this resource that - this field set applies to. The format is "group/version" just - like the top-level APIVersion field. It is necessary to track - the version of a field set because it cannot be automatically - converted. - type: string - fields: - additionalProperties: true - description: Fields identifies a set of fields. - type: object - manager: - description: Manager is an identifier of the workflow managing - these fields. - type: string - operation: - description: Operation is the type of operation which lead to - this ManagedFieldsEntry being created. The only valid values - for this field are 'Apply' and 'Update'. - type: string - time: - description: Time is timestamp of when these fields were set. - It should always be empty if Operation is 'Apply' - format: date-time - type: string - type: object - type: array - name: - description: 'Name must be unique within a namespace. Is required when - creating resources, although some resources may allow a client to - request the generation of an appropriate name automatically. Name - is primarily intended for creation idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' - type: string - namespace: - description: "Namespace defines the space within each name must be unique. - An empty namespace is equivalent to the \"default\" namespace, but - \"default\" is the canonical representation. Not all objects are required - to be scoped to a namespace - the value of this field for those objects - will be empty. \n Must be a DNS_LABEL. Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/namespaces" - type: string - ownerReferences: - description: List of objects depended by this object. If ALL objects - in the list have been deleted, this object will be garbage collected. - If this object is managed by a controller, then an entry in this list - will point to this controller, with the controller field set to true. - There cannot be more than one managing controller. - items: - properties: - apiVersion: - description: API version of the referent. - type: string - blockOwnerDeletion: - description: If true, AND if the owner has the "foregroundDeletion" - finalizer, then the owner cannot be deleted from the key-value - store until this reference is removed. Defaults to false. To - set this field, a user needs "delete" permission of the owner, - otherwise 422 (Unprocessable Entity) will be returned. - type: boolean - controller: - description: If true, this reference points to the managing controller. - type: boolean - kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - name: - description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' - type: string - uid: - description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' - type: string - required: - - apiVersion - - kind - - name - - uid - type: object - type: array - resourceVersion: - description: "An opaque value that represents the internal version of - this object that can be used by clients to determine when objects - have changed. May be used for optimistic concurrency, change detection, - and the watch operation on a resource or set of resources. Clients - must treat these values as opaque and passed unmodified back to the - server. They may only be valid for a particular resource or set of - resources. \n Populated by the system. Read-only. Value must be treated - as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" - type: string - selfLink: - description: SelfLink is a URL representing this object. Populated by - the system. Read-only. - type: string - uid: - description: "UID is the unique in time and space value for this object. - It is typically generated by the server on successful creation of - a resource and is not allowed to change on PUT operations. \n Populated - by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - type: string - type: object - operation: - properties: - sync: - properties: - dryRun: - description: DryRun will 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 deletes resources that are no longer tracked - in git - type: boolean - resources: - description: Resources describes which resources to sync - items: - properties: - group: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - type: array - revision: - description: Revision is the revision in which to sync the application - to. If omitted, will use the revision specified in app spec. - type: string - source: - description: Source overrides the source definition set in the application. - This is typically set in a Rollback operation and nil during a - Sync operation - properties: - chart: - description: Chart is a Helm chart name - type: string - directory: - description: Directory holds path/directory specific options - properties: - jsonnet: - properties: - extVars: - description: ExtVars is a list of Jsonnet External Variables - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - tlas: - description: TLAS is a list of Jsonnet Top-level Arguments - 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: - description: Helm holds helm specific options - properties: - parameters: - description: Parameters are parameters to the helm template - items: - 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 - releaseName: - description: The Helm release name. If omitted it will use - the application name - type: string - valueFiles: - description: ValuesFiles is a list of Helm value files to - use when generating a template - items: - type: string - type: array - values: - description: Values is Helm values, typically defined as - a block - type: string - type: object - ksonnet: - description: Ksonnet holds ksonnet specific options - properties: - environment: - description: Environment is a ksonnet application environment - name - type: string - parameters: - description: Parameters are a list of ksonnet component - parameter override values - items: - properties: - component: - type: string - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - kustomize: - description: Kustomize holds kustomize specific options - properties: - commonLabels: - additionalProperties: - type: string - description: CommonLabels adds additional kustomize commonLabels - type: object - images: - description: Images are kustomize image overrides - items: - type: string - type: array - namePrefix: - description: NamePrefix is a prefix appended to resources - for kustomize apps - type: string - type: object - path: - description: Path is a directory path within the Git repository - type: string - plugin: - description: ConfigManagementPlugin holds config management - plugin specific options - properties: - env: - items: - properties: - name: - description: the name, usually uppercase - type: string - value: - description: the value - type: string - required: - - name - - value - type: object - type: array - name: - type: string - type: object - repoURL: - description: RepoURL is the repository URL of the application - manifests - type: string - targetRevision: - description: TargetRevision defines the commit, tag, or branch - in which to sync the application to. If omitted, will sync - to HEAD - type: string - required: - - repoURL - type: object - syncStrategy: - description: SyncStrategy describes how to perform the sync - properties: - apply: - description: Apply wil perform a `kubectl apply` to perform - the sync. - properties: - force: - description: Force indicates whether or not to supply the - --force flag to `kubectl apply`. The --force flag deletes - and re-create the resource, when PATCH encounters conflict - and has retried for 5 times. - type: boolean - type: object - hook: - description: Hook will submit any referenced resources to perform - the sync. This is the default strategy - properties: - force: - description: Force indicates whether or not to supply the - --force flag to `kubectl apply`. The --force flag deletes - and re-create the resource, when PATCH encounters conflict - and has retried for 5 times. - type: boolean - type: object - type: object - type: object - type: object - spec: - properties: - destination: - description: Destination overrides the kubernetes server and namespace - defined in the environment ksonnet app.yaml - properties: - namespace: - description: Namespace overrides the environment namespace value - in the ksonnet app.yaml - type: string - server: - description: Server overrides the environment server value in the - ksonnet app.yaml - type: string - type: object - ignoreDifferences: - description: IgnoreDifferences controls resources fields which should - be ignored during comparison - items: - properties: - group: - type: string - jsonPointers: - items: - type: string - type: array - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - jsonPointers - type: object - type: array - info: - description: Infos contains a list of useful information (URLs, email - addresses, and plain text) that relates to the application - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - description: Project is a application project name. Empty name means - that application belongs to 'default' project. - type: string - source: - description: Source is a reference to the location ksonnet application - definition - properties: - chart: - description: Chart is a Helm chart name - type: string - directory: - description: Directory holds path/directory specific options - properties: - jsonnet: - properties: - extVars: - description: ExtVars is a list of Jsonnet External Variables - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - tlas: - description: TLAS is a list of Jsonnet Top-level Arguments - 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: - description: Helm holds helm specific options - properties: - parameters: - description: Parameters are parameters to the helm template - items: - 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 - releaseName: - description: The Helm release name. If omitted it will use the - application name - type: string - valueFiles: - description: ValuesFiles is a list of Helm value files to use - when generating a template - items: - type: string - type: array - values: - description: Values is Helm values, typically defined as a block - type: string - type: object - ksonnet: - description: Ksonnet holds ksonnet specific options - properties: - environment: - description: Environment is a ksonnet application environment - name - type: string - parameters: - description: Parameters are a list of ksonnet component parameter - override values - items: - properties: - component: - type: string - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - kustomize: - description: Kustomize holds kustomize specific options - properties: - commonLabels: - additionalProperties: - type: string - description: CommonLabels adds additional kustomize commonLabels - type: object - images: - description: Images are kustomize image overrides - items: - type: string - type: array - namePrefix: - description: NamePrefix is a prefix appended to resources for - kustomize apps - type: string - type: object - path: - description: Path is a directory path within the Git repository - type: string - plugin: - description: ConfigManagementPlugin holds config management plugin - specific options - properties: - env: - items: - properties: - name: - description: the name, usually uppercase - type: string - value: - description: the value - type: string - required: - - name - - value - type: object - type: array - name: - type: string - type: object - repoURL: - description: RepoURL is the repository URL of the application manifests - type: string - targetRevision: - description: TargetRevision defines the commit, tag, or branch in - which to sync the application to. If omitted, will sync to HEAD - type: string - required: - - repoURL - type: object - syncPolicy: - description: SyncPolicy controls when a sync will be performed - properties: - automated: - description: Automated will keep an application synced to the target - revision - properties: - prune: - description: 'Prune will prune resources automatically as part - of automated sync (default: false)' - type: boolean - selfHeal: - description: 'SelfHeal enables auto-syncing if (default: false)' - type: boolean - type: object - type: object - required: - - source - - destination - - project - type: object - status: - properties: - conditions: - items: - properties: - message: - description: Message contains human-readable message indicating - details about condition - type: string - type: - description: Type is an application condition type - type: string - required: - - type - - message - type: object - type: array - health: - properties: - message: - type: string - status: - type: string - type: object - history: - items: - properties: - deployedAt: - format: date-time - type: string - id: - format: int64 - type: integer - revision: - type: string - source: - properties: - chart: - description: Chart is a Helm chart name - type: string - directory: - description: Directory holds path/directory specific options - properties: - jsonnet: - properties: - extVars: - description: ExtVars is a list of Jsonnet External - Variables - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - tlas: - description: TLAS is a list of Jsonnet Top-level Arguments - 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: - description: Helm holds helm specific options - properties: - parameters: - description: Parameters are parameters to the helm template - items: - 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 - releaseName: - description: The Helm release name. If omitted it will - use the application name - type: string - valueFiles: - description: ValuesFiles is a list of Helm value files - to use when generating a template - items: - type: string - type: array - values: - description: Values is Helm values, typically defined - as a block - type: string - type: object - ksonnet: - description: Ksonnet holds ksonnet specific options - properties: - environment: - description: Environment is a ksonnet application environment - name - type: string - parameters: - description: Parameters are a list of ksonnet component - parameter override values - items: - properties: - component: - type: string - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - kustomize: - description: Kustomize holds kustomize specific options - properties: - commonLabels: - additionalProperties: - type: string - description: CommonLabels adds additional kustomize commonLabels - type: object - images: - description: Images are kustomize image overrides - items: - type: string - type: array - namePrefix: - description: NamePrefix is a prefix appended to resources - for kustomize apps - type: string - type: object - path: - description: Path is a directory path within the Git repository - type: string - plugin: - description: ConfigManagementPlugin holds config management - plugin specific options - properties: - env: - items: - properties: - name: - description: the name, usually uppercase - type: string - value: - description: the value - type: string - required: - - name - - value - type: object - type: array - name: - type: string - type: object - repoURL: - description: RepoURL is the repository URL of the application - manifests - type: string - targetRevision: - description: TargetRevision defines the commit, tag, or branch - in which to sync the application to. If omitted, will sync - to HEAD - type: string - required: - - repoURL - type: object - required: - - revision - - deployedAt - - id - type: object - type: array - observedAt: - description: ObservedAt indicates when the application state was updated - without querying latest git state - format: date-time - type: string - operationState: - properties: - finishedAt: - description: FinishedAt contains time of operation completion - format: date-time - type: string - message: - description: Message hold any pertinent messages when attempting - to perform operation (typically errors). - type: string - operation: - description: Operation is the original requested operation - properties: - sync: - properties: - dryRun: - description: DryRun will 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 deletes resources that are no longer - tracked in git - type: boolean - resources: - description: Resources describes which resources to sync - items: - properties: - group: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - type: array - revision: - description: Revision is the revision in which to sync the - application to. If omitted, will use the revision specified - in app spec. - type: string - source: - description: Source overrides the source definition set - in the application. This is typically set in a Rollback - operation and nil during a Sync operation - properties: - chart: - description: Chart is a Helm chart name - type: string - directory: - description: Directory holds path/directory specific - options - properties: - jsonnet: - properties: - extVars: - description: ExtVars is a list of Jsonnet External - Variables - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - tlas: - description: TLAS is a list of Jsonnet Top-level - Arguments - 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: - description: Helm holds helm specific options - properties: - parameters: - description: Parameters are parameters to the helm - template - items: - 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 - releaseName: - description: The Helm release name. If omitted it - will use the application name - type: string - valueFiles: - description: ValuesFiles is a list of Helm value - files to use when generating a template - items: - type: string - type: array - values: - description: Values is Helm values, typically defined - as a block - type: string - type: object - ksonnet: - description: Ksonnet holds ksonnet specific options - properties: - environment: - description: Environment is a ksonnet application - environment name - type: string - parameters: - description: Parameters are a list of ksonnet component - parameter override values - items: - properties: - component: - type: string - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - kustomize: - description: Kustomize holds kustomize specific options - properties: - commonLabels: - additionalProperties: - type: string - description: CommonLabels adds additional kustomize - commonLabels - type: object - images: - description: Images are kustomize image overrides - items: - type: string - type: array - namePrefix: - description: NamePrefix is a prefix appended to - resources for kustomize apps - type: string - type: object - path: - description: Path is a directory path within the Git - repository - type: string - plugin: - description: ConfigManagementPlugin holds config management - plugin specific options - properties: - env: - items: - properties: - name: - description: the name, usually uppercase - type: string - value: - description: the value - type: string - required: - - name - - value - type: object - type: array - name: - type: string - type: object - repoURL: - description: RepoURL is the repository URL of the application - manifests - type: string - targetRevision: - description: TargetRevision defines the commit, tag, - or branch in which to sync the application to. If - omitted, will sync to HEAD - type: string - required: - - repoURL - type: object - syncStrategy: - description: SyncStrategy describes how to perform the sync - properties: - apply: - description: Apply wil 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 - startedAt: - description: StartedAt contains time of operation start - format: date-time - type: string - syncResult: - description: SyncResult is the result of a Sync operation - properties: - resources: - description: Resources holds the sync result of each individual - resource - items: - properties: - group: - type: string - hookPhase: - description: 'the state of any operation associated with - this resource OR hook note: can contain values for non-hook - resources' - type: string - hookType: - description: the type of the hook, empty for non-hook - resources - type: string - kind: - type: string - message: - description: message for the last sync OR operation - type: string - name: - type: string - namespace: - type: string - status: - description: the final result of the sync, this is be - empty if the resources is yet to be applied/pruned and - is always zero-value for hooks - type: string - syncPhase: - description: indicates the particular phase of the sync - that this is for - type: string - version: - type: string - required: - - group - - version - - kind - - namespace - - name - type: object - type: array - revision: - description: Revision holds the revision of the sync - type: string - 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 - type: string - directory: - description: Directory holds path/directory specific options - properties: - jsonnet: - properties: - extVars: - description: ExtVars is a list of Jsonnet External - Variables - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - tlas: - description: TLAS is a list of Jsonnet Top-level - Arguments - 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: - description: Helm holds helm specific options - properties: - parameters: - description: Parameters are parameters to the helm template - items: - 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 - releaseName: - description: The Helm release name. If omitted it will - use the application name - type: string - valueFiles: - description: ValuesFiles is a list of Helm value files - to use when generating a template - items: - type: string - type: array - values: - description: Values is Helm values, typically defined - as a block - type: string - type: object - ksonnet: - description: Ksonnet holds ksonnet specific options - properties: - environment: - description: Environment is a ksonnet application environment - name - type: string - parameters: - description: Parameters are a list of ksonnet component - parameter override values - items: - properties: - component: - type: string - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - kustomize: - description: Kustomize holds kustomize specific options - properties: - commonLabels: - additionalProperties: - type: string - description: CommonLabels adds additional kustomize - commonLabels - type: object - images: - description: Images are kustomize image overrides - items: - type: string - type: array - namePrefix: - description: NamePrefix is a prefix appended to resources - for kustomize apps - type: string - type: object - path: - description: Path is a directory path within the Git repository - type: string - plugin: - description: ConfigManagementPlugin holds config management - plugin specific options - properties: - env: - items: - properties: - name: - description: the name, usually uppercase - type: string - value: - description: the value - type: string - required: - - name - - value - type: object - type: array - name: - type: string - type: object - repoURL: - description: RepoURL is the repository URL of the application - manifests - type: string - targetRevision: - description: TargetRevision defines the commit, tag, or - branch in which to sync the application to. If omitted, - will sync to HEAD - type: string - required: - - repoURL - type: object - 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 - resources: - items: - properties: - group: - type: string - health: - properties: - message: - type: string - status: - type: string - type: object - hook: - type: boolean - kind: - type: string - name: - type: string - namespace: - type: string - requiresPruning: - type: boolean - status: - type: string - version: - type: string - type: object - type: array - sourceType: - type: string - summary: - properties: - externalURLs: - description: ExternalURLs holds all external URLs of application - child resources. - items: - type: string - type: array - images: - description: Images holds all images of application child resources. - items: - type: string - type: array - type: object - sync: - properties: - comparedTo: - properties: - destination: - properties: - namespace: - description: Namespace overrides the environment namespace - value in the ksonnet app.yaml - type: string - server: - description: Server overrides the environment server value - in the ksonnet app.yaml - type: string - type: object - source: - properties: - chart: - description: Chart is a Helm chart name - type: string - directory: - description: Directory holds path/directory specific options - properties: - jsonnet: - properties: - extVars: - description: ExtVars is a list of Jsonnet External - Variables - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - tlas: - description: TLAS is a list of Jsonnet Top-level - Arguments - 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: - description: Helm holds helm specific options - properties: - parameters: - description: Parameters are parameters to the helm template - items: - 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 - releaseName: - description: The Helm release name. If omitted it will - use the application name - type: string - valueFiles: - description: ValuesFiles is a list of Helm value files - to use when generating a template - items: - type: string - type: array - values: - description: Values is Helm values, typically defined - as a block - type: string - type: object - ksonnet: - description: Ksonnet holds ksonnet specific options - properties: - environment: - description: Environment is a ksonnet application environment - name - type: string - parameters: - description: Parameters are a list of ksonnet component - parameter override values - items: - properties: - component: - type: string - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - kustomize: - description: Kustomize holds kustomize specific options - properties: - commonLabels: - additionalProperties: - type: string - description: CommonLabels adds additional kustomize - commonLabels - type: object - images: - description: Images are kustomize image overrides - items: - type: string - type: array - namePrefix: - description: NamePrefix is a prefix appended to resources - for kustomize apps - type: string - type: object - path: - description: Path is a directory path within the Git repository - type: string - plugin: - description: ConfigManagementPlugin holds config management - plugin specific options - properties: - env: - items: - properties: - name: - description: the name, usually uppercase - type: string - value: - description: the value - type: string - required: - - name - - value - type: object - type: array - name: - type: string - type: object - repoURL: - description: RepoURL is the repository URL of the application - manifests - type: string - targetRevision: - description: TargetRevision defines the commit, tag, or - branch in which to sync the application to. If omitted, - will sync to HEAD - type: string - required: - - repoURL - type: object - required: - - source - - destination - type: object - revision: - type: string - status: - type: string - required: - - status - type: object - type: object - required: - - metadata - - spec - type: object - versions: - - name: v1alpha1 - served: true - storage: true -{{- end }} \ No newline at end of file diff --git a/charts/argo-cd/templates/crds/appproject-crd.yaml b/charts/argo-cd/templates/crds/appproject-crd.yaml deleted file mode 100644 index 2d14a52a..00000000 --- a/charts/argo-cd/templates/crds/appproject-crd.yaml +++ /dev/null @@ -1,544 +0,0 @@ -{{- if .Values.installCRDs }} -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - labels: - app.kubernetes.io/name: {{ include "argo-cd.name" . }} - helm.sh/chart: {{ include "argo-cd.chart" . }} - app.kubernetes.io/part-of: argocd - name: appprojects.argoproj.io - annotations: - "helm.sh/hook": crd-install - "helm.sh/hook-delete-policy": before-hook-creation -spec: - group: argoproj.io - names: - kind: AppProject - plural: appprojects - shortNames: - - appproj - - appprojs - scope: Namespaced - validation: - openAPIV3Schema: - description: 'AppProject provides a logical grouping of applications, providing - controls for: * where the apps may deploy to (cluster whitelist) * what may - be deployed (repository whitelist, resource whitelist/blacklist) * who can - access these applications (roles, OIDC group claims bindings) * and what they - can do (RBAC policies) * automation access to these roles (JWT tokens)' - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - properties: - annotations: - additionalProperties: - type: string - description: 'Annotations is an unstructured key value map stored with - a resource that may be set by external tools to store and retrieve - arbitrary metadata. They are not queryable and should be preserved - when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' - type: object - clusterName: - description: The name of the cluster which the object belongs to. This - is used to distinguish resources with same name and namespace in different - clusters. This field is not set anywhere right now and apiserver is - going to ignore it if set in create or update request. - type: string - deletionGracePeriodSeconds: - description: Number of seconds allowed for this object to gracefully - terminate before it will be removed from the system. Only set when - deletionTimestamp is also set. May only be shortened. Read-only. - format: int64 - type: integer - deletionTimestamp: - description: "DeletionTimestamp is RFC 3339 date and time at which this - resource will be deleted. This field is set by the server when a graceful - deletion is requested by the user, and is not directly settable by - a client. The resource is expected to be deleted (no longer visible - from resource lists, and not reachable by name) after the time in - this field, once the finalizers list is empty. As long as the finalizers - list contains items, deletion is blocked. Once the deletionTimestamp - is set, this value may not be unset or be set further into the future, - although it may be shortened or the resource may be deleted prior - to this time. For example, a user may request that a pod is deleted - in 30 seconds. The Kubelet will react by sending a graceful termination - signal to the containers in the pod. After that 30 seconds, the Kubelet - will send a hard termination signal (SIGKILL) to the container and - after cleanup, remove the pod from the API. In the presence of network - partitions, this object may still exist after this timestamp, until - an administrator or automated process can determine the resource is - fully terminated. If not set, graceful deletion of the object has - not been requested. \n Populated by the system when a graceful deletion - is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - format: date-time - type: string - finalizers: - description: Must be empty before the object is deleted from the registry. - Each entry is an identifier for the responsible component that will - remove the entry from the list. If the deletionTimestamp of the object - is non-nil, entries in this list can only be removed. - items: - type: string - type: array - generateName: - description: "GenerateName is an optional prefix, used by the server, - to generate a unique name ONLY IF the Name field has not been provided. - If this field is used, the name returned to the client will be different - than the name passed. This value will also be combined with a unique - suffix. The provided value has the same validation rules as the Name - field, and may be truncated by the length of the suffix required to - make the value unique on the server. \n If this field is specified - and the generated name exists, the server will NOT return a 409 - - instead, it will either return 201 Created or 500 with Reason ServerTimeout - indicating a unique name could not be found in the time allotted, - and the client should retry (optionally after the time indicated in - the Retry-After header). \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency" - type: string - generation: - description: A sequence number representing a specific generation of - the desired state. Populated by the system. Read-only. - format: int64 - type: integer - initializers: - description: "An initializer is a controller which enforces some system - invariant at object creation time. This field is a list of initializers - that have not yet acted on this object. If nil or empty, this object - has been completely initialized. Otherwise, the object is considered - uninitialized and is hidden (in list/watch and get calls) from clients - that haven't explicitly asked to observe uninitialized objects. \n - When an object is created, the system will populate this list with - the current set of initializers. Only privileged users may set or - modify this list. Once it is empty, it may not be modified further - by any user. \n DEPRECATED - initializers are an alpha field and will - be removed in v1.15." - properties: - pending: - description: Pending is a list of initializers that must execute - in order before this object is visible. When the last pending - initializer is removed, and no failing result is set, the initializers - struct will be set to nil and the object is considered as initialized - and visible to all clients. - items: - properties: - name: - description: name of the process that is responsible for initializing - this object. - type: string - required: - - name - type: object - type: array - result: - description: If result is set with the Failure field, the object - will be persisted to storage and then deleted, ensuring that other - clients can observe the deletion. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this - representation of an object. Servers should convert recognized - schemas to the latest internal value, and may reject unrecognized - values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - code: - description: Suggested HTTP return code for this status, 0 if - not set. - format: int32 - type: integer - details: - description: Extended data associated with the reason. Each - reason may define its own extended details. This field is - optional and the data returned is not guaranteed to conform - to any schema except that defined by the reason type. - properties: - causes: - description: The Causes array includes more details associated - with the StatusReason failure. Not all StatusReasons may - provide detailed causes. - items: - properties: - field: - description: "The field of the resource that has caused - this error, as named by its JSON serialization. - May include dot and postfix notation for nested - attributes. Arrays are zero-indexed. Fields may - appear more than once in an array of causes due - to fields having multiple errors. Optional. \n Examples: - \ \"name\" - the field \"name\" on the current - resource \"items[0].name\" - the field \"name\" - on the first array entry in \"items\"" - type: string - message: - description: A human-readable description of the cause - of the error. This field may be presented as-is - to a reader. - type: string - reason: - description: A machine-readable description of the - cause of the error. If this value is empty there - is no information available. - type: string - type: object - type: array - group: - description: The group attribute of the resource associated - with the status StatusReason. - type: string - kind: - description: 'The kind attribute of the resource associated - with the status StatusReason. On some operations may differ - from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - name: - description: The name attribute of the resource associated - with the status StatusReason (when there is a single name - which can be described). - type: string - retryAfterSeconds: - description: If specified, the time in seconds before the - operation should be retried. Some errors may indicate - the client must take an alternate action - for those errors - this field may indicate how long to wait before taking - the alternate action. - format: int32 - type: integer - uid: - description: 'UID of the resource. (when there is a single - resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids' - type: string - type: object - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint - the client submits requests to. Cannot be updated. In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - message: - description: A human-readable description of the status of this - operation. - type: string - metadata: - description: 'Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - properties: - continue: - description: continue may be set if the user set a limit - on the number of items returned, and indicates that the - server has more data available. The value is opaque and - may be used to issue another request to the endpoint that - served this list to retrieve the next set of available - objects. Continuing a consistent list may not be possible - if the server configuration has changed or more than a - few minutes have passed. The resourceVersion field returned - when using this continue value will be identical to the - value in the first response, unless you have received - this token from an error message. - type: string - resourceVersion: - description: 'String that identifies the server''s internal - version of this object that can be used by clients to - determine when objects have changed. Value must be treated - as opaque by clients and passed unmodified back to the - server. Populated by the system. Read-only. More info: - https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency' - type: string - selfLink: - description: selfLink is a URL representing this object. - Populated by the system. Read-only. - type: string - type: object - reason: - description: A machine-readable description of why this operation - is in the "Failure" status. If this value is empty there is - no information available. A Reason clarifies an HTTP status - code but does not override it. - type: string - status: - description: 'Status of the operation. One of: "Success" or - "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' - type: string - type: object - required: - - pending - type: object - labels: - additionalProperties: - type: string - description: 'Map of string keys and values that can be used to organize - and categorize (scope and select) objects. May match selectors of - replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' - type: object - managedFields: - description: "ManagedFields maps workflow-id and version to the set - of fields that are managed by that workflow. This is mostly for internal - housekeeping, and users typically shouldn't need to set or understand - this field. A workflow can be the user's name, a controller's name, - or the name of a specific apply path like \"ci-cd\". The set of fields - is always in the version that the workflow used when modifying the - object. \n This field is alpha and can be changed or removed without - notice." - items: - properties: - apiVersion: - description: APIVersion defines the version of this resource that - this field set applies to. The format is "group/version" just - like the top-level APIVersion field. It is necessary to track - the version of a field set because it cannot be automatically - converted. - type: string - fields: - additionalProperties: true - description: Fields identifies a set of fields. - type: object - manager: - description: Manager is an identifier of the workflow managing - these fields. - type: string - operation: - description: Operation is the type of operation which lead to - this ManagedFieldsEntry being created. The only valid values - for this field are 'Apply' and 'Update'. - type: string - time: - description: Time is timestamp of when these fields were set. - It should always be empty if Operation is 'Apply' - format: date-time - type: string - type: object - type: array - name: - description: 'Name must be unique within a namespace. Is required when - creating resources, although some resources may allow a client to - request the generation of an appropriate name automatically. Name - is primarily intended for creation idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' - type: string - namespace: - description: "Namespace defines the space within each name must be unique. - An empty namespace is equivalent to the \"default\" namespace, but - \"default\" is the canonical representation. Not all objects are required - to be scoped to a namespace - the value of this field for those objects - will be empty. \n Must be a DNS_LABEL. Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/namespaces" - type: string - ownerReferences: - description: List of objects depended by this object. If ALL objects - in the list have been deleted, this object will be garbage collected. - If this object is managed by a controller, then an entry in this list - will point to this controller, with the controller field set to true. - There cannot be more than one managing controller. - items: - properties: - apiVersion: - description: API version of the referent. - type: string - blockOwnerDeletion: - description: If true, AND if the owner has the "foregroundDeletion" - finalizer, then the owner cannot be deleted from the key-value - store until this reference is removed. Defaults to false. To - set this field, a user needs "delete" permission of the owner, - otherwise 422 (Unprocessable Entity) will be returned. - type: boolean - controller: - description: If true, this reference points to the managing controller. - type: boolean - kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - name: - description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' - type: string - uid: - description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' - type: string - required: - - apiVersion - - kind - - name - - uid - type: object - type: array - resourceVersion: - description: "An opaque value that represents the internal version of - this object that can be used by clients to determine when objects - have changed. May be used for optimistic concurrency, change detection, - and the watch operation on a resource or set of resources. Clients - must treat these values as opaque and passed unmodified back to the - server. They may only be valid for a particular resource or set of - resources. \n Populated by the system. Read-only. Value must be treated - as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" - type: string - selfLink: - description: SelfLink is a URL representing this object. Populated by - the system. Read-only. - type: string - uid: - description: "UID is the unique in time and space value for this object. - It is typically generated by the server on successful creation of - a resource and is not allowed to change on PUT operations. \n Populated - by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - type: string - type: object - spec: - properties: - clusterResourceWhitelist: - description: ClusterResourceWhitelist contains list of whitelisted cluster - level resources - items: - properties: - group: - type: string - kind: - type: string - required: - - group - - kind - type: object - type: array - description: - description: Description contains optional project description - type: string - destinations: - description: Destinations contains list of destinations available for - deployment - items: - properties: - namespace: - description: Namespace overrides the environment namespace value - in the ksonnet app.yaml - type: string - server: - description: Server overrides the environment server value in - the ksonnet app.yaml - type: string - type: object - type: array - namespaceResourceBlacklist: - description: NamespaceResourceBlacklist contains list of blacklisted - namespace level resources - items: - properties: - group: - type: string - kind: - type: string - required: - - group - - kind - type: object - type: array - orphanedResources: - description: OrphanedResources specifies if controller should monitor - orphaned resources of apps in this project - properties: - warn: - description: Warn indicates if warning condition should be created - for apps which have orphaned resources - type: boolean - type: object - roles: - description: Roles are user defined RBAC roles associated with this - project - items: - properties: - description: - description: Description is a description of the role - type: string - groups: - description: Groups are a list of OIDC group claims bound to this - role - items: - type: string - type: array - jwtTokens: - description: JWTTokens are a list of generated JWT tokens bound - to this role - items: - properties: - exp: - format: int64 - type: integer - iat: - format: int64 - type: integer - required: - - iat - type: object - type: array - name: - description: Name is a name for this role - type: string - policies: - description: Policies Stores a list of casbin formated strings - that define access policies for the role in the project - items: - type: string - type: array - required: - - name - type: object - type: array - sourceRepos: - description: SourceRepos contains list of repository URLs which can - be used for deployment - items: - type: string - type: array - syncWindows: - description: SyncWindows controls when syncs can be run for apps in - this project - items: - properties: - applications: - description: Applications contains a list of applications that - the window will apply to - items: - type: string - type: array - clusters: - description: Clusters contains a list of clusters that the window - will apply to - items: - type: string - type: array - duration: - description: Duration is the amount of time the sync window will - be open - type: string - kind: - description: Kind defines if the window allows or blocks syncs - type: string - manualSync: - description: ManualSync enables manual syncs when they would otherwise - be blocked - type: boolean - namespaces: - description: Namespaces contains a list of namespaces that the - window will apply to - items: - type: string - type: array - schedule: - description: Schedule is the time the window will begin, specified - in cron format - type: string - type: object - type: array - type: object - required: - - metadata - - spec - type: object - versions: - - name: v1alpha1 - served: true - storage: true -{{- end }} From 567e7ce91fb23faf1e61710c4a5df1806d6e8afb Mon Sep 17 00:00:00 2001 From: AkiraFukushima Date: Fri, 10 Apr 2020 01:02:23 +0900 Subject: [PATCH 06/10] Add loadBalancerSourceRanges parameter for ArgoCD service resource (#290) --- charts/argo-cd/Chart.yaml | 2 +- charts/argo-cd/README.md | 5 +++-- charts/argo-cd/templates/argocd-server/service.yaml | 6 +++++- charts/argo-cd/values.yaml | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/charts/argo-cd/Chart.yaml b/charts/argo-cd/Chart.yaml index 3163b4db..a07fef62 100644 --- a/charts/argo-cd/Chart.yaml +++ b/charts/argo-cd/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v1 appVersion: "1.5.1" description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes. name: argo-cd -version: 2.1.1 +version: 2.1.2 home: https://github.com/argoproj/argo-helm icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png keywords: diff --git a/charts/argo-cd/README.md b/charts/argo-cd/README.md index 591d9314..e419f734 100644 --- a/charts/argo-cd/README.md +++ b/charts/argo-cd/README.md @@ -58,8 +58,8 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i | global.image.imagePullPolicy | If defined, a imagePullPolicy applied to all ArgoCD deployments. | `"IfNotPresent"` | | global.image.repository | If defined, a repository applied to all ArgoCD deployments. | `"argoproj/argocd"` | | global.image.tag | If defined, a tag applied to all ArgoCD deployments. | `"v1.5.1"` | -| global.securityContext | Toggle and define securityContext | See [values.yaml](values.yaml) |  -| global.imagePullSecrets | If defined, uses a Secret to pull an image from a private Docker registry or repository. | `[]` |  +| global.securityContext | Toggle and define securityContext | See [values.yaml](values.yaml) | +| global.imagePullSecrets | If defined, uses a Secret to pull an image from a private Docker registry or repository. | `[]` | | global.hostAliases | Mapping between IP and hostnames that will be injected as entries in the pod's hosts files | `[]` | | nameOverride | Provide a name in place of `argocd` | `"argocd"` | | installCRDs | bool | `true` | Install CRDs if you are using Helm2. | @@ -224,6 +224,7 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i | server.service.labels | Server service labels | `{}` | | server.service.servicePortHttp | Server service http port | `80` | | server.service.servicePortHttps | Server service https port | `443` | +| server.service.loadBalancerSourceRanges | Source IP ranges to allow access to service from. | `[]` | | server.service.type | Server service type | `"ClusterIP"` | | server.serviceAccount.create | Create server service account | `true` | | server.serviceAccount.name | Server service account name | `"argocd-server"` | diff --git a/charts/argo-cd/templates/argocd-server/service.yaml b/charts/argo-cd/templates/argocd-server/service.yaml index 031d0b62..673461b2 100644 --- a/charts/argo-cd/templates/argocd-server/service.yaml +++ b/charts/argo-cd/templates/argocd-server/service.yaml @@ -28,4 +28,8 @@ spec: targetPort: {{ .Values.server.name }} selector: app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/name: {{ include "argo-cd.name" . }}-{{ .Values.server.name }} \ No newline at end of file + app.kubernetes.io/name: {{ include "argo-cd.name" . }}-{{ .Values.server.name }} +{{- if and (eq .Values.server.service.type "LoadBalancer") .Values.server.service.loadBalancerSourceRanges }} + loadBalancerSourceranges: +{{ toYaml .Values.server.service.loadBalancerSourceRanges | indent 4 }} +{{- end -}} diff --git a/charts/argo-cd/values.yaml b/charts/argo-cd/values.yaml index 07bbfb7e..d79e5536 100755 --- a/charts/argo-cd/values.yaml +++ b/charts/argo-cd/values.yaml @@ -386,6 +386,7 @@ server: type: ClusterIP servicePortHttp: 80 servicePortHttps: 443 + loadBalancerSourceRanges: [] ## Server metrics service configuration metrics: From d7da8e863f30a6975b89a1bba34855d83bed59e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Juan=20G=C3=B3mez=20Pe=C3=B1alver?= Date: Thu, 9 Apr 2020 17:31:13 +0100 Subject: [PATCH 07/10] feat: argo-cd can deploy Redis HA (#270) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: argo-cd can deploy Redis HA Signed-off-by: Carlos Juan Gómez Peñalver * fix: add unarchived subchart redis-ha Signed-off-by: Carlos Juan Gómez Peñalver * fix: Redis HA upgraded since 4.3.4 contains a bug on the chart Signed-off-by: Carlos Juan Gómez Peñalver * docs: how to configure Redis and Redis HA * fix: add missing chart folder Signed-off-by: Carlos Juan Gómez Peñalver * fix: Helm bug with subcharts and alias * fix: Chart version * fix: Remove archived subcharts Signed-off-by: Carlos Juan Gómez Peñalver * fix: lint script Signed-off-by: Carlos Juan Gómez Peñalver * Revert "fix: lint script" This reverts commit f4b81cbb6fc6d6c271f07b3d271a110b43edb9dd. * fix: lint and publish scripts Signed-off-by: Carlos Juan Gómez Peñalver * fix: align test-image versions Signed-off-by: Carlos Juan Gómez Peñalver * fix: remove sudo from scripts Signed-off-by: Carlos Juan Gómez Peñalver * fix: add required repositories to helm Signed-off-by: Carlos Juan Gómez Peñalver * fix: simplify expression Signed-off-by: Carlos Juan Gómez Peñalver * fix: bump up chart version Signed-off-by: Carlos Juan Gómez Peñalver Co-authored-by: Spencer Gilbert --- .circleci/config.yml | 4 +- .gitignore | 2 +- charts/argo-cd/Chart.yaml | 2 +- charts/argo-cd/README.md | 37 +- charts/argo-cd/charts/redis-ha/Chart.yaml | 21 + charts/argo-cd/charts/redis-ha/OWNERS | 6 + charts/argo-cd/charts/redis-ha/README.md | 230 +++++++++++ .../redis-ha/ci/haproxy-enabled-values.yaml | 10 + .../charts/redis-ha/templates/NOTES.txt | 25 ++ .../charts/redis-ha/templates/_configs.tpl | 275 +++++++++++++ .../charts/redis-ha/templates/_helpers.tpl | 83 ++++ .../redis-ha/templates/redis-auth-secret.yaml | 12 + .../templates/redis-ha-announce-service.yaml | 41 ++ .../templates/redis-ha-configmap.yaml | 25 ++ .../redis-ha-exporter-script-configmap.yaml | 11 + .../redis-ha/templates/redis-ha-pdb.yaml | 15 + .../redis-ha/templates/redis-ha-role.yaml | 19 + .../templates/redis-ha-rolebinding.yaml | 19 + .../redis-ha/templates/redis-ha-service.yaml | 35 ++ .../templates/redis-ha-serviceaccount.yaml | 12 + .../templates/redis-ha-servicemonitor.yaml | 35 ++ .../templates/redis-ha-statefulset.yaml | 319 +++++++++++++++ .../templates/redis-haproxy-deployment.yaml | 151 ++++++++ .../templates/redis-haproxy-service.yaml | 42 ++ .../redis-haproxy-serviceaccount.yaml | 12 + .../redis-haproxy-servicemonitor.yaml | 34 ++ .../tests/test-redis-ha-configmap.yaml | 27 ++ .../templates/tests/test-redis-ha-pod.yaml | 20 + charts/argo-cd/charts/redis-ha/values.yaml | 362 ++++++++++++++++++ charts/argo-cd/requirements.lock | 6 + charts/argo-cd/requirements.yaml | 5 + charts/argo-cd/templates/_helpers.tpl | 7 + .../deployment.yaml | 4 +- .../argocd-repo-server/deployment.yaml | 3 +- .../templates/argocd-server/deployment.yaml | 3 +- .../argo-cd/templates/redis/deployment.yaml | 3 +- charts/argo-cd/templates/redis/service.yaml | 3 +- charts/argo-cd/values.yaml | 18 + charts/argo-ci/charts/argo-0.5.2.tgz | Bin 19907 -> 0 bytes charts/argo/charts/minio-5.0.6.tgz | Bin 16763 -> 0 bytes scripts/lint.sh | 21 +- scripts/publish.sh | 25 +- 42 files changed, 1951 insertions(+), 33 deletions(-) create mode 100644 charts/argo-cd/charts/redis-ha/Chart.yaml create mode 100644 charts/argo-cd/charts/redis-ha/OWNERS create mode 100644 charts/argo-cd/charts/redis-ha/README.md create mode 100644 charts/argo-cd/charts/redis-ha/ci/haproxy-enabled-values.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/NOTES.txt create mode 100644 charts/argo-cd/charts/redis-ha/templates/_configs.tpl create mode 100644 charts/argo-cd/charts/redis-ha/templates/_helpers.tpl create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-auth-secret.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-ha-announce-service.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-ha-configmap.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-ha-exporter-script-configmap.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-ha-pdb.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-ha-role.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-ha-rolebinding.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-ha-service.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-ha-serviceaccount.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-ha-servicemonitor.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-ha-statefulset.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-haproxy-deployment.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-haproxy-service.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-haproxy-serviceaccount.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/redis-haproxy-servicemonitor.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/tests/test-redis-ha-configmap.yaml create mode 100644 charts/argo-cd/charts/redis-ha/templates/tests/test-redis-ha-pod.yaml create mode 100644 charts/argo-cd/charts/redis-ha/values.yaml create mode 100644 charts/argo-cd/requirements.lock delete mode 100644 charts/argo-ci/charts/argo-0.5.2.tgz delete mode 100644 charts/argo/charts/minio-5.0.6.tgz diff --git a/.circleci/config.yml b/.circleci/config.yml index 072c6736..4156df56 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2.1 jobs: lint: docker: - - image: gcr.io/kubernetes-charts-ci/test-image:v3.0.1 + - image: gcr.io/kubernetes-charts-ci/test-image:v3.1.0 steps: - checkout - run: ct lint --config .circleci/chart-testing.yaml --lint-conf .circleci/lintconf.yaml @@ -11,7 +11,7 @@ jobs: publish: docker: # We just need an image with `helm` on it. Handily we know of one already. - - image: gcr.io/kubernetes-charts-ci/test-image:v3.0.1 + - image: gcr.io/kubernetes-charts-ci/test-image:v3.1.0 steps: # install the additional keys needed to push to Github. Alex Collins owns these keys. - add_ssh_keys diff --git a/.gitignore b/.gitignore index ad3d67a1..f501fc92 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ output .vscode .DS_Store -*.tgz +**/*.tgz diff --git a/charts/argo-cd/Chart.yaml b/charts/argo-cd/Chart.yaml index a07fef62..07f93ec3 100644 --- a/charts/argo-cd/Chart.yaml +++ b/charts/argo-cd/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v1 appVersion: "1.5.1" description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes. name: argo-cd -version: 2.1.2 +version: 2.2.0 home: https://github.com/argoproj/argo-helm icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png keywords: diff --git a/charts/argo-cd/README.md b/charts/argo-cd/README.md index e419f734..44163122 100644 --- a/charts/argo-cd/README.md +++ b/charts/argo-cd/README.md @@ -13,7 +13,7 @@ This chart currently installs the non-HA version of ArgoCD. ## Upgrading -### 1.8.7 to 2.0.0 +### 1.8.7 to 2.x.x `controller.extraArgs`, `repoServer.extraArgs` and `server.extraArgs` are not arrays of strings intead of a map @@ -75,8 +75,8 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i ## ArgoCD Controller -| Key | Type | Default | Description | -|-----|------|---------|-------------| +| Key | Default | Description | +|-----|---------|-------------| | controller.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` | | controller.args.operationProcessors | define the controller `--operation-processors` | `"10"` | | controller.args.statusProcessors | define the controller `--status-processors` | `"20"` | @@ -121,8 +121,8 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i ## Argo Repo Server -| Key | Type | Default | Description | -|-----|------|---------|-------------| +| Key | Default | Description | +|-----|---------|-------------| | repoServer.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` | | repoServer.autoscaling.enabled | Enable Horizontal Pod Autoscaler (HPA) for the repo server | `false` | | repoServer.autoscaling.minReplicas | Minimum number of replicas for the repo server HPA | `1` | @@ -168,8 +168,8 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i ## Argo Server -| Key | Type | Default | Description | -|-----|------|---------|-------------| +| Key | Default | Description | +|-----|---------|-------------| | server.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` | | server.autoscaling.enabled | Enable Horizontal Pod Autoscaler (HPA) for the server | `false` | | server.autoscaling.minReplicas | Minimum number of replicas for the server HPA | `1` | @@ -234,8 +234,8 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i ## Dex -| Key | Type | Default | Description | -|-----|------|---------|-------------| +| Key | Default | Description | +|-----|---------|-------------| | dex.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` | | dex.containerPortGrpc | GRPC container port | `5557` | | dex.containerPortHttp | HTTP container port | `5556` | @@ -263,8 +263,14 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i ## Redis -| Key | Type | Default | Description | -|-----|------|---------|-------------| +When Redis is completely disabled from the chart (`redis.enabled=false`) and +an external Redis instance wants to be used or +when Redis HA subcart is enabled (`redis.enabled=true and redis-ha.enabled=true`) +but HA proxy is disabled `redis-ha.haproxy.enabled=false` Redis flags need to be specified +through `xxx.extraArgs` + +| Key | Default | Description | +|-----|---------|-------------| | redis.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` | | redis.containerPort | Redis container port | `6379` | | redis.enabled | Enable redis | `true` | @@ -280,3 +286,12 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i | redis.resources | Resource limits and requests for redis | `{}` | | redis.servicePort | Redis service port | `6379` | | redis.tolerations | Tolerations for use with node taints https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ | `[]` | +| redis-ha | Configures Redis HA subchart https://github.com/helm/charts/tree/master/stable/redis-ha | | | +| redis-ha.enabled | Enables the Redis HA subchart and disables the custom Redis single node deployment| `false` | +| redis-ha.exporter.enabled | If `true`, the prometheus exporter sidecar is enabled | `true` | +| redis-ha.persistentVolume.enabled | Configures persistency on Redis nodes | `false` +| redis-ha.redis.masterGroupName | Redis convention for naming the cluster group: must match `^[\\w-\\.]+$` and can be templated | `argocd` +| redis-ha.redis.config | Any valid redis config options in this section will be applied to each server (see `redis-ha` chart) | `` | +| redis-ha.redis.config.save | Will save the DB if both the given number of seconds and the given number of write operations against the DB occurred. `""` is disabled | `""` | +| redis-ha.haproxy.enabled | Enabled HAProxy LoadBalancing/Proxy | `true` | +| redis-ha.haproxy.metrics.enabled | HAProxy enable prometheus metric scraping | `true` | diff --git a/charts/argo-cd/charts/redis-ha/Chart.yaml b/charts/argo-cd/charts/redis-ha/Chart.yaml new file mode 100644 index 00000000..04a04fdf --- /dev/null +++ b/charts/argo-cd/charts/redis-ha/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v1 +appVersion: 5.0.6 +description: Highly available Kubernetes implementation of Redis +engine: gotpl +home: http://redis.io/ +icon: https://upload.wikimedia.org/wikipedia/en/thumb/6/6b/Redis_Logo.svg/1200px-Redis_Logo.svg.png +keywords: +- redis +- keyvalue +- database +maintainers: +- email: salimsalaues@gmail.com + name: ssalaues +- email: aaron.layfield@gmail.com + name: dandydeveloper +name: redis-ha +sources: +- https://redis.io/download +- https://github.com/scality/Zenko/tree/development/1.0/kubernetes/zenko/charts/redis-ha +- https://github.com/oliver006/redis_exporter +version: 4.4.2 diff --git a/charts/argo-cd/charts/redis-ha/OWNERS b/charts/argo-cd/charts/redis-ha/OWNERS new file mode 100644 index 00000000..cf4f87d5 --- /dev/null +++ b/charts/argo-cd/charts/redis-ha/OWNERS @@ -0,0 +1,6 @@ +approvers: +- ssalaues +- dandydeveloper +reviewers: +- ssalaues +- dandydeveloper \ No newline at end of file diff --git a/charts/argo-cd/charts/redis-ha/README.md b/charts/argo-cd/charts/redis-ha/README.md new file mode 100644 index 00000000..ba93ce0f --- /dev/null +++ b/charts/argo-cd/charts/redis-ha/README.md @@ -0,0 +1,230 @@ +# Redis + +[Redis](http://redis.io/) is an advanced key-value cache and store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets, sorted sets, bitmaps and hyperloglogs. + +## TL;DR; + +```bash +$ helm install stable/redis-ha +``` + +By default this chart install 3 pods total: + * one pod containing a redis master and sentinel container (optional prometheus metrics exporter sidecar available) + * two pods each containing a redis slave and sentinel containers (optional prometheus metrics exporter sidecars available) + +## Introduction + +This chart bootstraps a [Redis](https://redis.io) highly available master/slave statefulset in a [Kubernetes](http://kubernetes.io) cluster using the Helm package manager. + +## Prerequisites + +- Kubernetes 1.8+ with Beta APIs enabled +- PV provisioner support in the underlying infrastructure + +## Upgrading the Chart + +Please note that there have been a number of changes simplifying the redis management strategy (for better failover and elections) in the 3.x version of this chart. These changes allow the use of official [redis](https://hub.docker.com/_/redis/) images that do not require special RBAC or ServiceAccount roles. As a result when upgrading from version >=2.0.1 to >=3.0.0 of this chart, `Role`, `RoleBinding`, and `ServiceAccount` resources should be deleted manually. + +### Upgrading the chart from 3.x to 4.x + +Starting from version `4.x` HAProxy sidecar prometheus-exporter removed and replaced by the embedded [HAProxy metrics endpoint](https://github.com/haproxy/haproxy/tree/master/contrib/prometheus-exporter), as a result when upgrading from version 3.x to 4.x section `haproxy.exporter` should be removed and the `haproxy.metrics` need to be configured for fit your needs. + +## Installing the Chart + +To install the chart + +```bash +$ helm install stable/redis-ha +``` + +The command deploys Redis on the Kubernetes cluster in the default configuration. By default this chart install one master pod containing redis master container and sentinel container along with 2 redis slave pods each containing their own sentinel sidecars. The [configuration](#configuration) section lists the parameters that can be configured during installation. + +> **Tip**: List all releases using `helm list` + +## Uninstalling the Chart + +To uninstall/delete the deployment: + +```bash +$ helm delete +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The following table lists the configurable parameters of the Redis chart and their default values. + +| Parameter | Description | Default | +|:--------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------| +| `image` | Redis image | `redis` | +| `imagePullSecrets` | Reference to one or more secrets to be used when pulling redis images | [] | +| `tag` | Redis tag | `5.0.6-alpine` | +| `replicas` | Number of redis master/slave pods | `3` | +| `serviceAccount.create` | Specifies whether a ServiceAccount should be created | `true` | +| `serviceAccount.name` | The name of the ServiceAccount to create | Generated using the redis-ha.fullname template | +| `rbac.create` | Create and use RBAC resources | `true` | +| `redis.port` | Port to access the redis service | `6379` | +| `redis.masterGroupName` | Redis convention for naming the cluster group: must match `^[\\w-\\.]+$` and can be templated | `mymaster` | +| `redis.config` | Any valid redis config options in this section will be applied to each server (see below) | see values.yaml | +| `redis.customConfig` | Allows for custom redis.conf files to be applied. If this is used then `redis.config` is ignored | `` | +| `redis.resources` | CPU/Memory for master/slave nodes resource requests/limits | `{}` | +| `sentinel.port` | Port to access the sentinel service | `26379` | +| `sentinel.quorum` | Minimum number of servers necessary to maintain quorum | `2` | +| `sentinel.config` | Valid sentinel config options in this section will be applied as config options to each sentinel (see below) | see values.yaml | +| `sentinel.customConfig` | Allows for custom sentinel.conf files to be applied. If this is used then `sentinel.config` is ignored | `` | +| `sentinel.resources` | CPU/Memory for sentinel node resource requests/limits | `{}` | +| `init.resources` | CPU/Memory for init Container node resource requests/limits | `{}` | +| `auth` | Enables or disables redis AUTH (Requires `redisPassword` to be set) | `false` | +| `redisPassword` | A password that configures a `requirepass` and `masterauth` in the conf parameters (Requires `auth: enabled`) | `` | +| `authKey` | The key holding the redis password in an existing secret. | `auth` | +| `existingSecret` | An existing secret containing a key defined by `authKey` that configures `requirepass` and `masterauth` in the conf parameters (Requires `auth: enabled`, cannot be used in conjunction with `.Values.redisPassword`) | `` | +| `nodeSelector` | Node labels for pod assignment | `{}` | +| `tolerations` | Toleration labels for pod assignment | `[]` | +| `hardAntiAffinity` | Whether the Redis server pods should be forced to run on separate nodes. | `true` | +| `additionalAffinities` | Additional affinities to add to the Redis server pods. | `{}` | +| `securityContext` | Security context to be added to the Redis server pods. | `{runAsUser: 1000, fsGroup: 1000, runAsNonRoot: true}` | +| `affinity` | Override all other affinity settings with a string. | `""` | +| `persistentVolume.size` | Size for the volume | 10Gi | +| `persistentVolume.annotations` | Annotations for the volume | `{}` | +| `persistentVolume.reclaimPolicy` | Method used to reclaim an obsoleted volume. `Delete` or `Retain` | `""` | +| `emptyDir` | Configuration of `emptyDir`, used only if persistentVolume is disabled and no hostPath specified | `{}` | +| `exporter.enabled` | If `true`, the prometheus exporter sidecar is enabled | `false` | +| `exporter.image` | Exporter image | `oliver006/redis_exporter` | +| `exporter.tag` | Exporter tag | `v0.31.0` | +| `exporter.port` | Exporter port | `9121` | +| `exporter.annotations` | Prometheus scrape annotations | `{prometheus.io/path: /metrics, prometheus.io/port: "9121", prometheus.io/scrape: "true"}` | +| `exporter.extraArgs` | Additional args for the exporter | `{}` | +| `exporter.script` | A custom custom Lua script that will be mounted to exporter for collection of custom metrics. Creates a ConfigMap and sets env var `REDIS_EXPORTER_SCRIPT`. | | +| `exporter.serviceMonitor.enabled` | Use servicemonitor from prometheus operator | `false` | +| `exporter.serviceMonitor.namespace` | Namespace the service monitor is created in | `default` | +| `exporter.serviceMonitor.interval` | Scrape interval, If not set, the Prometheus default scrape interval is used | `nil` | +| `exporter.serviceMonitor.telemetryPath` | Path to redis-exporter telemetry-path | `/metrics` | +| `exporter.serviceMonitor.labels` | Labels for the servicemonitor passed to Prometheus Operator | `{}` | +| `exporter.serviceMonitor.timeout` | How long until a scrape request times out. If not set, the Prometheus default scape timeout is used | `nil` | +| `haproxy.enabled` | Enabled HAProxy LoadBalancing/Proxy | `false` | +| `haproxy.replicas` | Number of HAProxy instances | `3` | +| `haproxy.image.repository`| HAProxy Image Repository | `haproxy` | +| `haproxy.image.tag` | HAProxy Image Tag | `2.0.1` | +| `haproxy.image.pullPolicy`| HAProxy Image PullPolicy | `IfNotPresent` | +| `haproxy.imagePullSecrets`| Reference to one or more secrets to be used when pulling haproxy images | [] | +| `haproxy.annotations` | HAProxy template annotations | `{}` | +| `haproxy.customConfig` | Allows for custom config-haproxy.cfg file to be applied. If this is used then default config will be overwriten | `` | +| `haproxy.extraConfig` | Allows to place any additional configuration section to add to the default config-haproxy.cfg | `` | +| `haproxy.resources` | HAProxy resources | `{}` | +| `haproxy.emptyDir` | Configuration of `emptyDir` | `{}` | +| `haproxy.service.type` | HAProxy service type "ClusterIP", "LoadBalancer" or "NodePort" | `ClusterIP` | +| `haproxy.service.nodePort` | HAProxy service nodePort value (haproxy.service.type must be NodePort) | not set | +| `haproxy.service.annotations` | HAProxy service annotations | `{}` | +| `haproxy.stickyBalancing` | HAProxy sticky load balancing to Redis nodes. Helps with connections shutdown. | `false` | +| `haproxy.hapreadport.enable` | Enable a read only port for redis slaves | `false` | +| `haproxy.hapreadport.port` | Haproxy port for read only redis slaves | `6380` | +| `haproxy.metrics.enabled` | HAProxy enable prometheus metric scraping | `false` | +| `haproxy.metrics.port` | HAProxy prometheus metrics scraping port | `9101` | +| `haproxy.metrics.portName` | HAProxy metrics scraping port name | `exporter-port` | +| `haproxy.metrics.scrapePath` | HAProxy prometheus metrics scraping port | `/metrics` | +| `haproxy.metrics.serviceMonitor.enabled` | Use servicemonitor from prometheus operator for HAProxy metrics | `false` | +| `haproxy.metrics.serviceMonitor.namespace` | Namespace the service monitor for HAProxy metrics is created in | `default` | +| `haproxy.metrics.serviceMonitor.interval` | Scrape interval, If not set, the Prometheus default scrape interval is used | `nil` | +| `haproxy.metrics.serviceMonitor.telemetryPath` | Path to HAProxy metrics telemetry-path | `/metrics` | +| `haproxy.metrics.serviceMonitor.labels` | Labels for the HAProxy metrics servicemonitor passed to Prometheus Operator | `{}` | +| `haproxy.metrics.serviceMonitor.timeout` | How long until a scrape request times out. If not set, the Prometheus default scape timeout is used | `nil` | +| `haproxy.init.resources` | Extra init resources | `{}` | +| `haproxy.timeout.connect` | haproxy.cfg `timeout connect` setting | `4s` | +| `haproxy.timeout.server` | haproxy.cfg `timeout server` setting | `30s` | +| `haproxy.timeout.client` | haproxy.cfg `timeout client` setting | `30s` | +| `haproxy.timeout.check` | haproxy.cfg `timeout check` setting | `2s` | +| `haproxy.priorityClassName` | priorityClassName for `haproxy` deployment | not set | +| `haproxy.securityContext` | Security context to be added to the HAProxy deployment. | `{runAsUser: 1000, fsGroup: 1000, runAsNonRoot: true}` | +| `haproxy.hardAntiAffinity` | Whether the haproxy pods should be forced to run on separate nodes. | `true` | +| `haproxy.affinity` | Override all other haproxy affinity settings with a string. | `""` | +| `haproxy.additionalAffinities` | Additional affinities to add to the haproxy server pods. | `{}` | +| `podDisruptionBudget` | Pod Disruption Budget rules | `{}` | +| `priorityClassName` | priorityClassName for `redis-ha-statefulset` | not set | +| `hostPath.path` | Use this path on the host for data storage | not set | +| `hostPath.chown` | Run an init-container as root to set ownership on the hostPath | `true` | +| `sysctlImage.enabled` | Enable an init container to modify Kernel settings | `false` | +| `sysctlImage.command` | sysctlImage command to execute | [] | +| `sysctlImage.registry` | sysctlImage Init container registry | `docker.io` | +| `sysctlImage.repository` | sysctlImage Init container name | `busybox` | +| `sysctlImage.tag` | sysctlImage Init container tag | `1.31.1` | +| `sysctlImage.pullPolicy` | sysctlImage Init container pull policy | `Always` | +| `sysctlImage.mountHostSys`| Mount the host `/sys` folder to `/host-sys` | `false` | +| `sysctlImage.resources` | sysctlImage resources | `{}` | +| `schedulerName` | Alternate scheduler name | `nil` | + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```bash +$ helm install \ + --set image=redis \ + --set tag=5.0.5-alpine \ + stable/redis-ha +``` + +The above command sets the Redis server within `default` namespace. + +Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example, + +```bash +$ helm install -f values.yaml stable/redis-ha +``` + +> **Tip**: You can use the default [values.yaml](values.yaml) + +## Custom Redis and Sentinel config options + +This chart allows for most redis or sentinel config options to be passed as a key value pair through the `values.yaml` under `redis.config` and `sentinel.config`. See links below for all available options. + +[Example redis.conf](http://download.redis.io/redis-stable/redis.conf) +[Example sentinel.conf](http://download.redis.io/redis-stable/sentinel.conf) + +For example `repl-timeout 60` would be added to the `redis.config` section of the `values.yaml` as: + +```yml + repl-timeout: "60" +``` + +Note: + +1. Some config options should be renamed by redis version,e.g.: + + ``` + # In redis 5.x,see https://raw.githubusercontent.com/antirez/redis/5.0/redis.conf + min-replicas-to-write: 1 + min-replicas-max-lag: 5 + + # In redis 4.x and redis 3.x,see https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf and https://raw.githubusercontent.com/antirez/redis/3.0/redis.conf + min-slaves-to-write 1 + min-slaves-max-lag 5 + ``` + +Sentinel options supported must be in the the `sentinel