Skip to content

Commit 7716ee5

Browse files
Copilotphrocker
andcommitted
Add secret management to sentrius-chart-launcher - implement OAuth2, Keycloak, and Neo4j secrets templates with environment variable integration
Co-authored-by: phrocker <1781585+phrocker@users.noreply.github.com>
1 parent c963ef2 commit 7716ee5

6 files changed

Lines changed: 91 additions & 3 deletions

File tree

sentrius-chart-launcher/templates/_helpers.tpl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,9 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
1717
app.kubernetes.io/name: sentrius-launcher-service
1818
app.kubernetes.io/instance: {{ .Release.Name }}
1919
app.kubernetes.io/managed-by: {{ .Release.Service }}
20-
{{- end -}}
20+
{{- end -}}
21+
{{- define "keycloak.requireDbPassword" -}}
22+
{{- if not .Values.keycloak.db.password }}
23+
{{- fail "Error: keycloak.db.password must be specified or generated externally." }}
24+
{{- end }}
25+
{{- end }}

sentrius-chart-launcher/templates/configmap.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ data:
3737
agent.api.url={{ .Values.sentriusDomain }}
3838
# Keycloak configuration
3939
spring.security.oauth2.client.registration.keycloak.client-id={{ .Values.launcherservice.oauth2.client_id }}
40-
spring.security.oauth2.client.registration.keycloak.client-secret={{ .Values.launcherservice.oauth2.client_secret }}
40+
spring.security.oauth2.client.registration.keycloak.client-secret=${KEYCLOAK_CLIENT_SECRET}
4141
spring.security.oauth2.client.registration.keycloak.authorization-grant-type={{ .Values.launcherservice.oauth2.authorization_grant_type }}
4242
spring.security.oauth2.client.registration.keycloak.redirect-uri={{ .Values.sentriusDomain }}/login/oauth2/code/keycloak
4343
spring.security.oauth2.client.registration.keycloak.scope={{ .Values.launcherservice.oauth2.scope }}
@@ -95,7 +95,7 @@ data:
9595
9696
# Keycloak configuration
9797
spring.security.oauth2.client.registration.keycloak.client-id={{ .Values.launcherservice.oauth2.client_id }}
98-
spring.security.oauth2.client.registration.keycloak.client-secret={{ .Values.launcherservice.oauth2.client_secret }}
98+
spring.security.oauth2.client.registration.keycloak.client-secret=${KEYCLOAK_CLIENT_SECRET}
9999
spring.security.oauth2.client.registration.keycloak.authorization-grant-type={{ .Values.launcherservice.oauth2.authorization_grant_type }}
100100
spring.security.oauth2.client.registration.keycloak.redirect-uri={{ .Values.sentriusDomain }}/login/oauth2/code/keycloak
101101
spring.security.oauth2.client.registration.keycloak.scope={{ .Values.launcherservice.oauth2.scope }}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{{- include "keycloak.requireDbPassword" . }}
2+
3+
apiVersion: v1
4+
kind: Secret
5+
metadata:
6+
name: {{ .Release.Name }}-keycloak-secrets
7+
type: Opaque
8+
data:
9+
# Keycloak Admin Password
10+
{{- if .Values.keycloak.adminPassword }}
11+
admin-password: {{ .Values.keycloak.adminPassword | b64enc }}
12+
{{- else }}
13+
admin-password: {{ randAlphaNum 24 | b64enc }}
14+
{{- end }}
15+
16+
# Keycloak Client Secret
17+
{{- if .Values.keycloak.clientSecret }}
18+
client-secret: {{ .Values.keycloak.clientSecret | b64enc }}
19+
{{- else }}
20+
client-secret: {{ randAlphaNum 32 | b64enc }}
21+
{{- end }}
22+
# Keycloak Database Password
23+
db-password: {{ .Values.keycloak.db.password | b64enc }}

sentrius-chart-launcher/templates/launcher-deployment.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@ spec:
2929
volumeMounts:
3030
- name: config-volume
3131
mountPath: /config
32+
env:
33+
- name: KEYCLOAK_CLIENT_SECRET
34+
valueFrom:
35+
secretKeyRef:
36+
name: {{ .Release.Name }}-oauth2-secrets
37+
key: launcherservice-client-secret
3238
volumes:
3339
- name: config-volume
3440
configMap:
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{{- if .Values.neo4j.enabled }}
2+
apiVersion: v1
3+
kind: Secret
4+
metadata:
5+
name: {{ .Release.Name }}-neo4j-secrets
6+
type: Opaque
7+
data:
8+
# Neo4j Authentication String (username/password)
9+
{{- if .Values.neo4j.env.NEO4J_AUTH }}
10+
neo4j-auth: {{ .Values.neo4j.env.NEO4J_AUTH | b64enc }}
11+
{{- else }}
12+
neo4j-auth: {{ printf "neo4j/%s" (randAlphaNum 16) | b64enc }}
13+
{{- end }}
14+
{{- end }}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
name: {{ .Release.Name }}-oauth2-secrets
5+
type: Opaque
6+
data:
7+
# Sentrius OAuth2 Client Secret
8+
{{- if .Values.sentrius.oauth2.client_secret }}
9+
sentrius-client-secret: {{ .Values.sentrius.oauth2.client_secret | b64enc }}
10+
{{- else }}
11+
sentrius-client-secret: {{ randAlphaNum 32 | b64enc }}
12+
{{- end }}
13+
14+
# LLM Proxy OAuth2 Client Secret
15+
{{- if .Values.llmproxy.oauth2.client_secret }}
16+
llmproxy-client-secret: {{ .Values.llmproxy.oauth2.client_secret | b64enc }}
17+
{{- else }}
18+
llmproxy-client-secret: {{ randAlphaNum 32 | b64enc }}
19+
{{- end }}
20+
21+
# Sentrius Agent OAuth2 Client Secret
22+
{{- if .Values.sentriusagent.oauth2.client_secret }}
23+
sentriusagent-client-secret: {{ .Values.sentriusagent.oauth2.client_secret | b64enc }}
24+
{{- else }}
25+
sentriusagent-client-secret: {{ randAlphaNum 32 | b64enc }}
26+
{{- end }}
27+
28+
# Sentrius AI Agent OAuth2 Client Secret
29+
{{- if .Values.sentriusaiagent.oauth2.client_secret }}
30+
sentriusaiagent-client-secret: {{ .Values.sentriusaiagent.oauth2.client_secret | b64enc }}
31+
{{- else }}
32+
sentriusaiagent-client-secret: {{ randAlphaNum 32 | b64enc }}
33+
{{- end }}
34+
35+
# Launcher Service OAuth2 Client Secret
36+
{{- if .Values.launcherservice.oauth2.client_secret }}
37+
launcherservice-client-secret: {{ .Values.launcherservice.oauth2.client_secret | b64enc }}
38+
{{- else }}
39+
launcherservice-client-secret: {{ randAlphaNum 32 | b64enc }}
40+
{{- end }}

0 commit comments

Comments
 (0)