Skip to content

Commit c60775d

Browse files
Event reporters sensors - logging and retries (#94)
* add logging and retries to event reporters sensors
1 parent e5e50ac commit c60775d

File tree

8 files changed

+481
-16
lines changed

8 files changed

+481
-16
lines changed

charts/gitops-runtime/Chart.yaml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,10 @@ maintainers:
1414
annotations:
1515
artifacthub.io/alternativeName: "codefresh-gitops-runtime"
1616
artifacthub.io/changes: |
17-
- kind: changed
18-
description: Update app-proxy
19-
- kind: changed
20-
description: Update codefresh-gitops-operator.
21-
links:
22-
- name: GitHub Release
23-
url: https://github.com/codefresh-io/codefresh-gitops-operator/releases/tag/v0.1.0-alpha.4
17+
- kind: added
18+
description: Added possibility to enable logging on event reporter sensors
19+
- kind: added
20+
description: Added retries on event reporters sensors
2421
dependencies:
2522
- name: argo-cd
2623
repository: https://codefresh-io.github.io/argo-helm

charts/gitops-runtime/README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,16 @@ sealed-secrets:
155155
| event-reporters.events.eventSource.resources | object | `{}` | |
156156
| event-reporters.events.eventSource.tolerations | list | `[]` | |
157157
| event-reporters.events.sensor.affinity | object | `{}` | |
158+
| event-reporters.events.sensor.env | object | `{}` | Environment variables for sensor pods - add DEBUG_LOG: "true" to add debug level logs |
159+
| event-reporters.events.sensor.logging | object | `{"enabled":false,"intervalSeconds":0}` | Set to true to enable logging. Set intervalSeconds to add logging interval to moderate log flow. |
158160
| event-reporters.events.sensor.nodeSelector | object | `{}` | |
159161
| event-reporters.events.sensor.replicas | int | `1` | |
160162
| event-reporters.events.sensor.resources | object | `{}` | |
163+
| event-reporters.events.sensor.retryStrategy | object | `{"duration":0,"factor":1,"jitter":1,"steps":3}` | Retry strategy for events sent to Codefresh |
164+
| event-reporters.events.sensor.retryStrategy.duration | int | `0` | The initial duration, use strings like "2s", "1m" |
165+
| event-reporters.events.sensor.retryStrategy.factor | float | `1` | Duration is multiplied by factor each retry, if factor is not zero and steps limit has not been reached. Should not be negative |
166+
| event-reporters.events.sensor.retryStrategy.jitter | int | `1` | The sleep between each retry is the duration plus an additional amount chosen uniformly at random from the interval between zero and `jitter * duration`. |
167+
| event-reporters.events.sensor.retryStrategy.steps | int | `3` | Number of retries |
161168
| event-reporters.events.sensor.tolerations | list | `[]` | |
162169
| event-reporters.events.serviceAccount.create | bool | `true` | |
163170
| event-reporters.rollout.eventSource.affinity | object | `{}` | |
@@ -166,9 +173,16 @@ sealed-secrets:
166173
| event-reporters.rollout.eventSource.resources | object | `{}` | |
167174
| event-reporters.rollout.eventSource.tolerations | list | `[]` | |
168175
| event-reporters.rollout.sensor.affinity | object | `{}` | |
176+
| event-reporters.rollout.sensor.env | object | `{}` | Environment variables for sensor pods - add DEBUG_LOG: "true" to add debug level logs |
177+
| event-reporters.rollout.sensor.logging | object | `{"enabled":false,"intervalSeconds":0}` | Set to true to enable logging. Set intervalSeconds to add logging interval to moderate log flow. |
169178
| event-reporters.rollout.sensor.nodeSelector | object | `{}` | |
170179
| event-reporters.rollout.sensor.replicas | int | `1` | |
171180
| event-reporters.rollout.sensor.resources | object | `{}` | |
181+
| event-reporters.rollout.sensor.retryStrategy | object | `{"duration":0,"factor":1,"jitter":1,"steps":3}` | Retry strategy for events sent to Codefresh |
182+
| event-reporters.rollout.sensor.retryStrategy.duration | int | `0` | The initial duration, use strings like "2s", "1m" |
183+
| event-reporters.rollout.sensor.retryStrategy.factor | float | `1` | Duration is multiplied by factor each retry, if factor is not zero and steps limit has not been reached. Should not be negative |
184+
| event-reporters.rollout.sensor.retryStrategy.jitter | int | `1` | The sleep between each retry is the duration plus an additional amount chosen uniformly at random from the interval between zero and `jitter * duration`. |
185+
| event-reporters.rollout.sensor.retryStrategy.steps | int | `3` | Number of retries |
172186
| event-reporters.rollout.sensor.tolerations | list | `[]` | |
173187
| event-reporters.rollout.serviceAccount.create | bool | `true` | |
174188
| event-reporters.workflow.eventSource.affinity | object | `{}` | |
@@ -177,9 +191,16 @@ sealed-secrets:
177191
| event-reporters.workflow.eventSource.resources | object | `{}` | |
178192
| event-reporters.workflow.eventSource.tolerations | list | `[]` | |
179193
| event-reporters.workflow.sensor.affinity | object | `{}` | |
194+
| event-reporters.workflow.sensor.env | object | `{}` | Environment variables for sensor pods - add DEBUG_LOG: "true" to add debug level logs |
195+
| event-reporters.workflow.sensor.logging | object | `{"enabled":false,"intervalSeconds":0}` | Set to true to enable logging. Set intervalSeconds to add logging interval to moderate log flow. |
180196
| event-reporters.workflow.sensor.nodeSelector | object | `{}` | |
181197
| event-reporters.workflow.sensor.replicas | int | `1` | |
182198
| event-reporters.workflow.sensor.resources | object | `{}` | |
199+
| event-reporters.workflow.sensor.retryStrategy | object | `{"duration":0,"factor":1,"jitter":1,"steps":3}` | Retry strategy for events sent to Codefresh |
200+
| event-reporters.workflow.sensor.retryStrategy.duration | int | `0` | The initial duration, use strings like "2s", "1m" |
201+
| event-reporters.workflow.sensor.retryStrategy.factor | float | `1` | Duration is multiplied by factor each retry, if factor is not zero and steps limit has not been reached. Should not be negative |
202+
| event-reporters.workflow.sensor.retryStrategy.jitter | int | `1` | The sleep between each retry is the duration plus an additional amount chosen uniformly at random from the interval between zero and `jitter * duration`. |
203+
| event-reporters.workflow.sensor.retryStrategy.steps | int | `3` | Number of retries |
183204
| event-reporters.workflow.sensor.tolerations | list | `[]` | |
184205
| event-reporters.workflow.serviceAccount.create | bool | `true` | |
185206
| gitops-operator.affinity | object | `{}` | |

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,4 +177,22 @@ assumes the name, condition and payload.dependencyName are identical
177177
src:
178178
dataKey: body
179179
dependencyName: {{ .name }}
180+
{{- if .retryStrategy }}
181+
retryStrategy:
182+
{{- .retryStrategy | toYaml | nindent 4 }}
183+
{{- end }}
180184
{{- end -}}
185+
186+
{{/* Logging trigger for the sensor - gets sensor.logging dict */}}
187+
{{- define "event-reporters.log.trigger" -}}
188+
{{- if .enabled }}
189+
- template:
190+
name: log-trigger
191+
{{- if gt (int .intervalSeconds) 0 }}
192+
log:
193+
intervalSeconds: {{ .intervalSeconds }}
194+
{{- else }}
195+
log: {}
196+
{{- end }}
197+
{{- end }}
198+
{{- end }}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ spec:
1515
template:
1616
serviceAccountName: {{ include "event-reporters.events-reporter.serviceAccountName" .}}
1717
container:
18+
{{- include "codefresh-gitops-runtime.components.common_helpers.container-templates.env-vars" .Values.events.sensor.env | nindent 6 }}
1819
resources:
1920
{{- with .Values.events.sensor.resources }}
2021
{{- . | toYaml | nindent 8 }}
@@ -32,5 +33,6 @@ spec:
3233
{{- . | toYaml | nindent 6 }}
3334
{{- end }}
3435
triggers:
35-
{{- include "event-reporters.http.trigger" (dict "name" "events" "Values" .Values "payloadDest" "data") | nindent 4 }}
36+
{{- include "event-reporters.http.trigger" (dict "name" "events" "Values" .Values "payloadDest" "data" "retryStrategy" .Values.events.sensor.retryStrategy) | nindent 4 }}
37+
{{- include "event-reporters.log.trigger" (.Values.events.sensor.logging) | nindent 4 }}
3638
{{- end }}

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

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,26 @@ spec:
2222
serviceAccountName: {{ include "event-reporters.rollout-reporter.serviceAccountName" .}}
2323
container:
2424
name: ""
25+
{{- include "codefresh-gitops-runtime.components.common_helpers.container-templates.env-vars" .Values.rollout.sensor.env | nindent 6 }}
2526
resources:
26-
{{- with .Values.rollout.eventSource.resources }}
27+
{{- with .Values.rollout.sensor.resources }}
2728
{{- . | toYaml | nindent 8 }}
2829
{{- end }}
2930
tolerations:
30-
{{- with .Values.rollout.eventSource.tolerations }}
31+
{{- with .Values.rollout.sensor.tolerations }}
3132
{{- . | toYaml | nindent 6 }}
3233
{{- end }}
3334
nodeSelector:
34-
{{- with .Values.rollout.eventSource.nodeSelector }}
35+
{{- with .Values.rollout.sensor.nodeSelector }}
3536
{{- . | toYaml | nindent 6 }}
3637
{{- end }}
3738
affinity:
38-
{{- with .Values.rollout.eventSource.affinity }}
39+
{{- with .Values.rollout.sensor.affinity }}
3940
{{- . | toYaml | nindent 6 }}
4041
{{- end }}
4142
triggers:
42-
{{- include "event-reporters.http.trigger" (dict "name" "rollouts" "Values" .Values "payloadDest" "data.object") | nindent 4 }}
43-
{{- include "event-reporters.http.trigger" (dict "name" "replicasets" "Values" .Values "payloadDest" "data.object") | nindent 4 }}
44-
{{- include "event-reporters.http.trigger" (dict "name" "analysisruns" "Values" .Values "payloadDest" "data.object") | nindent 4 }}
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 }}
46+
{{- include "event-reporters.log.trigger" (.Values.rollout.sensor.logging) | nindent 4 }}
4547
{{- end }}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ spec:
1616
serviceAccountName: {{ include "event-reporters.workflow-reporter.serviceAccountName" .}}
1717
container:
1818
name: ""
19+
{{- include "codefresh-gitops-runtime.components.common_helpers.container-templates.env-vars" .Values.workflow.sensor.env | nindent 6 }}
1920
resources:
2021
{{- with .Values.workflow.sensor.resources }}
2122
{{- . | toYaml | nindent 8 }}
@@ -33,5 +34,6 @@ spec:
3334
{{- . | toYaml | nindent 6 }}
3435
{{- end }}
3536
triggers:
36-
{{- include "event-reporters.http.trigger" (dict "name" "workflows" "Values" .Values "payloadDest" "data.object") | nindent 4 }}
37+
{{- include "event-reporters.http.trigger" (dict "name" "workflows" "Values" .Values "payloadDest" "data.object" "retryStrategy" .Values.workflow.sensor.retryStrategy) | nindent 4 }}
38+
{{- include "event-reporters.log.trigger" (.Values.workflow.sensor.logging) | nindent 4 }}
3739
{{- end }}

0 commit comments

Comments
 (0)