Skip to content

Commit 571b091

Browse files
committed
Merge branch 'main' into feat/replica-urls-json
2 parents af7cf17 + 962a91b commit 571b091

File tree

16 files changed

+237
-68
lines changed

16 files changed

+237
-68
lines changed

.github/workflows/release.yaml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
version: v3.5.4
2424

2525
- name: Add chart repo dependencies
26-
# Note: this repos should match whith the repos set in ct.yaml
26+
# Note: this repos should match with the repos set in ct.yaml
2727
# See https://github.com/Flagsmith/flagsmith-charts/issues/105
2828
run: |
2929
helm repo add stable https://charts.helm.sh/stable
@@ -44,9 +44,3 @@ jobs:
4444
uses: helm/[email protected]
4545
env:
4646
CR_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
47-
48-
- name: Check if release was published
49-
if: steps.chart-releaser.outputs.changed_charts == ''
50-
run: |
51-
echo "No new releases were published. If a tag and/or release already exist for this version but they have not been published to the Helm repository, delete them and run this workflow again."
52-
exit 1

charts/flagsmith/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ apiVersion: v2
22
name: flagsmith
33
description: Flagsmith
44
type: application
5-
version: 0.72.0
6-
appVersion: 2.169.0
5+
version: 0.73.1
6+
appVersion: 2.171.0
77
dependencies:
88
- name: postgresql
99
repository: https://charts.bitnami.com/bitnami

charts/flagsmith/templates/_api_environment.yaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ Replica database URLs can be passed in different ways:
3939
- name: DJANGO_SECRET_KEY
4040
valueFrom:
4141
secretKeyRef:
42-
name: django-secret-key
43-
key: django-secret-key
42+
{{ include "flagsmith.api.secretKeySecretRef" . | nindent 6 }}
4443
{{- if .Values.influxdb2.enabled }}
4544
- name: INFLUXDB_URL
4645
value: http://{{- template "flagsmith.influxdb.hostname" . -}}:80
@@ -136,8 +135,7 @@ Replica database URLs can be passed in different ways:
136135
- name: SSE_AUTHENTICATION_TOKEN
137136
valueFrom:
138137
secretKeyRef:
139-
name: {{ include "flagsmith.fullname" . }}-sse
140-
key: SSE_AUTHENTICATION_TOKEN
138+
{{ include "flagsmith.sse.authenticationTokenSecretRef" . | nindent 6}}
141139
- name: SSE_SERVER_BASE_URL
142140
value: http://{{ include "flagsmith.fullname" . }}-sse.{{ .Release.Namespace }}:{{ .Values.service.sse.port }}
143141
{{- end }}

charts/flagsmith/templates/_helpers.tpl

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,6 @@ replicas: {{ . }}
315315
{{- end }}
316316
{{- end }}
317317

318-
319318
{{/*
320319
Real-time flag updates (SSE)
321320
*/}}
@@ -344,3 +343,29 @@ Determine database URL for direct URL format or component parts
344343
{{- end -}}
345344
{{- end -}}
346345
{{- end -}}
346+
347+
{{- define "flagsmith.api.secretKeySecretName" -}}
348+
{{- if .Values.api.secretKeyFromExistingSecret.enabled -}}
349+
{{- .Values.api.secretKeyFromExistingSecret.name -}}
350+
{{- else }}
351+
{{- printf "%s-django-secret-key" (include "flagsmith.fullname" .) -}}
352+
{{- end }}
353+
{{- end }}
354+
355+
{{- define "flagsmith.api.secretKeySecretRef" -}}
356+
name: {{ include "flagsmith.api.secretKeySecretName" . }}
357+
key: {{ default "django-secret-key" .Values.api.secretKeyFromExistingSecret.key }}
358+
{{- end }}
359+
360+
{{- define "flagsmith.sse.authenticationTokenSecretName" -}}
361+
{{- if .Values.sse.authenticationTokenFromExistingSecret.enabled -}}
362+
{{- .Values.sse.authenticationTokenFromExistingSecret.name -}}
363+
{{- else }}
364+
{{- printf "%s-sse-authentication-token" (include "flagsmith.fullname" .) -}}
365+
{{- end }}
366+
{{- end }}
367+
368+
{{- define "flagsmith.sse.authenticationTokenSecretRef" -}}
369+
name: {{ include "flagsmith.sse.authenticationTokenSecretName" . }}
370+
key: {{ default "sse-authentication-token" .Values.sse.authenticationTokenFromExistingSecret.key }}
371+
{{- end }}

charts/flagsmith/templates/_sse_environment.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,4 @@
1212
- name: SSE_AUTHENTICATION_TOKEN
1313
valueFrom:
1414
secretKeyRef:
15-
name: {{ include "flagsmith.fullname" . }}-sse
16-
key: SSE_AUTHENTICATION_TOKEN
15+
{{ include "flagsmith.sse.authenticationTokenSecretRef" . | nindent 6 }}

charts/flagsmith/templates/deployment-sse.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ spec:
2323
template:
2424
metadata:
2525
annotations:
26-
checksum/secrets-sse: {{ include (print $.Template.BasePath "/secrets-sse.yaml") . | sha256sum }}
2726
{{- if .Values.sse.podAnnotations }}
2827
{{ toYaml .Values.sse.podAnnotations | nindent 8 }}
2928
{{- end }}

charts/flagsmith/templates/deployment-task-processor.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ spec:
8383
- ./scripts/run-docker.sh
8484
args:
8585
- run-task-processor
86+
ports:
87+
- containerPort: {{ .Values.service.taskProcessor.port }}
8688
env: {{ include (print $.Template.BasePath "/_task_processor_environment.yaml") . | nindent 8 }}
8789
livenessProbe:
8890
failureThreshold: {{ .Values.taskProcessor.livenessProbe.failureThreshold }}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{{- if not .Values.api.secretKeyFromExistingSecret.enabled -}}
2+
apiVersion: batch/v1
3+
kind: Job
4+
metadata:
5+
name: {{ include "flagsmith.api.secretKeySecretName" . }}
6+
namespace: {{ .Release.Namespace | quote }}
7+
labels:
8+
{{- include "flagsmith.labels" . | nindent 4 }}
9+
app.kubernetes.io/component: django-secret-init
10+
annotations:
11+
"helm.sh/hook": pre-install,pre-upgrade
12+
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
13+
spec:
14+
ttlSecondsAfterFinished: 60
15+
template:
16+
metadata:
17+
name: {{ include "flagsmith.api.secretKeySecretName" . }}
18+
labels:
19+
{{- include "flagsmith.labels" . | nindent 8 }}
20+
app.kubernetes.io/component: django-secret-init
21+
spec:
22+
restartPolicy: OnFailure
23+
serviceAccountName: {{ include "flagsmith.api.secretKeySecretName" . }}
24+
containers:
25+
- name: secret-creator
26+
image: bitnami/kubectl:latest
27+
imagePullPolicy: IfNotPresent
28+
command:
29+
- /bin/sh
30+
- -c
31+
- |
32+
SECRET_NAME={{ include "flagsmith.api.secretKeySecretName" . }}
33+
NAMESPACE={{ .Release.Namespace }}
34+
echo "Checking for secret $SECRET_NAME in namespace $NAMESPACE"
35+
# Attempt to get the secret; if it fails (exit code != 0), create it.
36+
if ! kubectl get secret "$SECRET_NAME" -n "$NAMESPACE" -o name; then
37+
echo "Secret $SECRET_NAME not found. Creating..."
38+
# Generate a 64-character hex key (32 bytes)
39+
GENERATED_KEY=$(openssl rand -hex 32)
40+
kubectl create secret generic "$SECRET_NAME" -n "$NAMESPACE" \
41+
--from-literal=django-secret-key="$GENERATED_KEY" \
42+
--dry-run=client -o yaml | kubectl apply -f -
43+
echo "Secret $SECRET_NAME created."
44+
else
45+
echo "Secret $SECRET_NAME already exists. No action taken."
46+
fi
47+
{{- end }}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{{- if not .Values.api.secretKeyFromExistingSecret.enabled -}}
2+
apiVersion: rbac.authorization.k8s.io/v1
3+
kind: Role
4+
metadata:
5+
name: {{ include "flagsmith.api.secretKeySecretName" . }}
6+
namespace: {{ .Release.Namespace | quote }}
7+
labels:
8+
{{- include "flagsmith.labels" . | nindent 4 }}
9+
annotations:
10+
"helm.sh/hook": pre-install,pre-upgrade
11+
"helm.sh/hook-delete-policy": before-hook-creation
12+
rules:
13+
- apiGroups: [""]
14+
resources: ["secrets"]
15+
verbs: ["get", "create"]
16+
---
17+
apiVersion: rbac.authorization.k8s.io/v1
18+
kind: RoleBinding
19+
metadata:
20+
name: {{ include "flagsmith.api.secretKeySecretName" . }}
21+
namespace: {{ .Release.Namespace | quote }}
22+
labels:
23+
{{- include "flagsmith.labels" . | nindent 4 }}
24+
annotations:
25+
"helm.sh/hook": pre-install,pre-upgrade
26+
"helm.sh/hook-delete-policy": before-hook-creation
27+
roleRef:
28+
apiGroup: rbac.authorization.k8s.io
29+
kind: Role
30+
name: {{ include "flagsmith.api.secretKeySecretName" . }}
31+
subjects:
32+
- kind: ServiceAccount
33+
name: {{ include "flagsmith.api.secretKeySecretName" . }}
34+
namespace: {{ .Release.Namespace | quote }}
35+
{{- end }}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{{- if not .Values.api.secretKeyFromExistingSecret.enabled -}}
2+
apiVersion: v1
3+
kind: ServiceAccount
4+
metadata:
5+
name: {{ include "flagsmith.api.secretKeySecretName" . }}
6+
namespace: {{ .Release.Namespace | quote }}
7+
labels:
8+
{{- include "flagsmith.labels" . | nindent 4 }}
9+
annotations:
10+
"helm.sh/hook": pre-install,pre-upgrade
11+
"helm.sh/hook-delete-policy": before-hook-creation
12+
{{- end }}

0 commit comments

Comments
 (0)