Skip to content

feat(snuba): add uptime consumer deployment configuration #1830

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.enabled }}
{{- if .Values.sentry.uptimeResults.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "sentry.fullname" . }}-subscription-consumer-results-eap-items
name: {{ template "sentry.fullname" . }}-uptime-results-consumer
labels:
app: sentry
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
Expand All @@ -24,53 +24,53 @@ spec:
app: sentry
release: "{{ .Release.Name }}"
role: sentry-subscription-consumer-eap-spans
replicas: {{ .Values.sentry.subscriptionConsumerResultsEapItems.replicas }}
replicas: {{ .Values.sentry.uptimeResults.replicas }}
template:
metadata:
annotations:
checksum/configYml: {{ .Values.config.configYml | toYaml | toString | sha256sum }}
checksum/sentryConfPy: {{ .Values.config.sentryConfPy | sha256sum }}
checksum/config.yaml: {{ include "sentry.config" . | sha256sum }}
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.annotations }}
{{ toYaml .Values.sentry.subscriptionConsumerResultsEapItems.annotations | indent 8 }}
{{- if .Values.sentry.uptimeResults.annotations }}
{{ toYaml .Values.sentry.uptimeResults.annotations | indent 8 }}
{{- end }}
labels:
app: sentry
release: "{{ .Release.Name }}"
role: sentry-subscription-consumer-eap-spans
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.podLabels }}
{{ toYaml .Values.sentry.subscriptionConsumerResultsEapItems.podLabels | indent 8 }}
{{- if .Values.sentry.uptimeResults.podLabels }}
{{ toYaml .Values.sentry.uptimeResults.podLabels | indent 8 }}
{{- end }}
spec:
affinity:
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.affinity }}
{{ toYaml .Values.sentry.subscriptionConsumerResultsEapItems.affinity | indent 8 }}
{{- if .Values.sentry.uptimeResults.affinity }}
{{ toYaml .Values.sentry.uptimeResults.affinity | indent 8 }}
{{- end }}
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.nodeSelector }}
{{- if .Values.sentry.uptimeResults.nodeSelector }}
nodeSelector:
{{ toYaml .Values.sentry.subscriptionConsumerResultsEapItems.nodeSelector | indent 8 }}
{{ toYaml .Values.sentry.uptimeResults.nodeSelector | indent 8 }}
{{- else if .Values.global.nodeSelector }}
nodeSelector:
{{ toYaml .Values.global.nodeSelector | indent 8 }}
{{- end }}
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.tolerations }}
{{- if .Values.sentry.uptimeResults.tolerations }}
tolerations:
{{ toYaml .Values.sentry.subscriptionConsumerResultsEapItems.tolerations | indent 8 }}
{{ toYaml .Values.sentry.uptimeResults.tolerations | indent 8 }}
{{- else if .Values.global.tolerations }}
tolerations:
{{ toYaml .Values.global.tolerations | indent 8 }}
{{- end }}
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.topologySpreadConstraints }}
{{- if .Values.sentry.uptimeResults.topologySpreadConstraints }}
topologySpreadConstraints:
{{ toYaml .Values.sentry.subscriptionConsumerResultsEapItems.topologySpreadConstraints | indent 8 }}
{{ toYaml .Values.sentry.uptimeResults.topologySpreadConstraints | indent 8 }}
{{- end }}
{{- if .Values.images.sentry.imagePullSecrets }}
imagePullSecrets:
{{ toYaml .Values.images.sentry.imagePullSecrets | indent 8 }}
{{- end }}
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.securityContext }}
{{- if .Values.sentry.uptimeResults.securityContext }}
securityContext:
{{ toYaml .Values.sentry.subscriptionConsumerResultsEapItems.securityContext | indent 8 }}
{{ toYaml .Values.sentry.uptimeResults.securityContext | indent 8 }}
{{- end }}
containers:
- name: {{ .Chart.Name }}-subscription-consumer-eap-spans
Expand All @@ -80,33 +80,33 @@ spec:
args:
- "run"
- "consumer"
- "subscription-results-eap-items"
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.autoOffsetReset }}
- "uptime-results"
{{- if .Values.sentry.uptimeResults.autoOffsetReset }}
- "--auto-offset-reset"
- "{{ .Values.sentry.subscriptionConsumerResultsEapItems.autoOffsetReset }}"
- "{{ .Values.sentry.uptimeResults.autoOffsetReset }}"
{{- end }}
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.noStrictOffsetReset }}
{{- if .Values.sentry.uptimeResults.noStrictOffsetReset }}
- "--no-strict-offset-reset"
{{- end }}
- "--consumer-group"
- "subscription-results-eap-items"
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.livenessProbe.enabled }}
- "uptime-results"
{{- if .Values.sentry.uptimeResults.livenessProbe.enabled }}
- "--healthcheck-file-path"
- "/tmp/health.txt"
{{- end }}
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.livenessProbe.enabled }}
{{- if .Values.sentry.uptimeResults.livenessProbe.enabled }}
livenessProbe:
exec:
command:
- rm
- /tmp/health.txt
initialDelaySeconds: {{ .Values.sentry.subscriptionConsumerResultsEapItems.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.sentry.subscriptionConsumerResultsEapItems.livenessProbe.periodSeconds }}
initialDelaySeconds: {{ .Values.sentry.uptimeResults.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.sentry.uptimeResults.livenessProbe.periodSeconds }}
{{- end }}
env:
{{ include "sentry.env" . | indent 8 }}
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.env }}
{{ toYaml .Values.sentry.subscriptionConsumerResultsEapItems.env | indent 8 }}
{{- if .Values.sentry.uptimeResults.env }}
{{ toYaml .Values.sentry.uptimeResults.env | indent 8 }}
{{- end }}
volumeMounts:
- mountPath: /etc/sentry
Expand All @@ -118,23 +118,23 @@ spec:
- name: sentry-google-cloud-key
mountPath: /var/run/secrets/google
{{ end }}
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.volumeMounts }}
{{ toYaml .Values.sentry.subscriptionConsumerResultsEapItems.volumeMounts | indent 8 }}
{{- if .Values.sentry.uptimeResults.volumeMounts }}
{{ toYaml .Values.sentry.uptimeResults.volumeMounts | indent 8 }}
{{- end }}
resources:
{{ toYaml .Values.sentry.subscriptionConsumerResultsEapItems.resources | indent 12 }}
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.containerSecurityContext }}
{{ toYaml .Values.sentry.uptimeResults.resources | indent 12 }}
{{- if .Values.sentry.uptimeResults.containerSecurityContext }}
securityContext:
{{ toYaml .Values.sentry.subscriptionConsumerResultsEapItems.containerSecurityContext | indent 12 }}
{{ toYaml .Values.sentry.uptimeResults.containerSecurityContext | indent 12 }}
{{- end }}
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.sidecars }}
{{ toYaml .Values.sentry.subscriptionConsumerResultsEapItems.sidecars | indent 6 }}
{{- if .Values.sentry.uptimeResults.sidecars }}
{{ toYaml .Values.sentry.uptimeResults.sidecars | indent 6 }}
{{- end }}
{{- if .Values.global.sidecars }}
{{ toYaml .Values.global.sidecars | indent 6 }}
{{- end }}
{{- if .Values.serviceAccount.enabled }}
serviceAccountName: {{ .Values.serviceAccount.name }}-subscription-consumer-results-eap-items
serviceAccountName: {{ .Values.serviceAccount.name }}-uptime-results
{{- end }}
volumes:
- name: config
Expand All @@ -157,13 +157,13 @@ spec:
secret:
secretName: {{ .Values.filestore.gcs.secretName }}
{{ end }}
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.volumes }}
{{ toYaml .Values.sentry.subscriptionConsumerResultsEapItems.volumes | indent 6 }}
{{- if .Values.sentry.uptimeResults.volumes }}
{{ toYaml .Values.sentry.uptimeResults.volumes | indent 6 }}
{{- end }}
{{- if .Values.global.volumes }}
{{ toYaml .Values.global.volumes | indent 6 }}
{{- end }}
{{- if .Values.sentry.subscriptionConsumerResultsEapItems.priorityClassName }}
priorityClassName: "{{ .Values.sentry.subscriptionConsumerResultsEapItems.priorityClassName }}"
{{- if .Values.sentry.uptimeResults.priorityClassName }}
priorityClassName: "{{ .Values.sentry.uptimeResults.priorityClassName }}"
{{- end }}
{{- end }}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{{- if and .Values.serviceAccount.enabled .Values.sentry.subscriptionConsumerResultsEapItems.enabled }}
{{- if and .Values.serviceAccount.enabled .Values.sentry.uptimeResults.enabled }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Values.serviceAccount.name }}-subscription-consumer-results-eap-items
name: {{ .Values.serviceAccount.name }}-uptime-results
{{- if .Values.serviceAccount.annotations }}
annotations: {{ toYaml .Values.serviceAccount.annotations | nindent 4 }}
{{- end }}
Expand Down
184 changes: 184 additions & 0 deletions charts/sentry/templates/snuba/deployment-snuba-uptime-consumer.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
{{- if has "feature-complete" .Values.profiles }}
{{- if .Values.snuba.uptimeConsumer.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "sentry.fullname" . }}-snuba-uptime-consumer
labels:
app: {{ template "sentry.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
app.kubernetes.io/managed-by: "Helm"
{{- if .Values.asHook }}
{{- /* Add the Helm annotations so that deployment after asHook from true to false works */}}
annotations:
meta.helm.sh/release-name: "{{ .Release.Name }}"
meta.helm.sh/release-namespace: "{{ .Release.Namespace }}"
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "12"
{{- end }}
spec:
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
selector:
matchLabels:
app: {{ template "sentry.fullname" . }}
release: "{{ .Release.Name }}"
role: snuba-transactions-consumer
replicas: {{ .Values.snuba.uptimeConsumer.replicas }}
template:
metadata:
annotations:
checksum/snubaSettingsPy: {{ .Values.config.snubaSettingsPy | sha256sum }}
checksum/config.yaml: {{ include "sentry.snuba.config" . | sha256sum }}
{{- if .Values.snuba.uptimeConsumer.annotations }}
{{ toYaml .Values.snuba.uptimeConsumer.annotations | indent 8 }}
{{- end }}
labels:
app: {{ template "sentry.fullname" . }}
release: "{{ .Release.Name }}"
role: snuba-transactions-consumer
{{- if .Values.snuba.uptimeConsumer.podLabels }}
{{ toYaml .Values.snuba.uptimeConsumer.podLabels | indent 8 }}
{{- end }}
spec:
affinity:
{{- if .Values.snuba.uptimeConsumer.affinity }}
{{ toYaml .Values.snuba.uptimeConsumer.affinity | indent 8 }}
{{- end }}
{{- if .Values.snuba.uptimeConsumer.nodeSelector }}
nodeSelector:
{{ toYaml .Values.snuba.uptimeConsumer.nodeSelector | indent 8 }}
{{- else if .Values.global.nodeSelector }}
nodeSelector:
{{ toYaml .Values.global.nodeSelector | indent 8 }}
{{- end }}
{{- if .Values.snuba.uptimeConsumer.tolerations }}
tolerations:
{{ toYaml .Values.snuba.uptimeConsumer.tolerations | indent 8 }}
{{- else if .Values.global.tolerations }}
tolerations:
{{ toYaml .Values.global.tolerations | indent 8 }}
{{- end }}
{{- if .Values.snuba.uptimeConsumer.topologySpreadConstraints }}
topologySpreadConstraints:
{{ toYaml .Values.snuba.uptimeConsumer.topologySpreadConstraints | indent 8 }}
{{- end }}
{{- if .Values.images.snuba.imagePullSecrets }}
imagePullSecrets:
{{ toYaml .Values.images.snuba.imagePullSecrets | indent 8 }}
{{- end }}
{{- if .Values.dnsPolicy }}
dnsPolicy: {{ .Values.dnsPolicy | quote }}
{{- end }}
{{- if .Values.dnsConfig }}
dnsConfig:
{{ toYaml .Values.dnsConfig | indent 8 }}
{{- end }}
{{- if .Values.snuba.uptimeConsumer.securityContext }}
securityContext:
{{ toYaml .Values.snuba.uptimeConsumer.securityContext | indent 8 }}
{{- end }}
containers:
- name: {{ .Chart.Name }}-snuba
image: "{{ template "snuba.image" . }}"
imagePullPolicy: {{ default "IfNotPresent" .Values.images.snuba.pullPolicy }}
command:
- "snuba"
- {{ if .Values.snuba.rustConsumer -}}"rust-consumer"{{- else -}}"consumer"{{- end }}
- "--storage"
- "transactions"
- "--consumer-group"
- "transactions_group"
{{- if .Values.snuba.uptimeConsumer.autoOffsetReset }}
- "--auto-offset-reset"
- "{{ .Values.snuba.uptimeConsumer.autoOffsetReset }}"
{{- end }}
{{- if .Values.snuba.uptimeConsumer.maxBatchSize }}
- "--max-batch-size"
- "{{ .Values.snuba.uptimeConsumer.maxBatchSize }}"
{{- end }}
{{- if .Values.snuba.uptimeConsumer.processes }}
- "--processes"
- "{{ .Values.snuba.uptimeConsumer.processes }}"
{{- end }}
{{- if .Values.snuba.uptimeConsumer.inputBlockSize }}
- "--input-block-size"
- "{{ .Values.snuba.uptimeConsumer.inputBlockSize }}"
{{- end }}
{{- if .Values.snuba.uptimeConsumer.outputBlockSize }}
- "--output-block-size"
- "{{ .Values.snuba.uptimeConsumer.outputBlockSize }}"
{{- end }}
{{- if .Values.snuba.uptimeConsumer.maxBatchTimeMs }}
- "--max-batch-time-ms"
- "{{ .Values.snuba.uptimeConsumer.maxBatchTimeMs }}"
{{- end }}
{{- if .Values.snuba.uptimeConsumer.queuedMaxMessagesKbytes }}
- "--queued-max-messages-kbytes"
- "{{ .Values.snuba.uptimeConsumer.queuedMaxMessagesKbytes }}"
{{- end }}
{{- if .Values.snuba.uptimeConsumer.queuedMinMessages }}
- "--queued-min-messages"
- "{{ .Values.snuba.uptimeConsumer.queuedMinMessages }}"
{{- end }}
{{- if .Values.snuba.uptimeConsumer.noStrictOffsetReset }}
- "--no-strict-offset-reset"
{{- end }}
{{- if .Values.snuba.uptimeConsumer.livenessProbe.enabled }}
- "--health-check-file"
- "/tmp/health.txt"
{{- end }}
{{- if .Values.snuba.uptimeConsumer.livenessProbe.enabled }}
livenessProbe:
exec:
command:
- rm
- /tmp/health.txt
initialDelaySeconds: {{ .Values.snuba.uptimeConsumer.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.snuba.uptimeConsumer.livenessProbe.periodSeconds }}
{{- end }}
ports:
- containerPort: {{ template "snuba.port" }}
env:
{{ include "sentry.snuba.env" . | indent 8 }}
{{- if .Values.snuba.uptimeConsumer.env }}
{{ toYaml .Values.snuba.uptimeConsumer.env | indent 8 }}
{{- end }}
envFrom:
- secretRef:
name: {{ template "sentry.fullname" . }}-snuba-env
volumeMounts:
- mountPath: /etc/snuba
name: config
readOnly: true
{{- if .Values.snuba.uptimeConsumer.volumeMounts }}
{{ toYaml .Values.snuba.uptimeConsumer.volumeMounts | indent 8 }}
{{- end }}
resources:
{{ toYaml .Values.snuba.uptimeConsumer.resources | indent 12 }}
{{- if .Values.snuba.uptimeConsumer.containerSecurityContext }}
securityContext:
{{ toYaml .Values.snuba.uptimeConsumer.containerSecurityContext | indent 12 }}
{{- end }}
{{- if .Values.snuba.uptimeConsumer.sidecars }}
{{ toYaml .Values.snuba.uptimeConsumer.sidecars | indent 6 }}
{{- end }}
{{- if .Values.global.sidecars }}
{{ toYaml .Values.global.sidecars | indent 6 }}
{{- end }}
{{- if .Values.serviceAccount.enabled }}
serviceAccountName: {{ .Values.serviceAccount.name }}-snuba
{{- end }}
volumes:
- name: config
configMap:
name: {{ template "sentry.fullname" . }}-snuba
{{- if .Values.snuba.uptimeConsumer.volumes }}
{{ toYaml .Values.snuba.uptimeConsumer.volumes | indent 8 }}
{{- end }}
{{- if .Values.global.volumes }}
{{ toYaml .Values.global.volumes | indent 8 }}
{{- end }}
{{- end }}
{{- end }}
Loading