Skip to content

Commit 66a552b

Browse files
authored
fix: add retries to argo-event Sensors (#593)
* added triggerPolicy value option for sensors * added `atLeastOnce` field + template * fix(eventbus): set default event bus name based on type
1 parent 2466b14 commit 66a552b

File tree

13 files changed

+159
-12
lines changed

13 files changed

+159
-12
lines changed

charts/gitops-runtime/templates/_components/event-reporters/_helpers.tpl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,15 @@ assumes the name, condition and payload.dependencyName are identical
130130
src:
131131
dataKey: body
132132
dependencyName: {{ .name }}
133+
atLeastOnce: {{ .atLeastOnce }}
133134
{{- if .retryStrategy }}
134135
retryStrategy:
135136
{{- .retryStrategy | toYaml | nindent 4 }}
136137
{{- end }}
138+
{{- if .policy }}
139+
policy:
140+
{{- .policy | toYaml | nindent 4 }}
141+
{{- end }}
137142
{{- end -}}
138143

139144
{{/* Logging trigger for the sensor - gets sensor.logging dict */}}

charts/gitops-runtime/templates/_components/event-reporters/rollout-reporter/_event-source.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
{{- include "event-reporters.rollout-reporter.labels" . | nindent 4}}
88
spec:
99
replicas: {{ .Values.rollout.eventSource.replicas }}
10-
eventBusName: {{ default "codefresh-eventbus" .Values.global.runtime.eventBus.name }}
10+
eventBusName: {{ include "codefresh-gitops-runtime.eventbus.name" .Values.global.runtime.eventBus }}
1111
resource:
1212
analysisruns:
1313
eventTypes:

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ spec:
1717
- name: analysisruns
1818
eventSourceName: rollout-reporter
1919
eventName: analysisruns
20-
eventBusName: {{ default "codefresh-eventbus" .Values.global.runtime.eventBus.name }}
20+
eventBusName: {{ include "codefresh-gitops-runtime.eventbus.name" .Values.global.runtime.eventBus }}
2121
template:
2222
serviceAccountName: {{ include "event-reporters.rollout-reporter.serviceAccountName" .}}
2323
container:
@@ -40,8 +40,8 @@ spec:
4040
{{- . | toYaml | nindent 6 }}
4141
{{- end }}
4242
triggers:
43-
{{- include "event-reporters.http.trigger" (dict "name" "rollouts" "Values" .Values "payloadDest" "data.object" "retryStrategy" .Values.rollout.sensor.retryStrategy) | nindent 4 }}
44-
{{- include "event-reporters.http.trigger" (dict "name" "replicasets" "Values" .Values "payloadDest" "data.object" "retryStrategy" .Values.rollout.sensor.retryStrategy) | nindent 4 }}
45-
{{- include "event-reporters.http.trigger" (dict "name" "analysisruns" "Values" .Values "payloadDest" "data.object" "retryStrategy" .Values.rollout.sensor.retryStrategy) | nindent 4 }}
43+
{{- include "event-reporters.http.trigger" (dict "name" "rollouts" "Values" .Values "payloadDest" "data.object" "retryStrategy" .Values.rollout.sensor.retryStrategy "policy" .Values.rollout.sensor.policy "atLeastOnce" .Values.rollout.sensor.atLeastOnce) | nindent 4 }}
44+
{{- include "event-reporters.http.trigger" (dict "name" "replicasets" "Values" .Values "payloadDest" "data.object" "retryStrategy" .Values.rollout.sensor.retryStrategy "policy" .Values.rollout.sensor.policy "atLeastOnce" .Values.rollout.sensor.atLeastOnce) | nindent 4 }}
45+
{{- include "event-reporters.http.trigger" (dict "name" "analysisruns" "Values" .Values "payloadDest" "data.object" "retryStrategy" .Values.rollout.sensor.retryStrategy "policy" .Values.rollout.sensor.policy "atLeastOnce" .Values.rollout.sensor.atLeastOnce) | nindent 4 }}
4646
{{- include "event-reporters.log.trigger" (.Values.rollout.sensor.logging) | nindent 4 }}
4747
{{- end }}

charts/gitops-runtime/templates/_components/event-reporters/workflow-reporter/_event-source.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
{{- include "event-reporters.workflow-reporter.labels" . | nindent 4 }}
88
spec:
99
replicas: {{ .Values.workflow.eventSource.replicas }}
10-
eventBusName: {{ default "codefresh-eventbus" .Values.global.runtime.eventBus.name }}
10+
eventBusName: {{ include "codefresh-gitops-runtime.eventbus.name" .Values.global.runtime.eventBus }}
1111
resource:
1212
workflows:
1313
eventTypes:

charts/gitops-runtime/templates/_components/event-reporters/workflow-reporter/_sensor.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ spec:
1111
- eventName: workflows
1212
eventSourceName: workflow-reporter
1313
name: workflows
14-
eventBusName: {{ default "codefresh-eventbus" .Values.global.runtime.eventBus.name }}
14+
eventBusName: {{ include "codefresh-gitops-runtime.eventbus.name" .Values.global.runtime.eventBus }}
1515
template:
1616
serviceAccountName: {{ include "event-reporters.workflow-reporter.serviceAccountName" .}}
1717
container:
@@ -34,6 +34,6 @@ spec:
3434
{{- . | toYaml | nindent 6 }}
3535
{{- end }}
3636
triggers:
37-
{{- include "event-reporters.http.trigger" (dict "name" "workflows" "Values" .Values "payloadDest" "data.object" "retryStrategy" .Values.workflow.sensor.retryStrategy) | nindent 4 }}
37+
{{- include "event-reporters.http.trigger" (dict "name" "workflows" "Values" .Values "payloadDest" "data.object" "retryStrategy" .Values.workflow.sensor.retryStrategy "policy" .Values.workflow.sensor.policy "atLeastOnce" .Values.workflow.sensor.atLeastOnce) | nindent 4 }}
3838
{{- include "event-reporters.log.trigger" (.Values.workflow.sensor.logging) | nindent 4 }}
3939
{{- end }}

charts/gitops-runtime/templates/_helpers.tpl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,3 +522,17 @@ HTTPS_PROXY: {{ .Values.global.httpsProxy }}
522522
NO_PROXY: {{ .Values.global.noProxy }}
523523
{{- end }}
524524
{{- end -}}
525+
526+
{{- define "codefresh-gitops-runtime.eventbus.name" }}
527+
{{- $eventBusName := "" }}
528+
{{- $eventBusType := .type }}
529+
{{- if eq $eventBusType "nats" }}
530+
{{- $eventBusName = default "codefresh-eventbus" .name }}
531+
{{- else if eq $eventBusType "jetstream" }}
532+
{{- $eventBusName = default "codefresh-eventbus-jetstream" .name }}
533+
{{- else }}
534+
{{- fail (printf "ERROR: EventBus type %s is inavlid, must be nats|jetstream" $eventBusType ) }}
535+
{{- end }}
536+
537+
{{- printf "%s" $eventBusName }}
538+
{{- end }}

charts/gitops-runtime/templates/eventbus/codefresh-eventbus.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{{- $eventBusName := default "codefresh-eventbus" .Values.global.runtime.eventBus.name }}
1+
{{- $eventBusName := (include "codefresh-gitops-runtime.eventbus.name" .Values.global.runtime.eventBus) }}
22
{{- $eventBusSpec := .Values.global.runtime.eventBus }}
33
{{- $eventBusType := .Values.global.runtime.eventBus.type }}
44
{{/* Remove name from eventbus spec */}}

charts/gitops-runtime/templates/eventbus/pdb.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{{- $eventBusName := default "codefresh-eventbus" .Values.global.runtime.eventBus.name }}
1+
{{- $eventBusName := (include "codefresh-gitops-runtime.eventbus.name" .Values.global.runtime.eventBus) }}
22
{{- if .Values.global.runtime.eventBus.pdb.enabled }}
33
apiVersion: policy/v1
44
kind: PodDisruptionBudget

charts/gitops-runtime/tests/event-reporters-sensors_test.yaml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,3 +245,67 @@ tests:
245245
factor: 1.2
246246
jitter: 3
247247

248+
- it: HTTP trigger contains policy if set - workflow reporter
249+
template: 'event-reporters/workflow-reporter/sensor.yaml'
250+
values:
251+
- './values/mandatory-values.yaml'
252+
set:
253+
event-reporters.workflow.sensor:
254+
policy:
255+
status:
256+
allow:
257+
- 200
258+
asserts:
259+
- equal:
260+
path: spec.triggers[0].policy
261+
value:
262+
status:
263+
allow:
264+
- 200
265+
266+
- it: HTTP trigger contains atLeastOnce if unset - rollout reporter
267+
template: 'event-reporters/rollout-reporter/sensor.yaml'
268+
values:
269+
- './values/mandatory-values.yaml'
270+
set:
271+
event-reporters.rollout.sensor:
272+
atLeastOnce: false
273+
asserts:
274+
- equal:
275+
path: spec.triggers[0].atLeastOnce
276+
value: false
277+
278+
279+
- it: HTTP trigger contains atLeastOnce if unset - workflow reporter
280+
template: 'event-reporters/workflow-reporter/sensor.yaml'
281+
values:
282+
- './values/mandatory-values.yaml'
283+
set:
284+
event-reporters.workflow.sensor:
285+
atLeastOnce: false
286+
asserts:
287+
- equal:
288+
path: spec.triggers[0].atLeastOnce
289+
value: false
290+
291+
- it: uses the correct eventBusName if type is jetstream - rollout reporter
292+
template: 'event-reporters/rollout-reporter/sensor.yaml'
293+
values:
294+
- './values/mandatory-values.yaml'
295+
set:
296+
global.runtime.eventBus.type: jetstream
297+
asserts:
298+
- equal:
299+
path: spec.eventBusName
300+
value: codefresh-eventbus-jetstream
301+
302+
- it: uses the correct eventBusName if type is jetstream - workflow reporter
303+
template: 'event-reporters/workflow-reporter/sensor.yaml'
304+
values:
305+
- './values/mandatory-values.yaml'
306+
set:
307+
global.runtime.eventBus.type: jetstream
308+
asserts:
309+
- equal:
310+
path: spec.eventBusName
311+
value: codefresh-eventbus-jetstream

charts/gitops-runtime/tests/eventbus_test.yaml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ tests:
1414
path: spec.nats
1515
- notExists:
1616
path: spec.jetstream
17+
- equal:
18+
path: metadata.name
19+
value: codefresh-eventbus
1720

1821
- it: Should create an EventBus with the correct type (jetstream)
1922
template: eventbus/codefresh-eventbus.yaml
@@ -26,3 +29,40 @@ tests:
2629
path: spec.jetstream
2730
- notExists:
2831
path: spec.nats
32+
33+
- it: Should create an EventBus with the correct default name (nats)
34+
template: eventbus/codefresh-eventbus.yaml
35+
values:
36+
- ./values/mandatory-values.yaml
37+
set:
38+
global.runtime.eventBus.type: nats
39+
asserts:
40+
- equal:
41+
path: metadata.name
42+
value: codefresh-eventbus
43+
44+
- it: Should create an EventBus with the correct override name (nats)
45+
template: eventbus/codefresh-eventbus.yaml
46+
values:
47+
- ./values/mandatory-values.yaml
48+
set:
49+
global.runtime.eventBus:
50+
name: manual-override
51+
type: nats
52+
asserts:
53+
- equal:
54+
path: metadata.name
55+
value: manual-override
56+
57+
- it: Should create an EventBus with the correct override name (jetstream)
58+
template: eventbus/codefresh-eventbus.yaml
59+
values:
60+
- ./values/mandatory-values.yaml
61+
set:
62+
global.runtime.eventBus:
63+
name: manual-override
64+
type: jetstream
65+
asserts:
66+
- equal:
67+
path: metadata.name
68+
value: manual-override

0 commit comments

Comments
 (0)