Skip to content

Commit 3882cae

Browse files
fix: Add missing ingest for feedback events (#1630)
1 parent a9b6b61 commit 3882cae

File tree

4 files changed

+243
-0
lines changed

4 files changed

+243
-0
lines changed

Diff for: charts/sentry/README.md

+18
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,24 @@ Note: this table is incomplete, so have a look at the values.yaml in case you mi
483483
| sentry.ingestConsumerTransactions.sidecars | list | `[]` | |
484484
| sentry.ingestConsumerTransactions.topologySpreadConstraints | list | `[]` | |
485485
| sentry.ingestConsumerTransactions.volumes | list | `[]` | |
486+
| sentry.ingestFeedback.affinity | object | `{}` | |
487+
| sentry.ingestFeedback.autoscaling.enabled | bool | `false` | |
488+
| sentry.ingestFeedback.autoscaling.maxReplicas | int | `3` | |
489+
| sentry.ingestFeedback.autoscaling.minReplicas | int | `1` | |
490+
| sentry.ingestFeedback.autoscaling.targetCPUUtilizationPercentage | int | `50` | |
491+
| sentry.ingestFeedback.containerSecurityContext | object | `{}` | |
492+
| sentry.ingestFeedback.enabled | bool | `true` | |
493+
| sentry.ingestFeedback.env | list | `[]` | |
494+
| sentry.ingestFeedback.livenessProbe.enabled | bool | `true` | |
495+
| sentry.ingestFeedback.livenessProbe.initialDelaySeconds | int | `5` | |
496+
| sentry.ingestFeedback.livenessProbe.periodSeconds | int | `320` | |
497+
| sentry.ingestFeedback.nodeSelector | object | `{}` | |
498+
| sentry.ingestFeedback.replicas | int | `1` | |
499+
| sentry.ingestFeedback.resources | object | `{}` | |
500+
| sentry.ingestFeedback.securityContext | object | `{}` | |
501+
| sentry.ingestFeedback.sidecars | list | `[]` | |
502+
| sentry.ingestFeedback.topologySpreadConstraints | list | `[]` | |
503+
| sentry.ingestFeedback.volumes | list | `[]` | |
486504
| sentry.ingestMonitors.affinity | object | `{}` | |
487505
| sentry.ingestMonitors.autoscaling.enabled | bool | `false` | |
488506
| sentry.ingestMonitors.autoscaling.maxReplicas | int | `3` | |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
{{- if .Values.sentry.ingestFeedback.enabled }}
2+
apiVersion: apps/v1
3+
kind: Deployment
4+
metadata:
5+
name: {{ template "sentry.fullname" . }}-ingest-feedback
6+
labels:
7+
app: {{ template "sentry.fullname" . }}
8+
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
9+
release: "{{ .Release.Name }}"
10+
heritage: "{{ .Release.Service }}"
11+
app.kubernetes.io/managed-by: "Helm"
12+
{{- if .Values.asHook }}
13+
{{- /* Add the Helm annotations so that deployment after asHook from true to false works */}}
14+
annotations:
15+
meta.helm.sh/release-name: "{{ .Release.Name }}"
16+
meta.helm.sh/release-namespace: "{{ .Release.Namespace }}"
17+
"helm.sh/hook": "post-install,post-upgrade"
18+
"helm.sh/hook-weight": "10"
19+
{{- end }}
20+
spec:
21+
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
22+
selector:
23+
matchLabels:
24+
app: {{ template "sentry.fullname" . }}
25+
release: "{{ .Release.Name }}"
26+
role: ingest-feedback
27+
{{- if not .Values.sentry.ingestFeedback.autoscaling.enabled }}
28+
replicas: {{ .Values.sentry.ingestFeedback.replicas }}
29+
{{- end }}
30+
template:
31+
metadata:
32+
annotations:
33+
checksum/configYml: {{ .Values.config.configYml | toYaml | toString | sha256sum }}
34+
checksum/sentryConfPy: {{ .Values.config.sentryConfPy | sha256sum }}
35+
checksum/config.yaml: {{ include "sentry.config" . | sha256sum }}
36+
{{- if .Values.sentry.ingestFeedback.annotations }}
37+
{{ toYaml .Values.sentry.ingestFeedback.annotations | indent 8 }}
38+
{{- end }}
39+
labels:
40+
app: {{ template "sentry.fullname" . }}
41+
release: "{{ .Release.Name }}"
42+
role: ingest-feedback
43+
{{- if .Values.sentry.ingestFeedback.podLabels }}
44+
{{ toYaml .Values.sentry.ingestFeedback.podLabels | indent 8 }}
45+
{{- end }}
46+
spec:
47+
affinity:
48+
{{- if .Values.sentry.ingestFeedback.affinity }}
49+
{{ toYaml .Values.sentry.ingestFeedback.affinity | indent 8 }}
50+
{{- end }}
51+
{{- if .Values.sentry.ingestFeedback.nodeSelector }}
52+
nodeSelector:
53+
{{ toYaml .Values.sentry.ingestFeedback.nodeSelector | indent 8 }}
54+
{{- else if .Values.global.nodeSelector }}
55+
nodeSelector:
56+
{{ toYaml .Values.global.nodeSelector | indent 8 }}
57+
{{- end }}
58+
{{- if .Values.sentry.ingestFeedback.tolerations }}
59+
tolerations:
60+
{{ toYaml .Values.sentry.ingestFeedback.tolerations | indent 8 }}
61+
{{- else if .Values.global.tolerations }}
62+
tolerations:
63+
{{ toYaml .Values.global.tolerations | indent 8 }}
64+
{{- end }}
65+
{{- if .Values.sentry.ingestFeedback.topologySpreadConstraints }}
66+
topologySpreadConstraints:
67+
{{ toYaml .Values.sentry.ingestFeedback.topologySpreadConstraints | indent 8 }}
68+
{{- end }}
69+
{{- if .Values.images.sentry.imagePullSecrets }}
70+
imagePullSecrets:
71+
{{ toYaml .Values.images.sentry.imagePullSecrets | indent 8 }}
72+
{{- end }}
73+
{{- if .Values.dnsPolicy }}
74+
dnsPolicy: {{ .Values.dnsPolicy | quote }}
75+
{{- end }}
76+
{{- if .Values.dnsConfig }}
77+
dnsConfig:
78+
{{ toYaml .Values.dnsConfig | indent 8 }}
79+
{{- end }}
80+
{{- if .Values.sentry.ingestFeedback.securityContext }}
81+
securityContext:
82+
{{ toYaml .Values.sentry.ingestFeedback.securityContext | indent 8 }}
83+
{{- end }}
84+
containers:
85+
- name: {{ .Chart.Name }}-ingest-feedback
86+
image: "{{ template "sentry.image" . }}"
87+
imagePullPolicy: {{ default "IfNotPresent" .Values.images.sentry.pullPolicy }}
88+
command: ["sentry"]
89+
args:
90+
- "run"
91+
- "consumer"
92+
- "ingest-feedback-events"
93+
- "--consumer-group"
94+
- "ingest-feedback"
95+
{{- if .Values.sentry.ingestFeedback.autoOffsetReset }}
96+
- "--auto-offset-reset"
97+
- "{{ .Values.sentry.ingestFeedback.autoOffsetReset }}"
98+
{{- end }}
99+
{{- if .Values.sentry.ingestFeedback.noStrictOffsetReset }}
100+
- "--no-strict-offset-reset"
101+
{{- end }}
102+
{{- if .Values.sentry.ingestFeedback.livenessProbe.enabled }}
103+
- "--healthcheck-file-path"
104+
- "/tmp/health.txt"
105+
{{- end }}
106+
{{- if .Values.sentry.ingestFeedback.livenessProbe.enabled }}
107+
livenessProbe:
108+
exec:
109+
command:
110+
- rm
111+
- /tmp/health.txt
112+
initialDelaySeconds: {{ .Values.sentry.ingestFeedback.livenessProbe.initialDelaySeconds }}
113+
periodSeconds: {{ .Values.sentry.ingestFeedback.livenessProbe.periodSeconds }}
114+
{{- end }}
115+
env:
116+
- name: C_FORCE_ROOT
117+
value: "true"
118+
{{ include "sentry.env" . | indent 8 }}
119+
{{- if .Values.sentry.ingestFeedback.env }}
120+
{{ toYaml .Values.sentry.ingestFeedback.env | indent 8 }}
121+
{{- end }}
122+
volumeMounts:
123+
- mountPath: /etc/sentry
124+
name: config
125+
readOnly: true
126+
- mountPath: {{ .Values.filestore.filesystem.path }}
127+
name: sentry-data
128+
{{- if and (eq .Values.filestore.backend "gcs") .Values.filestore.gcs.secretName }}
129+
- name: sentry-google-cloud-key
130+
mountPath: /var/run/secrets/google
131+
{{ end }}
132+
{{- if .Values.sentry.ingestFeedback.volumeMounts }}
133+
{{ toYaml .Values.sentry.ingestFeedback.volumeMounts | indent 8 }}
134+
{{- end }}
135+
resources:
136+
{{ toYaml .Values.sentry.ingestFeedback.resources | indent 12 }}
137+
{{- if .Values.sentry.ingestFeedback.containerSecurityContext }}
138+
securityContext:
139+
{{ toYaml .Values.sentry.ingestFeedback.containerSecurityContext | indent 12 }}
140+
{{- end }}
141+
{{- if .Values.sentry.ingestFeedback.sidecars }}
142+
{{ toYaml .Values.sentry.ingestFeedback.sidecars | indent 6 }}
143+
{{- end }}
144+
{{- if .Values.global.sidecars }}
145+
{{ toYaml .Values.global.sidecars | indent 6 }}
146+
{{- end }}
147+
{{- if .Values.serviceAccount.enabled }}
148+
serviceAccountName: {{ .Values.serviceAccount.name }}-ingest-feedback
149+
{{- end }}
150+
volumes:
151+
- name: config
152+
configMap:
153+
name: {{ template "sentry.fullname" . }}-sentry
154+
- name: sentry-data
155+
{{- if and (eq .Values.filestore.backend "filesystem") .Values.filestore.filesystem.persistence.enabled (.Values.filestore.filesystem.persistence.persistentWorkers) }}
156+
{{- if .Values.filestore.filesystem.persistence.existingClaim }}
157+
persistentVolumeClaim:
158+
claimName: {{ .Values.filestore.filesystem.persistence.existingClaim }}
159+
{{- else }}
160+
persistentVolumeClaim:
161+
claimName: {{ template "sentry.fullname" . }}-data
162+
{{- end }}
163+
{{- else }}
164+
emptyDir: {}
165+
{{ end }}
166+
{{- if and (eq .Values.filestore.backend "gcs") .Values.filestore.gcs.secretName }}
167+
- name: sentry-google-cloud-key
168+
secret:
169+
secretName: {{ .Values.filestore.gcs.secretName }}
170+
{{ end }}
171+
{{- if .Values.sentry.ingestFeedback.volumes }}
172+
{{ toYaml .Values.sentry.ingestFeedback.volumes | indent 6 }}
173+
{{- end }}
174+
{{- if .Values.global.volumes }}
175+
{{ toYaml .Values.global.volumes | indent 6 }}
176+
{{- end }}
177+
{{- if .Values.sentry.ingestFeedback.priorityClassName }}
178+
priorityClassName: "{{ .Values.sentry.ingestFeedback.priorityClassName }}"
179+
{{- end }}
180+
{{- end }}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{{- if and .Values.serviceAccount.enabled .Values.sentry.ingestMonitors.enabled }}
2+
apiVersion: v1
3+
kind: ServiceAccount
4+
metadata:
5+
name: {{ .Values.serviceAccount.name }}-ingest-feedback
6+
{{- if .Values.serviceAccount.annotations }}
7+
annotations: {{ toYaml .Values.serviceAccount.annotations | nindent 4 }}
8+
{{- end }}
9+
automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}
10+
{{- end }}

Diff for: charts/sentry/values.yaml

+35
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,40 @@ sentry:
578578
# autoOffsetReset: "earliest"
579579
# noStrictOffsetReset: false
580580

581+
ingestFeedback:
582+
enabled: false
583+
replicas: 1
584+
env: []
585+
resources: {}
586+
# requests:
587+
# cpu: 100m
588+
# memory: 250Mi
589+
affinity: {}
590+
nodeSelector: {}
591+
securityContext: {}
592+
containerSecurityContext: {}
593+
# tolerations: []
594+
# podLabels: {}
595+
# it's better to use prometheus adapter and scale based on
596+
# the size of the rabbitmq queue
597+
autoscaling:
598+
enabled: false
599+
minReplicas: 1
600+
maxReplicas: 3
601+
targetCPUUtilizationPercentage: 50
602+
sidecars: []
603+
topologySpreadConstraints: []
604+
volumes: []
605+
livenessProbe:
606+
enabled: true
607+
initialDelaySeconds: 5
608+
periodSeconds: 320
609+
# volumeMounts:
610+
# - mountPath: /dev/shm
611+
# name: dshm
612+
# autoOffsetReset: "earliest"
613+
# noStrictOffsetReset: false
614+
581615
ingestMonitors:
582616
enabled: true
583617
replicas: 1
@@ -2134,6 +2168,7 @@ kafka:
21342168
- name: ingest-replay-recordings
21352169
- name: ingest-metrics
21362170
- name: ingest-performance-metrics
2171+
- name: ingest-feedback-events
21372172
- name: ingest-monitors
21382173
- name: profiles
21392174
- name: ingest-occurrences

0 commit comments

Comments
 (0)