Skip to content

Commit 0f45dcd

Browse files
Copilotphrocker
andcommitted
Enable TLS support for minikube in helm charts - Fix ingress template and add local TLS deployment
Co-authored-by: phrocker <1781585+phrocker@users.noreply.github.com>
1 parent cfb4032 commit 0f45dcd

6 files changed

Lines changed: 107 additions & 28 deletions

File tree

ops-scripts/local/deploy-helm.sh

Lines changed: 63 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,64 @@
22

33
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
44

5-
65
source ${SCRIPT_DIR}/base.sh
76
source ${SCRIPT_DIR}/../../.local.env
87

98
TENANT=dev
9+
ENABLE_TLS=false
10+
11+
# Parse command line arguments
12+
while [[ $# -gt 0 ]]; do
13+
case $1 in
14+
--tls)
15+
ENABLE_TLS=true
16+
shift
17+
;;
18+
--tenant)
19+
TENANT="$2"
20+
shift 2
21+
;;
22+
*)
23+
echo "Unknown option: $1"
24+
echo "Usage: $0 [--tls] [--tenant TENANT_NAME]"
25+
echo " --tls: Enable TLS/SSL for secure transport"
26+
echo " --tenant: Specify tenant name (default: dev)"
27+
exit 1
28+
;;
29+
esac
30+
done
31+
1032
if [[ -z "$TENANT" ]]; then
11-
echo "Must provide first argument for tenant name" 1>&2
33+
echo "Must provide tenant name" 1>&2
1234
exit 1
1335
fi
1436

37+
# Configure TLS settings
38+
if [[ "$ENABLE_TLS" == "true" ]]; then
39+
echo "Deploying with TLS enabled..."
40+
echo "Note: TLS requires cert-manager to be installed in your cluster"
41+
echo "For minikube, you can install cert-manager with:"
42+
echo " kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.0/cert-manager.yaml"
43+
SUBDOMAIN="sentrius-${TENANT}.local"
44+
KEYCLOAK_SUBDOMAIN="keycloak-${TENANT}.local"
45+
KEYCLOAK_HOSTNAME="${KEYCLOAK_SUBDOMAIN}"
46+
KEYCLOAK_DOMAIN="https://${KEYCLOAK_SUBDOMAIN}"
47+
SENTRIUS_DOMAIN="https://${SUBDOMAIN}"
48+
CERTIFICATES_ENABLED="true"
49+
INGRESS_TLS_ENABLED="true"
50+
ENVIRONMENT="local"
51+
else
52+
echo "Deploying with HTTP (no TLS)..."
53+
SUBDOMAIN="sentrius-sentrius"
54+
KEYCLOAK_SUBDOMAIN="sentrius-keycloak"
55+
KEYCLOAK_HOSTNAME="sentrius-keycloak:8081"
56+
KEYCLOAK_DOMAIN="http://sentrius-keycloak:8081"
57+
SENTRIUS_DOMAIN="http://sentrius-sentrius:8080"
58+
CERTIFICATES_ENABLED="false"
59+
INGRESS_TLS_ENABLED="false"
60+
ENVIRONMENT="local"
61+
fi
62+
1563
# Check if namespace exists
1664
kubectl get namespace ${TENANT} >/dev/null 2>&1
1765
if [[ $? -ne 0 ]]; then
@@ -32,11 +80,14 @@ fi
3280

3381
helm upgrade --install sentrius ./sentrius-chart --namespace ${TENANT} \
3482
--set tenant=${TENANT} \
35-
--set subdomain="sentrius-sentrius" \
36-
--set keycloakSubdomain="sentrius-keycloak" \
37-
--set keycloakHostname="sentrius-keycloak:8081" \
38-
--set keycloakDomain="http://sentrius-keycloak:8081" \
39-
--set sentriusDomain="http://sentrius-sentrius:8080" \
83+
--set environment=${ENVIRONMENT} \
84+
--set subdomain="${SUBDOMAIN}" \
85+
--set keycloakSubdomain="${KEYCLOAK_SUBDOMAIN}" \
86+
--set keycloakHostname="${KEYCLOAK_HOSTNAME}" \
87+
--set keycloakDomain="${KEYCLOAK_DOMAIN}" \
88+
--set sentriusDomain="${SENTRIUS_DOMAIN}" \
89+
--set certificates.enabled=${CERTIFICATES_ENABLED} \
90+
--set ingress.tlsEnabled=${INGRESS_TLS_ENABLED} \
4091
--set launcherFQDN=sentrius-agents-launcherservice.${TENANT}-agents.svc.cluster.local \
4192
--set llmproxy.image.repository="sentrius-llmproxy" \
4293
--set llmproxy.image.pullPolicy="Never" \
@@ -62,11 +113,11 @@ helm upgrade --install sentrius-agents ./sentrius-chart-launcher --namespace ${T
62113
--set keycloakFQDN=sentrius-keycloak.${TENANT}.svc.cluster.local \
63114
--set sentriusFQDN=sentrius-sentrius.${TENANT}.svc.cluster.local \
64115
--set llmProxyFQDN=sentrius-llmproxy.${TENANT}.svc.cluster.local \
65-
--set subdomain="sentrius-sentrius" \
66-
--set keycloakSubdomain="sentrius-keycloak" \
67-
--set keycloakHostname="sentrius-keycloak:8081" \
68-
--set keycloakDomain="http://sentrius-keycloak:8081" \
69-
--set sentriusDomain="http://sentrius-sentrius:8080" \
116+
--set subdomain="${SUBDOMAIN}" \
117+
--set keycloakSubdomain="${KEYCLOAK_SUBDOMAIN}" \
118+
--set keycloakHostname="${KEYCLOAK_HOSTNAME}" \
119+
--set keycloakDomain="${KEYCLOAK_DOMAIN}" \
120+
--set sentriusDomain="${SENTRIUS_DOMAIN}" \
70121
--set llmproxy.image.repository="sentrius-llmproxy" \
71122
--set llmproxy.image.pullPolicy="Never" \
72123
--set sentrius.image.repository="sentrius" \

sentrius-chart-launcher/values.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ namespace: default
55
environment: "gke" # Can be "gke", "aws", "azure", "local"
66

77
tenant: sentrius-demo
8-
sentriusNamespace: "{{ .Values.tenant }}"
8+
sentriusNamespace: "sentrius-demo"
99
baseRelease: sentrius-demo
10-
subdomain: "{{ .Values.tenant }}.sentrius.cloud"
11-
keycloakSubdomain: keycloak.{{ .Values.subdomain }}
12-
keycloakHostname: "{{ .Values.keycloakSubdomain }}"
13-
keycloakDomain: https://{{ .Values.keycloakSubdomain }}
14-
sentriusDomain: https://{{ .Values.subdomain }}
10+
subdomain: "sentrius-demo.sentrius.cloud"
11+
keycloakSubdomain: "keycloak.sentrius-demo.sentrius.cloud"
12+
keycloakHostname: "keycloak.sentrius-demo.sentrius.cloud"
13+
keycloakDomain: https://keycloak.sentrius-demo.sentrius.cloud
14+
sentriusDomain: https://sentrius-demo.sentrius.cloud
1515
keycloakFQDN: sentrius-keycloak.dev.svc.cluster.local
1616
sentriusFQDN: sentrius-sentrius.dev.svc.cluster.local
1717
llmProxyFQDN: sentrius-llmproxy.dev.svc.cluster.local

sentrius-chart/templates/ingress.yaml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ metadata:
55
name: managed-cert-ingress-{{ .Values.tenant }}
66
namespace: {{ .Values.tenant }}
77
annotations:
8-
#kubernetes.io/ingress.class: {{ .Values.ingress.class }}
98
{{- if eq .Values.environment "gke" }}
109
{{- range $key, $value := .Values.ingress.annotations.gke }}
1110
{{ $key }}: "{{ $value }}"
@@ -23,12 +22,12 @@ spec:
2322
{{- if .Values.ingress.tlsEnabled }}
2423
tls:
2524
- hosts:
26-
- {{ .Values.keycloakSubdomain }}
27-
- {{ .Values.subdomain }}
25+
- "{{ .Values.keycloakSubdomain }}"
26+
- "{{ .Values.subdomain }}"
2827
secretName: wildcard-cert-{{ .Values.tenant }}
2928
{{- end }}
3029
rules:
31-
- host: {{ .Values.keycloakSubdomain }}
30+
- host: "{{ .Values.keycloakSubdomain }}"
3231
http:
3332
paths:
3433
- path: /
@@ -38,7 +37,7 @@ spec:
3837
name: {{ .Release.Name }}-keycloak
3938
port:
4039
number: 8081
41-
- host: {{ .Values.subdomain }}
40+
- host: "{{ .Values.subdomain }}"
4241
http:
4342
paths:
4443
- path: /

sentrius-chart/templates/managed-cert.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,24 @@ spec:
2424
- "{{ .Values.tenant }}.sentrius.cloud"
2525
- "keycloak.{{ .Values.tenant }}.sentrius.cloud"
2626
{{- end }}
27+
{{- else if and (eq .Values.environment "local") (.Values.certificates.enabled) }}
28+
---
29+
# Self-signed certificate for local development
30+
apiVersion: cert-manager.io/v1
31+
kind: Certificate
32+
metadata:
33+
name: wildcard-cert-{{ .Values.tenant }}
34+
namespace: {{ .Values.tenant }}
35+
spec:
36+
secretName: wildcard-cert-{{ .Values.tenant }}
37+
issuerRef:
38+
name: selfsigned-issuer
39+
kind: ClusterIssuer
40+
commonName: "{{ .Values.subdomain }}"
41+
dnsNames:
42+
- "{{ .Values.keycloakSubdomain }}"
43+
- "{{ .Values.subdomain }}"
44+
subject:
45+
organizations:
46+
- sentrius-local
2747
{{- end }}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{{- if and (eq .Values.environment "local") (.Values.certificates.enabled) }}
2+
---
3+
apiVersion: cert-manager.io/v1
4+
kind: ClusterIssuer
5+
metadata:
6+
name: selfsigned-issuer
7+
spec:
8+
selfSigned: {}
9+
{{- end }}

sentrius-chart/values.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ namespace: default
55
environment: "gke" # Can be "gke", "aws", "azure", "local"
66

77
tenant: sentrius-demo
8-
subdomain: "{{ .Values.tenant }}.sentrius.cloud"
9-
keycloakSubdomain: keycloak.{{ .Values.subdomain }}
10-
keycloakHostname: "{{ .Values.keycloakSubdomain }}"
11-
keycloakDomain: https://{{ .Values.keycloakSubdomain }}
12-
sentriusDomain: https://{{ .Values.subdomain }}
8+
subdomain: "sentrius-demo.sentrius.cloud"
9+
keycloakSubdomain: "keycloak.sentrius-demo.sentrius.cloud"
10+
keycloakHostname: "keycloak.sentrius-demo.sentrius.cloud"
11+
keycloakDomain: https://keycloak.sentrius-demo.sentrius.cloud
12+
sentriusDomain: https://sentrius-demo.sentrius.cloud
1313
launcherFQDN: sentrius-launcher-service.dev.svc.cluster.local
1414

1515

0 commit comments

Comments
 (0)