feat(argo-rollouts): Add notification secret and configmap (#1163)

* fixing the error on the argo rollouts controller needing the notifications configmap and rollout

Signed-off-by: Ian Muge <ian.muge@ardoq.com>

* bump chart version

Signed-off-by: Ian Muge <ian.muge@ardoq.com>

* updating changelog

Signed-off-by: Ian Muge <ian.muge@ardoq.com>

* fix structure to be simialr to argocd-notification as suggested

Signed-off-by: Ian Muge <ian.muge@ardoq.com>

* Bump Minor version as we are adding a new feature

Signed-off-by: Ian Muge <ian.muge@ardoq.com>

* Updated helm docs, all tests are green, locally

Signed-off-by: Ian Muge <ian.muge@ardoq.com>

* Apply changes from code review

Signed-off-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com>

Co-authored-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com>
pull/1172/head argo-rollouts-2.11.0
Ian Muge 2022-03-14 22:12:41 +01:00 committed by GitHub
parent dde043a055
commit c8f0471bd0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 70 additions and 3 deletions

View File

@ -2,7 +2,7 @@ apiVersion: v2
appVersion: "v1.1.1"
description: A Helm chart for Argo Rollouts
name: argo-rollouts
version: 2.10.0
version: 2.11.0
icon: https://argoproj.github.io/argo-rollouts/assets/logo.png
home: https://github.com/argoproj/argo-helm
maintainers:
@ -11,4 +11,4 @@ maintainers:
- name: jessesuen
annotations:
artifacthub.io/changes: |
- "[Added]: Ability to define dashboard service node port"
- "[Added]: Argo rollouts notification secret and configmap"

View File

@ -48,6 +48,11 @@ If dashboard is installed by `--set dashboard.enabled=true`, checkout the argo-r
| keepCRDs | bool | `true` | Keep CRD's on helm uninstall |
| kubeVersionOverride | string | `""` | Override the Kubernetes version, which is used to evaluate certain manifests |
| nameOverride | string | `nil` | String to partially override "argo-rollouts.fullname" template |
| notifications.notifiers | object | `{}` | Configures notification services |
| notifications.secret.create | bool | `false` | Whether to create notifications secret |
| notifications.secret.items | object | `{}` | Generic key:value pairs to be inserted into the notifications secret |
| notifications.templates | object | `{}` | Notification templates |
| notifications.triggers | object | `{}` | The trigger defines the condition when the notification should be sent |
### Controller
@ -148,4 +153,4 @@ Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/
[Node selector]: https://kubernetes.io/docs/user-guide/node-selection/
[probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
[Tolerations]: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
[values.yaml]: https://github.com/argoproj/argo-helm/blob/argo-rollouts-2.10.0/charts/argo-rollouts/values.yaml
[values.yaml]: https://github.com/argoproj/argo-helm/blob/argo-rollouts-2.11.0/charts/argo-rollouts/values.yaml

View File

@ -0,0 +1,17 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: argo-rollouts-notification-configmap
labels:
app.kubernetes.io/component: {{ .Values.controller.component }}
{{- include "argo-rollouts.labels" . | nindent 4 }}
data:
{{- with .Values.notifications.notifiers }}
{{- toYaml . | nindent 2 }}
{{- end }}
{{- with .Values.notifications.templates }}
{{- toYaml . | nindent 2 }}
{{- end }}
{{- with .Values.notifications.triggers }}
{{- toYaml . | nindent 2 }}
{{- end }}

View File

@ -0,0 +1,14 @@
{{ if .Values.notifications.secret.create }}
apiVersion: v1
kind: Secret
metadata:
name: argo-rollouts-notification-secret
labels:
app.kubernetes.io/component: {{ .Values.controller.component }}
{{- include "argo-rollouts.labels" . | nindent 4 }}
type: Opaque
stringData:
{{- with .Values.notifications.secret.items }}
{{- toYaml . | nindent 2 }}
{{- end }}
{{- end }}

View File

@ -237,3 +237,34 @@ dashboard:
# - secretName: argorollouts-example-tls
# hosts:
# - argorollouts.example.com
notifications:
secret:
# -- Whether to create notifications secret
create: false
# -- Generic key:value pairs to be inserted into the notifications secret
items: {}
# slack-token:
# -- Configures notification services
notifiers: {}
# service.slack: |
# token: $slack-token
# -- Notification templates
templates: {}
# template.my-purple-template: |
# message: |
# Rollout {{.rollout.metadata.name}} has purple image
# slack:
# attachments: |
# [{
# "title": "{{ .rollout.metadata.name}}",
# "color": "#800080"
# }]
# -- The trigger defines the condition when the notification should be sent
triggers: {}
# trigger.on-purple: |
# - send: [my-purple-template]
# when: rollout.spec.template.spec.containers[0].image == 'argoproj/rollouts-demo:purple'