From f47ec469659d031be05af564e2c15f77fc96fe22 Mon Sep 17 00:00:00 2001 From: Adrian Wyssmann Date: Fri, 26 Jun 2020 15:25:00 +0200 Subject: [PATCH 1/6] feat: Enable dedicated grpc ingress for argo-cd-server (#367) * [argo-cd] Enable dedicated grpc ingress This is based on the information found at https://argoproj.github.io/argo-cd/operator-manual/ingress/ * [argo-cd] Ensure unique name for grpc ingress * [charts/argo-cd] Bump chart version --- charts/argo-cd/Chart.yaml | 2 +- charts/argo-cd/README.md | 8 +++ .../templates/argocd-server/ingress-grpc.yaml | 57 +++++++++++++++++++ .../templates/argocd-server/ingress.yaml | 2 +- charts/argo-cd/values.yaml | 23 ++++++++ 5 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 charts/argo-cd/templates/argocd-server/ingress-grpc.yaml diff --git a/charts/argo-cd/Chart.yaml b/charts/argo-cd/Chart.yaml index 810cd4f8..71e62126 100644 --- a/charts/argo-cd/Chart.yaml +++ b/charts/argo-cd/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v1 appVersion: "1.6.1" description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes. name: argo-cd -version: 2.4.0 +version: 2.5.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 de926d7a..0318e13d 100644 --- a/charts/argo-cd/README.md +++ b/charts/argo-cd/README.md @@ -206,6 +206,12 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i | server.ingress.hosts | List of ingress hosts | `[]` | | server.ingress.labels | Additional ingress labels. | `{}` | | server.ingress.tls | Ingress TLS configuration. | `[]` | +| server.ingress.https | Uses `server.service.servicePortHttps` instead `server.service.servicePortHttp` | `false` | +| server.ingressGrpc.annotations | Additional ingress annotations for dedicated [gRPC-ingress] | `{}` | +| server.ingressGrpc.enabled | Enable an ingress resource for the server for dedicated [gRPC-ingress] | `false` | +| server.ingressGrpc.hosts | List of ingress hosts for dedicated [gRPC-ingress] | `[]` | +| server.ingressGrpc.labels | Additional ingress labels for dedicated [gRPC-ingress] | `{}` | +| server.ingressGrpc.tls | Ingress TLS configuration for dedicated [gRPC-ingress] | `[]` | | server.route.enabled | Enable a OpenShift route for the server | `false` | | server.route.hostname | Hostname of OpenShift route | `""` | | server.livenessProbe.failureThreshold | [Kubernetes probe configuration](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes) | `3` | @@ -312,3 +318,5 @@ through `xxx.extraArgs` | redis-ha.haproxy.enabled | Enabled HAProxy LoadBalancing/Proxy | `true` | | redis-ha.haproxy.metrics.enabled | HAProxy enable prometheus metric scraping | `true` | | redis-ha.image.tag | Redis tag | `"5.0.8-alpine"` | + +[gRPC-ingress]: https://argoproj.github.io/argo-cd/operator-manual/ingress/ \ No newline at end of file diff --git a/charts/argo-cd/templates/argocd-server/ingress-grpc.yaml b/charts/argo-cd/templates/argocd-server/ingress-grpc.yaml new file mode 100644 index 00000000..42538d61 --- /dev/null +++ b/charts/argo-cd/templates/argocd-server/ingress-grpc.yaml @@ -0,0 +1,57 @@ +{{- if .Values.server.ingressGrpc.enabled -}} +{{- $serviceName := include "argo-cd.server.fullname" . -}} +{{- $servicePort := ternary .Values.server.service.servicePortHttps .Values.server.service.servicePortHttp .Values.server.ingressGrpc.https -}} +{{- $paths := .Values.server.ingressGrpc.paths -}} +{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }} +apiVersion: networking.k8s.io/v1beta1 +{{ else }} +apiVersion: extensions/v1beta1 +{{ end -}} +kind: Ingress +metadata: +{{- if .Values.server.ingressGrpc.annotations }} + annotations: + {{- range $key, $value := .Values.server.ingressGrpc.annotations }} + {{ $key }}: {{ $value | quote }} + {{- end }} +{{- end }} + name: {{ template "argo-cd.server.fullname" . }}-grpc + labels: + app.kubernetes.io/name: {{ include "argo-cd.name" . }}-{{ .Values.server.name }} + helm.sh/chart: {{ include "argo-cd.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/part-of: argocd + app.kubernetes.io/component: {{ .Values.server.name }} +{{- if .Values.server.ingressGrpc.labels }} +{{- toYaml .Values.server.ingressGrpc.labels | nindent 4 }} +{{- end }} +spec: + rules: + {{- if .Values.server.ingressGrpc.hosts }} + {{- range $host := .Values.server.ingressGrpc.hosts }} + - host: {{ $host }} + http: + paths: + {{- range $p := $paths }} + - path: {{ $p }} + backend: + serviceName: {{ $serviceName }} + servicePort: {{ $servicePort }} + {{- end -}} + {{- end -}} + {{- else }} + - http: + paths: + {{- range $p := $paths }} + - path: {{ $p }} + backend: + serviceName: {{ $serviceName }} + servicePort: {{ $servicePort }} + {{- end -}} + {{- end -}} + {{- if .Values.server.ingressGrpc.tls }} + tls: +{{- toYaml .Values.server.ingressGrpc.tls | nindent 4 }} + {{- end -}} +{{- end -}} \ No newline at end of file diff --git a/charts/argo-cd/templates/argocd-server/ingress.yaml b/charts/argo-cd/templates/argocd-server/ingress.yaml index df2f93ce..056776a4 100644 --- a/charts/argo-cd/templates/argocd-server/ingress.yaml +++ b/charts/argo-cd/templates/argocd-server/ingress.yaml @@ -1,6 +1,6 @@ {{- if .Values.server.ingress.enabled -}} {{- $serviceName := include "argo-cd.server.fullname" . -}} -{{- $servicePort := .Values.server.service.servicePortHttp -}} +{{- $servicePort := ternary .Values.server.service.servicePortHttps .Values.server.service.servicePortHttp .Values.server.ingress.https -}} {{- $paths := .Values.server.ingress.paths -}} {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }} apiVersion: networking.k8s.io/v1beta1 diff --git a/charts/argo-cd/values.yaml b/charts/argo-cd/values.yaml index ad0ebed3..3eee07d1 100755 --- a/charts/argo-cd/values.yaml +++ b/charts/argo-cd/values.yaml @@ -452,6 +452,29 @@ server: # - secretName: argocd-example-tls # hosts: # - argocd.example.com + https: false + # dedicated ingess for gRPC as documented at + # https://argoproj.github.io/argo-cd/operator-manual/ingress/ + ingressGrpc: + enabled: false + annotations: {} + labels: {} + + ## Argo Ingress. + ## Hostnames must be provided if Ingress is enabled. + ## Secrets must be manually created in the namespace + ## + hosts: + [] + # - argocd.example.com + paths: + - / + tls: + [] + # - secretName: argocd-example-tls + # hosts: + # - argocd.example.com + https: false # Create a OpenShift Route with SSL passthrough for UI and CLI # Consider setting 'hostname' e.g. https://argocd.apps-crc.testing/ using your Default Ingress Controller Domain From 5ca92acda0048f8781b00839f80753fb559a1c25 Mon Sep 17 00:00:00 2001 From: Sergey Shaykhullin <46970457+sergeyshaykhullin@users.noreply.github.com> Date: Sat, 27 Jun 2020 01:38:12 +0300 Subject: [PATCH 2/6] fix: Escape :icon: yaml (#386) * Fix :icon: yaml validation * Bump version * Add quote filter --- charts/argocd-notifications/Chart.yaml | 2 +- charts/argocd-notifications/templates/secret.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/argocd-notifications/Chart.yaml b/charts/argocd-notifications/Chart.yaml index 54ef9a84..43fc4848 100644 --- a/charts/argocd-notifications/Chart.yaml +++ b/charts/argocd-notifications/Chart.yaml @@ -3,7 +3,7 @@ appVersion: 0.7.0 description: A Helm chart for ArgoCD notifications, an add-on to ArgoCD. name: argocd-notifications type: application -version: 1.0.4 +version: 1.0.5 home: https://github.com/argoproj/argo-helm icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png keywords: diff --git a/charts/argocd-notifications/templates/secret.yaml b/charts/argocd-notifications/templates/secret.yaml index a5fc5527..359fcc7f 100644 --- a/charts/argocd-notifications/templates/secret.yaml +++ b/charts/argocd-notifications/templates/secret.yaml @@ -12,7 +12,7 @@ stringData: slack: token: {{ .Values.secret.notifiers.slack.token }} username: {{ .Values.secret.notifiers.slack.username }} - icon: {{ .Values.secret.notifiers.slack.icon }} + icon: {{ .Values.secret.notifiers.slack.icon | quote }} signingSecret: {{ .Values.secret.notifiers.slack.signingSecret }} {{- end }} {{- if .Values.secret.notifiers.grafana.enabled }} From 7d5d20f6156b4084e6aa9037ee8f9e2189b72f1c Mon Sep 17 00:00:00 2001 From: Jonathan Serafini Date: Tue, 30 Jun 2020 20:31:16 -0400 Subject: [PATCH 3/6] argocd-notifications: fix serviceaccount name (#389) * fix: ArgoCD Notifications - Bot service account * chore: update argocd-notifications version to 1.0.6 --- charts/argocd-notifications/Chart.yaml | 2 +- charts/argocd-notifications/templates/_helpers.tpl | 2 +- .../templates/bots/slack/deployment.yaml | 2 +- .../argocd-notifications/templates/bots/slack/role.yaml | 9 +++++++++ .../templates/bots/slack/serviceaccount.yaml | 2 +- .../argocd-notifications/templates/serviceaccount.yaml | 2 ++ 6 files changed, 15 insertions(+), 4 deletions(-) diff --git a/charts/argocd-notifications/Chart.yaml b/charts/argocd-notifications/Chart.yaml index 43fc4848..1696630c 100644 --- a/charts/argocd-notifications/Chart.yaml +++ b/charts/argocd-notifications/Chart.yaml @@ -3,7 +3,7 @@ appVersion: 0.7.0 description: A Helm chart for ArgoCD notifications, an add-on to ArgoCD. name: argocd-notifications type: application -version: 1.0.5 +version: 1.0.6 home: https://github.com/argoproj/argo-helm icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png keywords: diff --git a/charts/argocd-notifications/templates/_helpers.tpl b/charts/argocd-notifications/templates/_helpers.tpl index 7540cf20..18235d26 100644 --- a/charts/argocd-notifications/templates/_helpers.tpl +++ b/charts/argocd-notifications/templates/_helpers.tpl @@ -87,7 +87,7 @@ Create the name of the bot service account to use */}} {{- define "argocd-notifications.bots.slack.serviceAccountName" -}} {{- if .Values.bots.slack.serviceAccount.create -}} - {{ default (include "argocd-notifications.fullname" .) .Values.bots.slack.serviceAccount.name }} + {{ default (printf "%s-bot" (include "argocd-notifications.fullname" .)) .Values.bots.slack.serviceAccount.name }} {{- else -}} {{ default "default" .Values.bots.slack.serviceAccount.name }} {{- end -}} diff --git a/charts/argocd-notifications/templates/bots/slack/deployment.yaml b/charts/argocd-notifications/templates/bots/slack/deployment.yaml index c53efb74..284d3c10 100644 --- a/charts/argocd-notifications/templates/bots/slack/deployment.yaml +++ b/charts/argocd-notifications/templates/bots/slack/deployment.yaml @@ -20,7 +20,7 @@ spec: imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} - serviceAccountName: {{ include "argocd-notifications.serviceAccountName" . }}-bot + serviceAccountName: {{ include "argocd-notifications.bots.slack.serviceAccountName" . }} containers: - name: {{ include "argocd-notifications.name" . }}-bot image: "{{ .Values.bots.slack.image.repository }}:{{ .Values.bots.slack.image.tag }}" diff --git a/charts/argocd-notifications/templates/bots/slack/role.yaml b/charts/argocd-notifications/templates/bots/slack/role.yaml index 5127fcac..b509f6d4 100644 --- a/charts/argocd-notifications/templates/bots/slack/role.yaml +++ b/charts/argocd-notifications/templates/bots/slack/role.yaml @@ -15,4 +15,13 @@ rules: - watch - update - patch +- apiGroups: + - "" + resources: + - secrets + - configmaps + verbs: + - get + - list + - watch {{ end }} diff --git a/charts/argocd-notifications/templates/bots/slack/serviceaccount.yaml b/charts/argocd-notifications/templates/bots/slack/serviceaccount.yaml index ce28ad58..badee60f 100644 --- a/charts/argocd-notifications/templates/bots/slack/serviceaccount.yaml +++ b/charts/argocd-notifications/templates/bots/slack/serviceaccount.yaml @@ -1,4 +1,4 @@ -{{ if and .Values.bots.slack.enabled .Values.secret.create }} +{{- if .Values.bots.slack.serviceAccount.create }} apiVersion: v1 kind: ServiceAccount metadata: diff --git a/charts/argocd-notifications/templates/serviceaccount.yaml b/charts/argocd-notifications/templates/serviceaccount.yaml index 5181c5a4..591d13bd 100644 --- a/charts/argocd-notifications/templates/serviceaccount.yaml +++ b/charts/argocd-notifications/templates/serviceaccount.yaml @@ -1,6 +1,8 @@ +{{- if .Values.serviceAccount.create }} apiVersion: v1 kind: ServiceAccount metadata: name: {{ include "argocd-notifications.serviceAccountName" . }} labels: {{- include "argocd-notifications.labels" . | nindent 4 }} +{{- end }} From 8c96f764518e8ff7f80f14da33f7a2f52b7a1b14 Mon Sep 17 00:00:00 2001 From: Domenico Commisso <16167691+dcommisso@users.noreply.github.com> Date: Mon, 6 Jul 2020 14:08:48 +0200 Subject: [PATCH 4/6] fix: add email notifier to argocd-notifier (#395) * Add email notifier configuration to argocd-notifications chart * Bump version in chart * Quote strings in argocd-notifications email notifier Co-authored-by: Domenico Commisso --- charts/argocd-notifications/Chart.yaml | 2 +- .../argocd-notifications/templates/secret.yaml | 9 +++++++++ charts/argocd-notifications/values.yaml | 18 ++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/charts/argocd-notifications/Chart.yaml b/charts/argocd-notifications/Chart.yaml index 1696630c..64d77c9a 100644 --- a/charts/argocd-notifications/Chart.yaml +++ b/charts/argocd-notifications/Chart.yaml @@ -3,7 +3,7 @@ appVersion: 0.7.0 description: A Helm chart for ArgoCD notifications, an add-on to ArgoCD. name: argocd-notifications type: application -version: 1.0.6 +version: 1.0.7 home: https://github.com/argoproj/argo-helm icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png keywords: diff --git a/charts/argocd-notifications/templates/secret.yaml b/charts/argocd-notifications/templates/secret.yaml index 359fcc7f..74c76992 100644 --- a/charts/argocd-notifications/templates/secret.yaml +++ b/charts/argocd-notifications/templates/secret.yaml @@ -27,4 +27,13 @@ stringData: {{- $v | toYaml | nindent 8 }} {{- end }} {{- end }} +{{- if .Values.secret.notifiers.email.enabled }} + email: + host: {{ .Values.secret.notifiers.email.host | quote }} + port: {{ .Values.secret.notifiers.email.port }} + insecure_skip_verify: {{ .Values.secret.notifiers.email.insecure_skip_verify }} + username: {{ .Values.secret.notifiers.email.username | quote }} + password: {{ .Values.secret.notifiers.email.password | quote }} + from: {{ .Values.secret.notifiers.email.from | quote }} +{{- end }} {{ end }} diff --git a/charts/argocd-notifications/values.yaml b/charts/argocd-notifications/values.yaml index d7769bf7..fe732362 100644 --- a/charts/argocd-notifications/values.yaml +++ b/charts/argocd-notifications/values.yaml @@ -69,6 +69,24 @@ secret: # username: username # password: mypassword + email: + # For more information: https://argoproj-labs.github.io/argocd-notifications/services/overview/ + + # Specifies whether email notifier should be configured + enabled: false + # SMTP endpoint + host: + # SMTP port + port: + # enable/disable check on TLS certificate + insecure_skip_verify: + # SMTP username + username: + # SMTP password + password: + # email address in from field + from: + resources: {} # limits: # cpu: 100m From 2b9193ac690b8503454baeb6db1e3ac8d0f48b64 Mon Sep 17 00:00:00 2001 From: Michael Odell Date: Thu, 9 Jul 2020 11:20:47 -0600 Subject: [PATCH 5/6] feat: argo-rollouts resources in helm values (#385) Co-authored-by: Scott Cabrinha --- charts/argo-rollouts/Chart.yaml | 2 +- .../templates/argo-rollouts-deployment.yaml | 2 ++ charts/argo-rollouts/values.yaml | 9 +++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/charts/argo-rollouts/Chart.yaml b/charts/argo-rollouts/Chart.yaml index 489918f1..94fa7062 100644 --- a/charts/argo-rollouts/Chart.yaml +++ b/charts/argo-rollouts/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v1 appVersion: "0.8.0" description: A Helm chart for Argo Rollouts name: argo-rollouts -version: 0.3.0 +version: 0.3.1 icon: https://raw.githubusercontent.com/argoproj/argo/master/argo.png home: https://github.com/argoproj/argo-helm maintainers: diff --git a/charts/argo-rollouts/templates/argo-rollouts-deployment.yaml b/charts/argo-rollouts/templates/argo-rollouts-deployment.yaml index 1fb1a2d2..f1c23a50 100644 --- a/charts/argo-rollouts/templates/argo-rollouts-deployment.yaml +++ b/charts/argo-rollouts/templates/argo-rollouts-deployment.yaml @@ -38,6 +38,8 @@ spec: volumeMounts: - name: tmp mountPath: /tmp + resources: +{{- toYaml .Values.controller.resources | nindent 10 }} volumes: - name: tmp emptyDir: {} diff --git a/charts/argo-rollouts/values.yaml b/charts/argo-rollouts/values.yaml index 18b7dff4..01bb547a 100644 --- a/charts/argo-rollouts/values.yaml +++ b/charts/argo-rollouts/values.yaml @@ -10,6 +10,15 @@ controller: tag: v0.8.0 pullPolicy: IfNotPresent + resources: {} + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 50m + # memory: 64Mi + + serviceAccount: name: argo-rollouts From f6266c9e2ad35d9f1c3d6e72de2527508e9aa8a8 Mon Sep 17 00:00:00 2001 From: Ashwin Chandrasekar <42815627+achandras@users.noreply.github.com> Date: Sat, 11 Jul 2020 13:00:29 -0400 Subject: [PATCH 6/6] fix: add priorityClassName to argo-cd deployments pod specs (#377) * add priorityClassName to argo-cd deployments pod specs Signed-off-by: Ashwin Chandrasekar * Fix priorityClassName templating in redis deployment Co-authored-by: Spencer Gilbert --- charts/argo-cd/Chart.yaml | 2 +- .../templates/argocd-application-controller/deployment.yaml | 3 +++ charts/argo-cd/templates/argocd-repo-server/deployment.yaml | 3 +++ charts/argo-cd/templates/argocd-server/deployment.yaml | 3 +++ charts/argo-cd/templates/dex/deployment.yaml | 3 +++ charts/argo-cd/templates/redis/deployment.yaml | 3 +++ 6 files changed, 16 insertions(+), 1 deletion(-) diff --git a/charts/argo-cd/Chart.yaml b/charts/argo-cd/Chart.yaml index 71e62126..eeaaec25 100644 --- a/charts/argo-cd/Chart.yaml +++ b/charts/argo-cd/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v1 appVersion: "1.6.1" description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes. name: argo-cd -version: 2.5.0 +version: 2.5.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/templates/argocd-application-controller/deployment.yaml b/charts/argo-cd/templates/argocd-application-controller/deployment.yaml index 97119083..b1bcdeaa 100755 --- a/charts/argo-cd/templates/argocd-application-controller/deployment.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/deployment.yaml @@ -121,3 +121,6 @@ spec: volumes: {{- toYaml .Values.controller.volumes | nindent 8 }} {{- end }} +{{- if .Values.controller.priorityClassName }} + priorityClassName: {{ .Values.controller.priorityClassName }} +{{- end }} diff --git a/charts/argo-cd/templates/argocd-repo-server/deployment.yaml b/charts/argo-cd/templates/argocd-repo-server/deployment.yaml index 9268cc65..8aed308e 100755 --- a/charts/argo-cd/templates/argocd-repo-server/deployment.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/deployment.yaml @@ -152,3 +152,6 @@ spec: initContainers: {{- toYaml .Values.repoServer.initContainers | nindent 6 }} {{- end }} +{{- if .Values.repoServer.priorityClassName }} + priorityClassName: {{ .Values.repoServer.priorityClassName }} +{{- end }} diff --git a/charts/argo-cd/templates/argocd-server/deployment.yaml b/charts/argo-cd/templates/argocd-server/deployment.yaml index d73e3df4..ca7c9ba4 100755 --- a/charts/argo-cd/templates/argocd-server/deployment.yaml +++ b/charts/argo-cd/templates/argocd-server/deployment.yaml @@ -151,3 +151,6 @@ spec: name: argocd-tls-certs-cm name: tls-certs {{- end }} +{{- if .Values.server.priorityClassName }} + priorityClassName: {{ .Values.server.priorityClassName }} +{{- end }} diff --git a/charts/argo-cd/templates/dex/deployment.yaml b/charts/argo-cd/templates/dex/deployment.yaml index d2fde3e3..5bae8b18 100755 --- a/charts/argo-cd/templates/dex/deployment.yaml +++ b/charts/argo-cd/templates/dex/deployment.yaml @@ -103,4 +103,7 @@ spec: volumes: {{- toYaml .Values.dex.volumes | nindent 8}} {{- end }} +{{- if .Values.dex.priorityClassName }} + priorityClassName: {{ .Values.dex.priorityClassName }} +{{- end }} {{- end }} diff --git a/charts/argo-cd/templates/redis/deployment.yaml b/charts/argo-cd/templates/redis/deployment.yaml index 7531f6d2..e5c673de 100755 --- a/charts/argo-cd/templates/redis/deployment.yaml +++ b/charts/argo-cd/templates/redis/deployment.yaml @@ -85,4 +85,7 @@ spec: volumes: {{- toYaml .Values.redis.volumes | nindent 8}} {{- end }} +{{- if .Values.redis.priorityClassName }} + priorityClassName: {{ .Values.redis.priorityClassName }} +{{- end }} {{- end }}