Skip to content

Commit 910bcb4

Browse files
feat: rollout-reporter with external argo rollouts (#441)
1 parent 1cea4ca commit 910bcb4

File tree

8 files changed

+119
-19
lines changed

8 files changed

+119
-19
lines changed

charts/gitops-runtime/templates/_helpers.tpl

+17-13
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,10 @@ Determine argocd argocd repo server port
118118

119119

120120
{{/*
121-
Determine argocd repoServer url
121+
Determine argocd repoServer url
122122
*/}}
123123
{{- define "codefresh-gitops-runtime.argocd.reposerver.url" -}}
124-
{{- $argoCDValues := (get .Values "argo-cd") }}
124+
{{- $argoCDValues := (get .Values "argo-cd") }}
125125
{{- if and (index .Values "argo-cd" "enabled") }}
126126
{{- $serviceName := include "codefresh-gitops-runtime.argocd.reposerver.servicename" . }}
127127
{{- $port := include "codefresh-gitops-runtime.argocd.reposerver.serviceport" . }}
@@ -149,8 +149,12 @@ Determine argocd servicename. Must be called with chart root context
149149
Determine rollouts name
150150
*/}}
151151
{{- define "codefresh-gitops-runtime.argo-rollouts.name" -}}
152-
{{/* For now use template from rollouts chart until better approach */}}
153-
{{- template "argo-rollouts.fullname" (dict "Values" (get .Values "argo-rollouts")) }}
152+
{{- if and (index .Values "argo-rollouts" "enabled") }}
153+
{{/* For now use template from rollouts chart until better approach */}}
154+
{{- template "argo-rollouts.fullname" (dict "Values" (get .Values "argo-rollouts")) }}
155+
{{- else }}
156+
{{- printf "argo-rollouts" }}
157+
{{- end }}
154158
{{- end }}
155159

156160

@@ -200,7 +204,7 @@ Determine argocd server url. Must be called with chart root context
200204
{{- $port := (required "ArgoCD is not enabled and .Values.global.external-argo-cd.server.port is not port" $argoCDSrv.port) | toString }}
201205
{{- $rootpath := (index .Values "global" "external-argo-cd" "server" "rootpath") }}
202206
{{- if and (eq $port "80") }}
203-
{{- printf "%s://%s%s" $protocol $svc $rootpath }}
207+
{{- printf "%s://%s%s" $protocol $svc $rootpath }}
204208
{{- else }}
205209
{{- printf "%s://%s:%s%s" $protocol $svc $port $rootpath }}
206210
{{- end }}
@@ -213,7 +217,7 @@ Determine argocd server url. Must be called with chart root context
213217
Determine argocd server url witout the protocol. Must be called with chart root context
214218
*/}}
215219
{{- define "codefresh-gitops-runtime.argocd.server.no-protocol-url" -}}
216-
{{- $argoCDValues := (get .Values "argo-cd") }}
220+
{{- $argoCDValues := (get .Values "argo-cd") }}
217221
{{- if and (index .Values "argo-cd" "enabled") }}
218222
{{- $serverName := include "codefresh-gitops-runtime.argocd.server.servicename" . }}
219223
{{- $port := include "codefresh-gitops-runtime.argocd.server.serviceport" . }}
@@ -231,7 +235,7 @@ Determine argocd server url witout the protocol. Must be called with chart root
231235
{{- end}}
232236

233237
{{/*
234-
Determine argocd server password.
238+
Determine argocd server password.
235239
*/}}
236240
{{- define "codefresh-gitops-runtime.argocd.server.password" }}
237241
{{- if and (index .Values "argo-cd" "enabled") }}
@@ -265,7 +269,7 @@ valueFrom:
265269

266270

267271
{{/*
268-
Determine argocd token password.
272+
Determine argocd token password.
269273
*/}}
270274
{{- define "codefresh-gitops-runtime.argocd.server.token" }}
271275
{{- if and (eq (index .Values "global" "external-argo-cd" "auth" "type") "token") (index .Values "global" "external-argo-cd" "auth" "tokenSecretKeyRef" "name") (index .Values "global" "external-argo-cd" "auth" "tokenSecretKeyRef" "key")}}
@@ -289,7 +293,7 @@ valueFrom:
289293
{{- end }}
290294

291295
{{/*
292-
Determine argocd server password.
296+
Determine argocd server password.
293297
*/}}
294298
{{- define "codefresh-gitops-runtime.argocd.server.username-env-var" }}
295299
{{- if and (index .Values "argo-cd" "enabled") }}
@@ -310,7 +314,7 @@ valueFrom:
310314
{{- end }}
311315

312316
{{/*
313-
Determine argocd server password.
317+
Determine argocd server password.
314318
*/}}
315319
{{- define "codefresh-gitops-runtime.argocd.server.username-cm" }}
316320
{{- if and (index .Values "argo-cd" "enabled") }}
@@ -323,10 +327,10 @@ Determine argocd server password.
323327
{{- end }}
324328

325329
{{/*
326-
Determine argocd redis url
330+
Determine argocd redis url
327331
*/}}
328332
{{- define "codefresh-gitops-runtime.argocd.redis.url" -}}
329-
{{- $argoCDValues := (get .Values "argo-cd") }}
333+
{{- $argoCDValues := (get .Values "argo-cd") }}
330334
{{- if and (index .Values "argo-cd" "enabled") }}
331335
{{- $serviceName := include "codefresh-gitops-runtime.argocd.redis.servicename" . }}
332336
{{- $port := include "codefresh-gitops-runtime.argocd.redis.serviceport" . }}
@@ -458,7 +462,7 @@ Output comma separated list of installed runtime components
458462
{{- end }}
459463
{{- if not (index .Values "argo-cd" "enabled") }}
460464
{{- $eventReporter := dict "name" "event-reporter" "version" (get .Subcharts "cf-argocd-extras").Chart.AppVersion }}
461-
{{- $comptList = append $comptList $eventReporter }}
465+
{{- $comptList = append $comptList $eventReporter }}
462466
{{- end }}
463467
{{- $comptList | toYaml }}
464468
{{- end }}

charts/gitops-runtime/templates/event-reporters/rollout-reporter/clusterrolebinding.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{{/* Mapping of argo rollouts clusterrole if such is created (see https://github.com/codefresh-io/argo-helm/blob/argo-rollouts/charts/argo-rollouts/templates/controller/clusterrolebinding.yaml)
22
to the reporters ServiceAccount
33
*/}}
4-
{{- if index (get .Values "argo-rollouts") "enabled" }}
5-
{{- if and (index (get .Values "argo-rollouts") "clusterInstall") (index (get .Values "argo-rollouts") "controller" "createClusterRole") }}
4+
{{- if or (index (get .Values "argo-rollouts") "enabled") (and (not (index (get .Values "argo-rollouts") "enabled")) (index .Values.global "external-argo-rollouts" "rollout-reporter" "enabled" )) }}
5+
{{- if or (and (index (get .Values "argo-rollouts") "clusterInstall") (index (get .Values "argo-rollouts") "controller" "createClusterRole")) (and (not (index (get .Values "argo-rollouts") "enabled")) (index .Values.global "external-argo-rollouts" "rollout-reporter" "enabled" ))}}
66
{{- $eventReporterContext := deepCopy . }}
77
{{- $_ := set $eventReporterContext "Values" (deepCopy (get .Values "event-reporters")) }}
88
{{- $_ := set $eventReporterContext.Values "global" (deepCopy (get .Values "global")) }}

charts/gitops-runtime/templates/event-reporters/rollout-reporter/eventsource.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{{- if index (get .Values "argo-rollouts") "enabled" }}
1+
{{- if or (index (get .Values "argo-rollouts") "enabled") (and (not (index (get .Values "argo-rollouts") "enabled")) (index .Values.global "external-argo-rollouts" "rollout-reporter" "enabled" )) }}
22
{{- $eventReporterContext := deepCopy . }}
33
{{- $_ := set $eventReporterContext "Values" (deepCopy (get .Values "event-reporters")) }}
44
{{- $_ := set $eventReporterContext.Values "global" (deepCopy (get .Values "global")) }}

charts/gitops-runtime/templates/event-reporters/rollout-reporter/rbac.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{{- if index (get .Values "argo-rollouts") "enabled" }}
1+
{{- if or (index (get .Values "argo-rollouts") "enabled") (and (not (index (get .Values "argo-rollouts") "enabled")) (index .Values.global "external-argo-rollouts" "rollout-reporter" "enabled" )) }}
22
{{- $eventReporterContext := deepCopy . }}
33
{{- $_ := set $eventReporterContext "Values" (deepCopy (get .Values "event-reporters")) }}
44
{{- $_ := set $eventReporterContext.Values "global" (deepCopy (get .Values "global")) }}

charts/gitops-runtime/templates/event-reporters/rollout-reporter/sensor.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{{- if index (get .Values "argo-rollouts") "enabled" }}
1+
{{- if or (index (get .Values "argo-rollouts") "enabled") (and (not (index (get .Values "argo-rollouts") "enabled")) (index .Values.global "external-argo-rollouts" "rollout-reporter" "enabled" )) }}
22
{{- $eventReporterContext := deepCopy . }}
33
{{- $_ := set $eventReporterContext "Values" (deepCopy (get .Values "event-reporters")) }}
44
{{- $_ := set $eventReporterContext.Values "global" (deepCopy (get .Values "global")) }}

charts/gitops-runtime/templates/event-reporters/rollout-reporter/serviceaccount.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{{- if index (get .Values "argo-rollouts") "enabled" }}
1+
{{- if or (index (get .Values "argo-rollouts") "enabled") (and (not (index (get .Values "argo-rollouts") "enabled")) (index .Values.global "external-argo-rollouts" "rollout-reporter" "enabled" )) }}
22
{{- $eventReporterContext := deepCopy . }}
33
{{- $_ := set $eventReporterContext "Values" (deepCopy (get .Values "event-reporters")) }}
44
{{- $_ := set $eventReporterContext.Values "global" (deepCopy (get .Values "global")) }}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
2+
suite: Test External Argo Rolouts with GitOps Runtime
3+
templates:
4+
- event-reporters/rollout-reporter/*
5+
tests:
6+
- it: Should not deploy rollout-reporter if argo-rollouts disabled
7+
set:
8+
argo-rollouts:
9+
enabled: false
10+
asserts:
11+
- containsDocument:
12+
apiVersion: v1
13+
kind: ServiceAccount
14+
name: rollout-reporter
15+
template: event-reporters/rollout-reporter/serviceaccount.yaml
16+
not: true
17+
- containsDocument:
18+
apiVersion: argoproj.io/v1alpha1
19+
kind: Sensor
20+
name: rollout-reporter
21+
template: event-reporters/rollout-reporter/sensor.yaml
22+
not: true
23+
- containsDocument:
24+
apiVersion: argoproj.io/v1alpha1
25+
kind: EventSource
26+
name: rollout-reporter
27+
template: event-reporters/rollout-reporter/eventsource.yaml
28+
not: true
29+
- containsDocument:
30+
apiVersion: rbac.authorization.k8s.io/v1
31+
kind: Role
32+
name: rollout-reporter-sa
33+
template: event-reporters/rollout-reporter/rbac.yaml
34+
not: true
35+
- containsDocument:
36+
apiVersion: rbac.authorization.k8s.io/v1
37+
kind: RoleBinding
38+
name: rollout-reporter-sa
39+
template: event-reporters/rollout-reporter/rbac.yaml
40+
not: true
41+
- containsDocument:
42+
apiVersion: rbac.authorization.k8s.io/v1
43+
kind: ClusterRoleBinding
44+
name: codefresh-rollouts-reporter
45+
template: event-reporters/rollout-reporter/clusterrolebinding.yaml
46+
not: true
47+
48+
- it: Should deploy rollout-reporter if argo-rollouts disabled AND .global.external-argo-rollouts.rollout-reporter.enabled is true
49+
set:
50+
argo-rollouts:
51+
enabled: false
52+
global:
53+
external-argo-rollouts:
54+
rollout-reporter:
55+
enabled: true
56+
asserts:
57+
- containsDocument:
58+
apiVersion: v1
59+
kind: ServiceAccount
60+
name: rollout-reporter
61+
template: event-reporters/rollout-reporter/serviceaccount.yaml
62+
- containsDocument:
63+
apiVersion: argoproj.io/v1alpha1
64+
kind: Sensor
65+
name: rollout-reporter
66+
template: event-reporters/rollout-reporter/sensor.yaml
67+
- containsDocument:
68+
apiVersion: argoproj.io/v1alpha1
69+
kind: EventSource
70+
name: rollout-reporter
71+
template: event-reporters/rollout-reporter/eventsource.yaml
72+
- containsDocument:
73+
apiVersion: rbac.authorization.k8s.io/v1
74+
kind: Role
75+
name: rollout-reporter-sa
76+
template: event-reporters/rollout-reporter/rbac.yaml
77+
documentIndex: 0
78+
- containsDocument:
79+
apiVersion: rbac.authorization.k8s.io/v1
80+
kind: RoleBinding
81+
name: rollout-reporter-sa
82+
template: event-reporters/rollout-reporter/rbac.yaml
83+
documentIndex: 1
84+
- containsDocument:
85+
apiVersion: rbac.authorization.k8s.io/v1
86+
kind: ClusterRoleBinding
87+
name: codefresh-rollouts-reporter
88+
template: event-reporters/rollout-reporter/clusterrolebinding.yaml

charts/gitops-runtime/values.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,14 @@ global:
162162
# name: argocd-token
163163
# key: token
164164

165+
# -- Configuration for external Argo Rollouts
166+
external-argo-rollouts:
167+
# -- Rollout reporter settings
168+
rollout-reporter:
169+
# -- Enable or disable rollout reporter
170+
# Configuration is defined at .Values.event-reporters.rollout
171+
enabled: false
172+
165173
# -------------------------------------------------------------------------------------------------------------------------
166174
# Installer
167175
# -------------------------------------------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)