Skip to content

Commit a11c33a

Browse files
committed
invenio: refactor sentry block
* Deprecates non-camelcase sentry variables. * Addresses secret handling as described in inveniosoftware#117.
1 parent 94e5369 commit a11c33a

8 files changed

+69
-27
lines changed

charts/invenio/templates/NOTES.txt

+17
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,20 @@ DEPRECATION WARNING:
99
removed in a future release.
1010

1111
{{- end }}
12+
13+
{{- if .Values.invenio.sentry.existing_secret}}
14+
15+
DEPRECATION WARNING:
16+
`invenio.sentry.existing_secret` has been renamed to `invenio.sentry.existingSecret`
17+
and its type has changed from boolean to string.
18+
This key will be removed in a future release.
19+
20+
{{- end }}
21+
22+
{{- if .Values.invenio.sentry.secret_name}}
23+
24+
DEPRECATION WARNING:
25+
`invenio.sentry.secret_name` has been removed in favor of
26+
`invenio.sentry.existingSecret` will be removed in a future release.
27+
28+
{{- end }}

charts/invenio/templates/_helpers.tpl

+26
Original file line numberDiff line numberDiff line change
@@ -239,3 +239,29 @@
239239
{{- $databaseName := include "invenio.postgresql.databaseName" . -}}
240240
{{- printf "postgresql+psycopg2://%s:%s@%s:%v/%s" $username $password $hostname $port $databaseName -}}
241241
{{- end -}}
242+
243+
{{/*
244+
Get the sentry secret name
245+
*/}}
246+
{{- define "invenio.sentrySecretName" -}}
247+
{{- if .Values.invenio.sentry.existingSecret -}}
248+
{{- print (tpl .Values.invenio.sentry.existingSecret .) -}}
249+
{{- else if .Values.invenio.sentry.secret_name -}}
250+
{{- print (tpl .Values.invenio.sentry.secret_name .) -}}
251+
{{- else -}}
252+
{{- "sentry-secrets" -}}
253+
{{- end -}}
254+
{{- end -}}
255+
256+
{{/*
257+
Add sentry environmental variables
258+
*/}}
259+
{{- define "invenio.config.sentry" -}}
260+
{{- if .Values.invenio.sentry.enabled }}
261+
- name: INVENIO_SENTRY_DSN
262+
valueFrom:
263+
secretKeyRef:
264+
name: {{ include "invenio.sentrySecretName" . }}
265+
key: {{ .Values.invenio.sentry.secretKeys.dsnKey }}
266+
{{- end }}
267+
{{- end -}}

charts/invenio/templates/install-init-job.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ spec:
5656
secretKeyRef:
5757
name: invenio-secrets
5858
key: INVENIO_CSRF_SECRET_SALT
59+
{{- include "invenio.config.sentry" . | nindent 8 }}
5960
{{- if .Values.web.resources }}
6061
resources: {{- toYaml .Values.web.resources | nindent 10 }}
6162
{{- end }}
+5-4
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
{{- if and (.Values.invenio.sentry.enabled) (not .Values.invenio.sentry.existing_secret) }}
1+
{{- if and (.Values.invenio.sentry.enabled) (and (not .Values.invenio.sentry.existingSecret) (not .Values.invenio.sentry.existing_secret))}}
2+
{{- $dsn := .Values.invenio.sentry.dsn | required ".Values.invenio.sentry.dns is required if not secret is provided." -}}
23
---
34
apiVersion: v1
45
kind: Secret
56
type: Opaque
67
metadata:
7-
name: {{ .Values.invenio.sentry.secret_name }}
8+
name: sentry-secrets
89
labels:
9-
app: {{ .Values.invenio.sentry.secret_name }}
10+
app: sentry-secrets
1011
annotations:
1112
helm.sh/resource-policy: keep
1213
data:
13-
SENTRY_DSN: {{ .Values.invenio.sentry.dsn | b64enc }}
14+
{{ .Values.invenio.sentry.secretKeys.dsnKey }}: {{ $dsn | b64enc }}
1415
{{- end -}}

charts/invenio/templates/web-deployment.yaml

+1-7
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,7 @@ spec:
5252
secretKeyRef:
5353
name: invenio-secrets
5454
key: INVENIO_CSRF_SECRET_SALT
55-
{{- if .Values.invenio.sentry.enabled }}
56-
- name: INVENIO_SENTRY_DSN
57-
valueFrom:
58-
secretKeyRef:
59-
name: {{ .Values.invenio.sentry.secret_name }}
60-
key: SENTRY_DSN
61-
{{- end }}
55+
{{- include "invenio.config.sentry" . | nindent 8 }}
6256
{{- if .Values.invenio.datacite.enabled }}
6357
- name: INVENIO_DATACITE_USERNAME
6458
valueFrom:

charts/invenio/templates/worker-beat-deployment.yaml

+1-7
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,7 @@ spec:
6060
secretKeyRef:
6161
name: invenio-secrets
6262
key: INVENIO_CSRF_SECRET_SALT
63-
{{- if .Values.invenio.sentry.enabled }}
64-
- name: INVENIO_SENTRY_DSN
65-
valueFrom:
66-
secretKeyRef:
67-
name: {{ .Values.invenio.sentry.secret_name }}
68-
key: SENTRY_DSN
69-
{{- end }}
63+
{{- include "invenio.config.sentry" . | nindent 8 }}
7064
{{- if .Values.invenio.datacite.enabled }}
7165
- name: INVENIO_DATACITE_USERNAME
7266
valueFrom:

charts/invenio/templates/worker-deployment.yaml

+1-7
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,7 @@ spec:
5656
secretKeyRef:
5757
name: invenio-secrets
5858
key: INVENIO_CSRF_SECRET_SALT
59-
{{- if .Values.invenio.sentry.enabled }}
60-
- name: INVENIO_SENTRY_DSN
61-
valueFrom:
62-
secretKeyRef:
63-
name: {{ .Values.invenio.sentry.secret_name }}
64-
key: SENTRY_DSN
65-
{{- end }}
59+
{{- include "invenio.config.sentry" . | nindent 10 }}
6660
{{- if .Values.invenio.datacite.enabled }}
6761
- name: INVENIO_DATACITE_USERNAME
6862
valueFrom:

charts/invenio/values.yaml

+17-2
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,25 @@ invenio:
1919
default_users: [] # Requires invenio.init=true
2020
demo_data: false # Setting invenio.demo_data=true requires also setting default_users!
2121
sentry:
22+
## @param invenio.sentry.enabled Enable Sentry.io integration
23+
##
2224
enabled: false
23-
existing_secret: false
24-
secret_name: "sentry-secrets"
25+
## @param invenio.sentry.dns Sentry DSN, required if not secret is provided
26+
##
2527
dsn: ""
28+
## @param invenio.sentry.secret_name DEPRECATED: invenio.sentry.existingSecret instead
29+
##
30+
secret_name: "sentry-secrets"
31+
## @param invenio.sentry.existing_secret DEPRECATED: invenio.sentry.existingSecret instead
32+
##
33+
existing_secret: false
34+
## @param invenio.sentry.existingSecret Existing secret name for sentry's dsn
35+
##
36+
existingSecret: ""
37+
## @param invenio.sentry.secretKeys.dsnKey Name of key in existing secret to use for dns. Only used when `invenio.sentry.existingSecret` is set.
38+
##
39+
secretKeys:
40+
dsnKey: "SENTRY_DSN"
2641
datacite:
2742
enabled: false
2843
existing_secret: false

0 commit comments

Comments
 (0)