Merge branch 'master' into argo-rollout-dashboard

This commit is contained in:
Marco Kilchhofer 2021-08-16 17:21:42 +02:00 committed by GitHub
commit 0cea36ac48
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 114 additions and 9 deletions

View file

@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 2.0.5 appVersion: 2.0.5
description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes. description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes.
name: argo-cd name: argo-cd
version: 3.11.4 version: 3.12.1
home: https://github.com/argoproj/argo-helm home: https://github.com/argoproj/argo-helm
icon: https://argoproj.github.io/argo-cd/assets/logo.png icon: https://argoproj.github.io/argo-cd/assets/logo.png
keywords: keywords:
@ -21,4 +21,4 @@ dependencies:
condition: redis-ha.enabled condition: redis-ha.enabled
annotations: annotations:
artifacthub.io/changes: | artifacthub.io/changes: |
- "[Fixed]: Can't login when using configs.secret.argocdServerAdminPassword" - "[Fixed]: redis-ha.nameOverride / redis-ha.fullnameOverride breaks the ArgoCD helm chart"

View file

@ -148,6 +148,7 @@ NAME: my-release
| fullnameOverride | String to fully override `"argo-cd.fullname"` | `""` | | fullnameOverride | String to fully override `"argo-cd.fullname"` | `""` |
| apiVersionOverrides.certmanager | String to override apiVersion of certmanager resources rendered by this helm chart | `""` | | apiVersionOverrides.certmanager | String to override apiVersion of certmanager resources rendered by this helm chart | `""` |
| apiVersionOverrides.ingress | String to override apiVersion of ingresses rendered by this helm chart | `""` | | apiVersionOverrides.ingress | String to override apiVersion of ingresses rendered by this helm chart | `""` |
| createAggregateRoles | Create clusterroles that extend aggregated roles to use argo-cd crds | `false` |
| configs.clusterCredentials | Provide one or multiple [external cluster credentials](https://argoproj.github.io/argo-cd/operator-manual/declarative-setup/#clusters) | `[]` (See [values.yaml](values.yaml)) | | configs.clusterCredentials | Provide one or multiple [external cluster credentials](https://argoproj.github.io/argo-cd/operator-manual/declarative-setup/#clusters) | `[]` (See [values.yaml](values.yaml)) |
| configs.gpgKeysAnnotations | GnuPG key ring annotations | `{}` | | configs.gpgKeysAnnotations | GnuPG key ring annotations | `{}` |
| configs.gpgKeys | [GnuPG](https://argoproj.github.io/argo-cd/user-guide/gpg-verification/) keys to add to the key ring | `{}` (See [values.yaml](values.yaml)) | | configs.gpgKeys | [GnuPG](https://argoproj.github.io/argo-cd/user-guide/gpg-verification/) keys to add to the key ring | `{}` (See [values.yaml](values.yaml)) |
@ -312,6 +313,7 @@ NAME: my-release
| server.ingressGrpc.ingressClassName | Defines which ingress controller will implement the resource [gRPC-ingress] | `""` | | server.ingressGrpc.ingressClassName | Defines which ingress controller will implement the resource [gRPC-ingress] | `""` |
| server.ingressGrpc.tls | Ingress TLS configuration for dedicated [gRPC-ingress] | `[]` | | server.ingressGrpc.tls | Ingress TLS configuration for dedicated [gRPC-ingress] | `[]` |
| server.ingressGrpc.isAWSALB | Setup up GRPC ingress to work with an AWS ALB | `false` | | server.ingressGrpc.isAWSALB | Setup up GRPC ingress to work with an AWS ALB | `false` |
| server.ingressGrpc.awsALB.serviceType | Service type for the AWS ALB GRPC service | `NodePort` |
| server.route.enabled | Enable a OpenShift route for the server | `false` | | server.route.enabled | Enable a OpenShift route for the server | `false` |
| server.route.hostname | Hostname of OpenShift route | `""` | | server.route.hostname | Hostname of OpenShift route | `""` |
| server.lifecycle | PostStart and PreStop hooks configuration | `{}` | | server.lifecycle | PostStart and PreStop hooks configuration | `{}` |
@ -454,5 +456,7 @@ server:
ingressGrpc: ingressGrpc:
enabled: true enabled: true
isAWSALB: true isAWSALB: true
awsALB:
serviceType: ClusterIP
``` ```

View file

@ -42,10 +42,11 @@ Create dex name and version as used by the chart label.
Create redis name and version as used by the chart label. Create redis name and version as used by the chart label.
*/}} */}}
{{- define "argo-cd.redis.fullname" -}} {{- define "argo-cd.redis.fullname" -}}
{{ $redisHa := (index .Values "redis-ha") }} {{- $redisHa := (index .Values "redis-ha") -}}
{{- $redisHaContext := dict "Chart" (dict "Name" "redis-ha") "Release" .Release "Values" $redisHa -}}
{{- if $redisHa.enabled -}} {{- if $redisHa.enabled -}}
{{- if $redisHa.haproxy.enabled -}} {{- if $redisHa.haproxy.enabled -}}
{{- printf "%s-redis-ha-haproxy" .Release.Name | trunc 63 | trimSuffix "-" -}} {{- printf "%s-haproxy" (include "redis-ha.fullname" $redisHaContext) | trunc 63 | trimSuffix "-" -}}
{{- end -}} {{- end -}}
{{- else -}} {{- else -}}
{{- printf "%s-%s" (include "argo-cd.fullname" .) .Values.redis.name | trunc 63 | trimSuffix "-" -}} {{- printf "%s-%s" (include "argo-cd.fullname" .) .Values.redis.name | trunc 63 | trimSuffix "-" -}}

View file

@ -0,0 +1,67 @@
{{- if .Values.createAggregateRoles }}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ include "argo-cd.fullname" . }}-aggregate-to-view
labels:
rbac.authorization.k8s.io/aggregate-to-view: "true"
{{- include "argo-cd.labels" (dict "context" .) | nindent 4 }}
rules:
- apiGroups:
- argoproj.io
resources:
- applications
- appprojects
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ include "argo-cd.fullname" . }}-aggregate-to-edit
labels:
rbac.authorization.k8s.io/aggregate-to-edit: "true"
{{- include "argo-cd.labels" (dict "context" .) | nindent 4 }}
rules:
- apiGroups:
- argoproj.io
resources:
- applications
- appprojects
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ include "argo-cd.fullname" . }}-aggregate-to-admin
labels:
rbac.authorization.k8s.io/aggregate-to-admin: "true"
{{- include "argo-cd.labels" (dict "context" .) | nindent 4 }}
rules:
- apiGroups:
- argoproj.io
resources:
- applications
- appprojects
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
{{- end }}

View file

@ -20,5 +20,5 @@ spec:
selector: selector:
{{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 4 }} {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 4 }}
sessionAffinity: None sessionAffinity: None
type: NodePort type: {{ .Values.server.ingressGrpc.awsALB.serviceType }}
{{- end -}} {{- end -}}

View file

@ -31,6 +31,10 @@ apiVersionOverrides:
certmanager: "" # cert-manager.io/v1 certmanager: "" # cert-manager.io/v1
ingress: "" # networking.k8s.io/v1beta1 ingress: "" # networking.k8s.io/v1beta1
## Create clusterroles that extend existing clusterroles to interact with argo-cd crds
## Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles
createAggregateRoles: false
## Controller ## Controller
controller: controller:
name: application-controller name: application-controller
@ -611,6 +615,15 @@ server:
labels: {} labels: {}
ingressClassName: "" ingressClassName: ""
## Service Type if isAWSALB is set to true
## Can be of type NodePort or ClusterIP depending on which mode you are
## are running. Instance mode needs type NodePort, IP mode needs type
## ClusterIP
## Ref: https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/how-it-works/#ingress-traffic
##
awsALB:
serviceType: NodePort
## Argo Ingress. ## Argo Ingress.
## Hostnames must be provided if Ingress is enabled. ## Hostnames must be provided if Ingress is enabled.
## Secrets must be manually created in the namespace ## Secrets must be manually created in the namespace

View file

@ -2,7 +2,7 @@ apiVersion: v2
name: argocd-applicationset name: argocd-applicationset
description: A Helm chart for installing ArgoCD ApplicationSet description: A Helm chart for installing ArgoCD ApplicationSet
type: application type: application
version: 1.0.0 version: 1.1.0
appVersion: "v0.1.0" appVersion: "v0.1.0"
home: https://github.com/argoproj/argo-helm home: https://github.com/argoproj/argo-helm
icon: https://argocd-applicationset.readthedocs.io/en/stable/assets/logo.png icon: https://argocd-applicationset.readthedocs.io/en/stable/assets/logo.png
@ -14,6 +14,5 @@ maintainers:
- name: maruina - name: maruina
annotations: annotations:
artifacthub.io/changes: | artifacthub.io/changes: |
- "[Removed]: CRD installation via templates folder. CRDs are now only handled via the '/crds' folder in the same way like the ArgoCD chart." - "[Added]: /tmp is an emptyDir now (enables users to use readOnlyRootFilesystem)"
- "[Removed]: Exclude '/ci' folder from being packaged into the final chart archive." - "[Added]: Ability to add extraVolumes and extraVolumeMounts"
- "[Changed]: Fix icon url"

View file

@ -65,6 +65,8 @@ kubectl apply -k https://github.com/argoproj-labs/applicationset.git/manifests/c
| args.policy | string | `sync` | How application is synced between the generator and the cluster | | args.policy | string | `sync` | How application is synced between the generator and the cluster |
| args.debug | bool | `false` | Print debug logs | | args.debug | bool | `false` | Print debug logs |
| args.dryRun | bool | `false` | Enable dry run mode | | args.dryRun | bool | `false` | Enable dry run mode |
| extraVolumeMounts | list | `[]` | List of extra mounts to add (normally used with extraVolumes) |
| extraVolumes | list | `[]` | List of extra volumes to add |
| fullnameOverride | string | `""` | Override the default fully qualified app name | | fullnameOverride | string | `""` | Override the default fully qualified app name |
| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | | image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
| image.repository | string | `"quay.io/argocdapplicationset/argocd-applicationset"` | If defined, a repository applied to the ApplicationSet deployment. | | image.repository | string | `"quay.io/argocdapplicationset/argocd-applicationset"` | If defined, a repository applied to the ApplicationSet deployment. |

View file

@ -50,6 +50,8 @@ spec:
resources: resources:
{{- toYaml .Values.resources | nindent 12 }} {{- toYaml .Values.resources | nindent 12 }}
volumeMounts: volumeMounts:
- mountPath: /tmp
name: tmp-dir
{{- if .Values.mountSSHKnownHostsVolume }} {{- if .Values.mountSSHKnownHostsVolume }}
- mountPath: /app/config/ssh - mountPath: /app/config/ssh
name: ssh-known-hosts name: ssh-known-hosts
@ -66,7 +68,12 @@ spec:
- mountPath: /app/config/gpg/keys - mountPath: /app/config/gpg/keys
name: gpg-keyring name: gpg-keyring
{{- end }} {{- end }}
{{- with .Values.extraVolumeMounts }}
{{- toYaml . | nindent 12 }}
{{- end }}
volumes: volumes:
- emptyDir: {}
name: tmp-dir
{{- if .Values.mountSSHKnownHostsVolume }} {{- if .Values.mountSSHKnownHostsVolume }}
- configMap: - configMap:
name: argocd-ssh-known-hosts-cm name: argocd-ssh-known-hosts-cm
@ -86,6 +93,9 @@ spec:
- emptyDir: {} - emptyDir: {}
name: gpg-keyring name: gpg-keyring
{{- end }} {{- end }}
{{- with .Values.extraVolumes }}
{{- toYaml . | nindent 6 }}
{{- end }}
{{- with .Values.nodeSelector }} {{- with .Values.nodeSelector }}
nodeSelector: nodeSelector:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}

View file

@ -75,3 +75,12 @@ mountSSHKnownHostsVolume: true
mountTLSCertsVolume: true mountTLSCertsVolume: true
mountGPGKeysVolume: false mountGPGKeysVolume: false
mountGPGKeyringVolume: true mountGPGKeyringVolume: true
# -- List of extra mounts to add (normally used with extraVolumes)
extraVolumeMounts: []
# - mountPath: /tmp/foobar
# name: foobar
# -- List of extra volumes to add
extraVolumes: []
# - name: foobar
# emptyDir: {}