Skip to content

Commit c963ef2

Browse files
committed
incremental fixes
1 parent f35d859 commit c963ef2

14 files changed

Lines changed: 106 additions & 16 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,4 @@ package-lock.json
4949
.settings/*
5050
.env.bak
5151
cp.env.bak
52+
.generated.env

.local.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
SENTRIUS_VERSION=1.1.110
22
SENTRIUS_SSH_VERSION=1.1.19
3-
SENTRIUS_KEYCLOAK_VERSION=1.1.26
3+
SENTRIUS_KEYCLOAK_VERSION=1.1.31
44
SENTRIUS_AGENT_VERSION=1.1.19
55
SENTRIUS_AI_AGENT_VERSION=1.1.34
66
LLMPROXY_VERSION=1.0.22

.local.env.bak

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
SENTRIUS_VERSION=1.1.109
1+
SENTRIUS_VERSION=1.1.110
22
SENTRIUS_SSH_VERSION=1.1.19
3-
SENTRIUS_KEYCLOAK_VERSION=1.1.26
3+
SENTRIUS_KEYCLOAK_VERSION=1.1.30
44
SENTRIUS_AGENT_VERSION=1.1.19
55
SENTRIUS_AI_AGENT_VERSION=1.1.34
66
LLMPROXY_VERSION=1.0.22

docker/keycloak/process-realm-template.sh

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,10 @@ else
4141
fi
4242

4343
# Set default values for other placeholders
44-
export ROOT_URL="${ROOT_URL:-http://localhost:8080}"
45-
export REDIRECT_URIS="${REDIRECT_URIS:-http://localhost:8080}"
44+
# set in helm chart
45+
#export ROOT_URL="${ROOT_URL:-http://localhost:8080}"
46+
# set in helm chart
47+
#export REDIRECT_URIS="${REDIRECT_URIS:-http://localhost:8080}"
4648
export GOOGLE_CLIENT_ID="${GOOGLE_CLIENT_ID:-}"
4749
export GOOGLE_CLIENT_SECRET="${GOOGLE_CLIENT_SECRET:-}"
4850

@@ -58,12 +60,14 @@ sed -e "s|\${SENTRIUS_API_CLIENT_SECRET}|${SENTRIUS_API_CLIENT_SECRET}|g" \
5860
-e "s|\${SENTRIUS_LAUNCHER_CLIENT_SECRET}|${SENTRIUS_LAUNCHER_CLIENT_SECRET}|g" \
5961
-e "s|\${JAVA_AGENTS_CLIENT_SECRET}|${JAVA_AGENTS_CLIENT_SECRET}|g" \
6062
-e "s|\${AI_AGENT_ASSESSOR_CLIENT_SECRET}|${AI_AGENT_ASSESSOR_CLIENT_SECRET}|g" \
61-
-e "s|\${ROOT_URL}|${ROOT_URL}|g" \
62-
-e "s|\${REDIRECT_URIS}|${REDIRECT_URIS}|g" \
6363
-e "s|\${GOOGLE_CLIENT_ID}|${GOOGLE_CLIENT_ID}|g" \
6464
-e "s|\${GOOGLE_CLIENT_SECRET}|${GOOGLE_CLIENT_SECRET}|g" \
6565
"$REALM_TEMPLATE" > "$REALM_OUTPUT"
6666

67+
# these two are set helm chart
68+
# -e "s|\${ROOT_URL}|${ROOT_URL}|g" \
69+
# -e "s|\${REDIRECT_URIS}|${REDIRECT_URIS}|g" \
70+
6771
if [ $? -eq 0 ]; then
6872
echo "Realm template processed successfully: $REALM_OUTPUT"
6973
else
@@ -80,4 +84,4 @@ if command -v jq >/dev/null 2>&1; then
8084
echo "Generated realm JSON is valid"
8185
else
8286
echo "Note: jq not available, skipping JSON validation"
83-
fi
87+
fi

ops-scripts/local/deploy-helm.sh

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,32 @@ fi
2929
# --set sentrius-keycloak.image.pullPolicy="Never" \
3030
# --set sentrius-bad-ssh.image.pullPolicy="Never" \
3131

32+
# Load any previously generated password from .generated.env
33+
GENERATED_ENV_PATH="${SCRIPT_DIR}/../../.generated.env"
34+
if [[ -f "$GENERATED_ENV_PATH" ]]; then
35+
source "$GENERATED_ENV_PATH"
36+
fi
37+
38+
# Generate Keycloak DB password if not set and secret doesn't exist
39+
if [[ -z "$KEYCLOAK_DB_PASSWORD" ]]; then
40+
echo "🔎 Checking if keycloak secret already exists..."
41+
if kubectl get secret "${TENANT}-keycloak-secrets" --namespace "${TENANT}" >/dev/null 2>&1; then
42+
echo "✅ Found existing keycloak secret; extracting DB password..."
43+
KEYCLOAK_DB_PASSWORD=$(kubectl get secret "${TENANT}-keycloak-secrets" --namespace "${TENANT}" -o jsonpath="{.data.db-password}" | base64 --decode)
44+
45+
if [[ -z "$KEYCLOAK_DB_PASSWORD" ]]; then
46+
echo "❌ Secret exists but db-password is empty; exiting for safety"
47+
exit 1
48+
fi
49+
else
50+
echo "⚠️ No existing secret found; generating new Keycloak DB password..."
51+
KEYCLOAK_DB_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24)
52+
53+
# Persist it to .generated.env so it doesn't change between runs
54+
echo "KEYCLOAK_DB_PASSWORD=${KEYCLOAK_DB_PASSWORD}" > "$GENERATED_ENV_PATH"
55+
fi
56+
fi
57+
3258

3359
helm upgrade --install sentrius ./sentrius-chart --namespace ${TENANT} \
3460
--set tenant=${TENANT} \
@@ -41,6 +67,7 @@ helm upgrade --install sentrius ./sentrius-chart --namespace ${TENANT} \
4167
--set integrationproxy.image.repository="sentrius-integration-proxy" \
4268
--set integrationproxy.image.pullPolicy="Never" \
4369
--set sentrius.image.repository="sentrius" \
70+
--set keycloak.db.password="${KEYCLOAK_DB_PASSWORD}" \
4471
--set sentrius.image.pullPolicy="Never" \
4572
--set keycloak.image.pullPolicy="Never" \
4673
--set ssh.image.pullPolicy="Never" \

ops-scripts/local/shutdown-k8s.sh

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
TENANT="dev"
6+
RELEASE="sentrius"
7+
8+
echo "This will delete the Helm release '$RELEASE' and the entire TENANT '$TENANT'."
9+
read -p "Are you sure? (y/N): " CONFIRM
10+
11+
if [[ "$CONFIRM" != "y" && "$CONFIRM" != "Y" ]]; then
12+
echo "❌ Aborted."
13+
exit 1
14+
fi
15+
16+
echo "Uninstalling Helm release..."
17+
helm uninstall "$RELEASE" -n "$TENANT" || echo "Helm release not found."
18+
19+
echo "🧹 Deleting TENANT '$TENANT'..."
20+
kubectl delete TENANT "$TENANT" || echo "TENANT not found."
21+
22+
echo "⏳ Waiting for TENANT deletion to complete..."
23+
while kubectl get TENANT "$TENANT" &> /dev/null; do
24+
echo " ... still deleting ..."
25+
sleep 2
26+
done
27+
28+
echo "TENANT '$TENANT' deleted."
29+
30+
echo "Done."

sentrius-chart/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/templates/agent-deployment.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,11 @@ spec:
4343
secretKeyRef:
4444
name: {{ .Release.Name }}-db-secret
4545
key: keystore-password
46+
- name: KEYCLOAK_CLIENT_SECRET
47+
valueFrom:
48+
secretKeyRef:
49+
name: {{ .Release.Name }}-oauth2-secrets
50+
key: java-agents-client-secret
4651
volumes:
4752
- name: config-volume
4853
configMap:

sentrius-chart/templates/ai-agent-deployment.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ spec:
2727
volumeMounts:
2828
- name: config-volume
2929
mountPath: /config
30+
env:
31+
- name: KEYCLOAK_CLIENT_SECRET
32+
valueFrom:
33+
secretKeyRef:
34+
name: {{ .Release.Name }}-oauth2-secrets
35+
key: sentriusaiagent-client-secret
3036
volumes:
3137
- name: config-volume
3238
configMap:

sentrius-chart/templates/configmap.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ data:
7474
spring.kafka.properties.max.block.ms=500
7575
spring.kafka.properties.metadata.max.age.ms=10000
7676
spring.kafka.properties.retry.backoff.ms=1000
77+
bootstrap-servers=sentrius-kafka:9092:
7778
ai-agent-application.properties: |
7879
spring.main.web-application-type=servlet
7980
spring.thymeleaf.enabled=true
@@ -131,6 +132,7 @@ data:
131132
spring.kafka.properties.max.block.ms=500
132133
spring.kafka.properties.metadata.max.age.ms=10000
133134
spring.kafka.properties.retry.backoff.ms=1000
135+
bootstrap-servers=sentrius-kafka:9092:
134136
135137
analysis-agent-application.properties: |
136138
keystore.file=sso.jceks
@@ -201,6 +203,7 @@ data:
201203
# Reliability
202204
spring.kafka.producer.retries=5
203205
spring.kafka.producer.acks=all
206+
bootstrap-servers=sentrius-kafka:9092:
204207
205208
# Timeout tuning
206209
spring.kafka.producer.request-timeout-ms=10000

0 commit comments

Comments
 (0)