Skip to content

Commit 07a4dd9

Browse files
feat: add event-exporter (#385)
1 parent e5136c8 commit 07a4dd9

File tree

12 files changed

+293
-3
lines changed

12 files changed

+293
-3
lines changed

charts/cf-runtime/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: v2
22
description: A Helm chart for Codefresh Runner
33
name: cf-runtime
4-
version: 5.2.0
4+
version: 5.3.0
55
keywords:
66
- codefresh
77
- runner
@@ -15,7 +15,7 @@ maintainers:
1515
annotations:
1616
artifacthub.io/changes: |
1717
- kind: added
18-
description: Add serviceMonitor and podMonitor templates
18+
description: Add event-exporter templates
1919
dependencies:
2020
- name: cf-common
2121
repository: https://chartmuseum.codefresh.io/cf-common

charts/cf-runtime/README.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## Codefresh Runner
22

3-
![Version: 5.2.0](https://img.shields.io/badge/Version-5.2.0-informational?style=flat-square)
3+
![Version: 5.3.0](https://img.shields.io/badge/Version-5.3.0-informational?style=flat-square)
44

55
Helm chart for deploying [Codefresh Runner](https://codefresh.io/docs/docs/installation/codefresh-runner/) to Kubernetes.
66

@@ -727,6 +727,25 @@ Go to [https://<YOUR_ONPREM_DOMAIN_HERE>/admin/runtime-environments/system](http
727727
| appProxy.tolerations | list | `[]` | Set tolerations |
728728
| appProxy.updateStrategy | object | `{"type":"RollingUpdate"}` | Upgrade strategy |
729729
| dockerRegistry | string | `""` | |
730+
| event-exporter | object | See below | Event exporter parameters |
731+
| event-exporter.affinity | object | `{}` | Set affinity |
732+
| event-exporter.enabled | bool | `false` | Enable event-exporter |
733+
| event-exporter.env | object | `{}` | Add additional env vars |
734+
| event-exporter.image | object | `{"registry":"docker.io","repository":"codefresh/k8s-event-exporter","tag":"latest"}` | Set image |
735+
| event-exporter.nodeSelector | object | `{}` | Set node selector |
736+
| event-exporter.podAnnotations | object | `{}` | Set pod annotations |
737+
| event-exporter.podSecurityContext | object | See below | Set security context for the pod |
738+
| event-exporter.rbac | object | `{"create":true,"rules":[]}` | RBAC parameters |
739+
| event-exporter.rbac.create | bool | `true` | Create RBAC resources |
740+
| event-exporter.rbac.rules | list | `[]` | Add custom rule to the role |
741+
| event-exporter.replicasCount | int | `1` | Set number of pods |
742+
| event-exporter.resources | object | `{}` | Set resources |
743+
| event-exporter.serviceAccount | object | `{"annotations":{},"create":true,"name":""}` | Service Account parameters |
744+
| event-exporter.serviceAccount.annotations | object | `{}` | Additional service account annotations |
745+
| event-exporter.serviceAccount.create | bool | `true` | Create service account |
746+
| event-exporter.serviceAccount.name | string | `""` | Override service account name |
747+
| event-exporter.tolerations | list | `[]` | Set tolerations |
748+
| event-exporter.updateStrategy | object | `{"type":"Recreate"}` | Upgrade strategy |
730749
| extraResources | list | `[]` | Array of extra objects to deploy with the release |
731750
| fullNameOverride | string | `""` | String to fully override cf-runtime.fullname template |
732751
| global | object | See below | Global parameters Global values are in generated_values.yaml. Run `codefresh runner init --generate-helm-values-file`! |
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
{{- define "event-exporter.resources.deployment" -}}
2+
{{ $cfCommonTplSemver := printf "cf-common-%s" (index .Subcharts "cf-common").Chart.Version }}
3+
apiVersion: apps/v1
4+
kind: Deployment
5+
metadata:
6+
name: {{ include "event-exporter.fullname" . }}
7+
labels:
8+
{{- include "event-exporter.labels" . | nindent 4 }}
9+
spec:
10+
replicas: {{ .Values.replicasCount }}
11+
strategy:
12+
type: {{ .Values.updateStrategy.type }}
13+
selector:
14+
matchLabels:
15+
{{- include "event-exporter.selectorLabels" . | nindent 6 }}
16+
template:
17+
metadata:
18+
labels:
19+
{{- include "event-exporter.selectorLabels" . | nindent 8 }}
20+
{{- with .Values.podAnnotations }}
21+
annotations:
22+
{{- toYaml . | nindent 8 }}
23+
{{- end }}
24+
spec:
25+
{{- include (printf "%s.image.pullSecrets" $cfCommonTplSemver ) . | nindent 8 }}
26+
serviceAccountName: {{ include "event-exporter.serviceAccountName" . }}
27+
{{- if .Values.podSecurityContext.enabled }}
28+
securityContext: {{- omit .Values.podSecurityContext "enabled" | toYaml | nindent 8 }}
29+
{{- end }}
30+
containers:
31+
- name: event-exporter
32+
image: {{ include (printf "%s.image.name" $cfCommonTplSemver ) (dict "image" .Values.image "context" .) }}
33+
imagePullPolicy: {{ .Values.image.pullPolicy | default "Always" }}
34+
args: [--running-in-cluster=true]
35+
env:
36+
{{- include "event-exporter.environment-variables" . | nindent 8 }}
37+
ports:
38+
- name: metrics
39+
containerPort: 9102
40+
resources:
41+
{{- toYaml .Values.resources | nindent 12 }}
42+
volumeMounts:
43+
{{- with .Values.extraVolumeMounts }}
44+
{{- toYaml . | nindent 8 }}
45+
{{- end }}
46+
{{- with .Values.nodeSelector }}
47+
nodeSelector:
48+
{{- toYaml . | nindent 8 }}
49+
{{- end }}
50+
{{- with .Values.affinity }}
51+
affinity:
52+
{{- toYaml . | nindent 8 }}
53+
{{- end }}
54+
{{- with .Values.tolerations }}
55+
tolerations:
56+
{{- toYaml . | nindent 6 }}
57+
{{- end }}
58+
volumes:
59+
{{- with .Values.extraVolumes }}
60+
{{- toYaml . | nindent 6 }}
61+
{{- end }}
62+
{{- end -}}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{{- define "event-exporter.environment-variables.defaults" }}
2+
{{- end }}
3+
4+
{{- define "event-exporter.environment-variables.calculated" }}
5+
{{- end }}
6+
7+
{{- define "event-exporter.environment-variables" }}
8+
{{- $cfCommonTplSemver := printf "cf-common-%s" (index .Subcharts "cf-common").Chart.Version }}
9+
{{- $defaults := (include "event-exporter.environment-variables.defaults" . | fromYaml) }}
10+
{{- $calculated := (include "event-exporter.environment-variables.calculated" . | fromYaml) }}
11+
{{- $overrides := .Values.env }}
12+
{{- $mergedValues := mergeOverwrite (merge $defaults $calculated) $overrides }}
13+
{{- include (printf "%s.env-vars" $cfCommonTplSemver) (dict "Values" $mergedValues "context" .) }}
14+
{{- end }}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{{/*
2+
Expand the name of the chart.
3+
*/}}
4+
{{- define "event-exporter.name" -}}
5+
{{- printf "%s-%s" (include "cf-runtime.name" .) "event-exporter" | trunc 63 | trimSuffix "-" }}
6+
{{- end }}
7+
8+
{{/*
9+
Create a default fully qualified app name.
10+
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
11+
If release name contains chart name it will be used as a full name.
12+
*/}}
13+
{{- define "event-exporter.fullname" -}}
14+
{{- printf "%s-%s" (include "cf-runtime.fullname" .) "event-exporter" | trunc 63 | trimSuffix "-" }}
15+
{{- end }}
16+
17+
{{/*
18+
Common labels
19+
*/}}
20+
{{- define "event-exporter.labels" -}}
21+
{{ include "cf-runtime.labels" . }}
22+
app: event-exporter
23+
{{- end }}
24+
25+
{{/*
26+
Selector labels
27+
*/}}
28+
{{- define "event-exporter.selectorLabels" -}}
29+
{{ include "cf-runtime.selectorLabels" . }}
30+
app: event-exporter
31+
{{- end }}
32+
33+
34+
{{/*
35+
Create the name of the service account to use
36+
*/}}
37+
{{- define "event-exporter.serviceAccountName" -}}
38+
{{- if .Values.serviceAccount.create }}
39+
{{- default (include "event-exporter.fullname" .) .Values.serviceAccount.name }}
40+
{{- else }}
41+
{{- default "default" .Values.serviceAccount.name }}
42+
{{- end }}
43+
{{- end }}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{{- define "event-exporter.resources.rbac" -}}
2+
{{- if .Values.serviceAccount.create }}
3+
apiVersion: v1
4+
kind: ServiceAccount
5+
metadata:
6+
name: {{ include "event-exporter.serviceAccountName" . }}
7+
labels:
8+
{{- include "event-exporter.labels" . | nindent 4 }}
9+
{{- with .Values.serviceAccount.annotations }}
10+
annotations:
11+
{{- toYaml . | nindent 4 }}
12+
{{- end }}
13+
{{- end }}
14+
---
15+
{{- if .Values.rbac.create }}
16+
kind: ClusterRole
17+
apiVersion: rbac.authorization.k8s.io/v1
18+
metadata:
19+
name: {{ include "event-exporter.fullname" . }}
20+
labels:
21+
{{- include "event-exporter.labels" . | nindent 4 }}
22+
rules:
23+
- apiGroups: [""]
24+
resources: [events]
25+
verbs: [get, list, watch]
26+
{{- with .Values.rbac.rules }}
27+
{{ toYaml . | nindent 2 }}
28+
{{- end }}
29+
{{- end }}
30+
---
31+
{{- if and .Values.serviceAccount.create .Values.rbac.create }}
32+
kind: ClusterRoleBinding
33+
apiVersion: rbac.authorization.k8s.io/v1
34+
metadata:
35+
name: {{ include "event-exporter.fullname" . }}
36+
labels:
37+
{{- include "event-exporter.labels" . | nindent 4 }}
38+
subjects:
39+
- kind: ServiceAccount
40+
name: {{ include "event-exporter.serviceAccountName" . }}
41+
namespace: {{ .Release.Namespace }}
42+
roleRef:
43+
kind: ClusterRole
44+
name: {{ include "event-exporter.fullname" . }}
45+
apiGroup: rbac.authorization.k8s.io
46+
{{- end }}
47+
{{- end -}}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{{- define "event-exporter.resources.service" -}}
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: {{ include "event-exporter.fullname" . }}
6+
labels:
7+
{{- include "event-exporter.labels" . | nindent 4 }}
8+
spec:
9+
type: ClusterIP
10+
ports:
11+
- name: metrics
12+
port: 9102
13+
targetPort: metrics
14+
protocol: TCP
15+
selector:
16+
{{- include "event-exporter.selectorLabels" . | nindent 4 }}
17+
{{- end -}}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{{- define "event-exporter.resources.serviceMonitor" -}}
2+
apiVersion: monitoring.coreos.com/v1
3+
kind: ServiceMonitor
4+
metadata:
5+
name: {{ include "event-exporter.fullname" . }}
6+
labels:
7+
{{- include "event-exporter.labels" . | nindent 4 }}
8+
spec:
9+
endpoints:
10+
- port: metrics
11+
selector:
12+
matchLabels:
13+
{{- include "event-exporter.selectorLabels" . | nindent 6 }}
14+
{{- end -}}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{{- $eventExporterContext := deepCopy . }}
2+
{{- $_ := set $eventExporterContext "Values" (get .Values "event-exporter") }}
3+
{{- $_ := set $eventExporterContext.Values "global" (get .Values "global") }}
4+
5+
{{- if and $eventExporterContext.Values.enabled }}
6+
{{- include "event-exporter.resources.deployment" $eventExporterContext }}
7+
{{- end }}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{{- $eventExporterContext := deepCopy . }}
2+
{{- $_ := set $eventExporterContext "Values" (get .Values "event-exporter") }}
3+
{{- $_ := set $eventExporterContext.Values "global" (get .Values "global") }}
4+
5+
{{- if and $eventExporterContext.Values.enabled }}
6+
{{- include "event-exporter.resources.rbac" $eventExporterContext }}
7+
{{- end }}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{{- $eventExporterContext := deepCopy . }}
2+
{{- $_ := set $eventExporterContext "Values" (get .Values "event-exporter") }}
3+
{{- $_ := set $eventExporterContext.Values "global" (get .Values "global") }}
4+
5+
{{- if $eventExporterContext.Values.enabled }}
6+
{{- include "event-exporter.resources.service" $eventExporterContext }}
7+
---
8+
{{- include "event-exporter.resources.serviceMonitor" $eventExporterContext }}
9+
{{- end }}

charts/cf-runtime/values.yaml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,57 @@ podMonitor:
757757
- path: /metrics
758758
targetPort: 9100
759759

760+
# -- Event exporter parameters
761+
# @default -- See below
762+
event-exporter:
763+
# -- Enable event-exporter
764+
enabled: false
765+
# -- Set number of pods
766+
replicasCount: 1
767+
# -- Upgrade strategy
768+
updateStrategy:
769+
type: Recreate
770+
# -- Set pod annotations
771+
podAnnotations: {}
772+
773+
# -- Set image
774+
image:
775+
registry: docker.io
776+
repository: codefresh/k8s-event-exporter
777+
tag: latest
778+
# -- Add additional env vars
779+
env: {}
780+
781+
# -- Service Account parameters
782+
serviceAccount:
783+
# -- Create service account
784+
create: true
785+
# -- Override service account name
786+
name: ""
787+
# -- Additional service account annotations
788+
annotations: {}
789+
790+
# -- RBAC parameters
791+
rbac:
792+
# -- Create RBAC resources
793+
create: true
794+
# -- Add custom rule to the role
795+
rules: []
796+
797+
# -- Set security context for the pod
798+
# @default -- See below
799+
podSecurityContext:
800+
enabled: false
801+
802+
# -- Set node selector
803+
nodeSelector: {}
804+
# -- Set resources
805+
resources: {}
806+
# -- Set tolerations
807+
tolerations: []
808+
# -- Set affinity
809+
affinity: {}
810+
760811
# -- Array of extra objects to deploy with the release
761812
extraResources: []
762813
# E.g.

0 commit comments

Comments
 (0)