From ce8bd8d64ea2728dd97d903c43b3e3c659fc1d0e Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Mon, 19 Jan 2026 16:24:02 +0100 Subject: [PATCH] initial --- .gitignore | 2 ++ ENVDB | 7 ++++++ encrypt-secrets.sh | 4 ++++ install.sh | 25 +++++++++++++++++++++ namespace | 1 + roll-db-credential.sh | 32 +++++++++++++++++++++++++++ secrets.asc | 8 +++++++ values.yml | 51 +++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 130 insertions(+) create mode 100644 .gitignore create mode 100644 ENVDB create mode 100755 encrypt-secrets.sh create mode 100755 install.sh create mode 100644 namespace create mode 100755 roll-db-credential.sh create mode 100644 secrets.asc create mode 100644 values.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..012e0c3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +secrets.txt + diff --git a/ENVDB b/ENVDB new file mode 100644 index 0000000..0e71642 --- /dev/null +++ b/ENVDB @@ -0,0 +1,7 @@ +DBNAMESPACE=database1 +DEPLOYNAME=database +PGUSER=`kubectl get secret -n $DBNAMESPACE $DEPLOYNAME -o jsonpath="{.data.superuser-username}" | base64 --decode` +PGHOST=`kubectl get services $DEPLOYNAME -n $DBNAMESPACE -o jsonpath="{.status.loadBalancer.ingress[0].ip}"` +PGPASSWORD=`kubectl get secret -n $DBNAMESPACE $DEPLOYNAME -o jsonpath="{.data.superuser-password}" | base64 --decode` +PGSSLMODE=require +export PGUSER PGHOST PGPASSWORD PGSSLMODE diff --git a/encrypt-secrets.sh b/encrypt-secrets.sh new file mode 100755 index 0000000..c3e991c --- /dev/null +++ b/encrypt-secrets.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +gpg --pinentry-mode=loopback --symmetric --cipher-algo AES256 --armor --output secrets.asc secrets.txt + diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..ee803e0 --- /dev/null +++ b/install.sh @@ -0,0 +1,25 @@ +#!/bin/bash + + +VERSION=0.13.0 +NAMESPACE=$(cat namespace) + +. ./ENVDB + +kubectl create namespace $NAMESPACE || echo "namespace already exists" + +SECRETS_PLAINTEXT=$(mktemp) +gpg --pinentry-mode=loopback --decrypt --output $SECRETS_PLAINTEXT secrets.asc +kubectl create secret generic keycloak-secrets \ + --from-env-file=$SECRETS_PLAINTEXT \ + --dry-run=client -o yaml | \ + kubectl apply -f - -n $NAMESPACE +rm $SECRETS_PLAINTEXT + + +./roll-db-credential.sh + + +helm upgrade --install keycloak2 -f values.yml oci://registry-1.docker.io/cloudpirates/keycloak --version $VERSION --namespace=$NAMESPACE + + diff --git a/namespace b/namespace new file mode 100644 index 0000000..ddb9ebf --- /dev/null +++ b/namespace @@ -0,0 +1 @@ +keycloak2 diff --git a/roll-db-credential.sh b/roll-db-credential.sh new file mode 100755 index 0000000..7c6814a --- /dev/null +++ b/roll-db-credential.sh @@ -0,0 +1,32 @@ +#!/bin/bash + + + +DBNAMESPACE=database1 +DEPLOYNAME=database +PGUSER=`kubectl get secret -n $DBNAMESPACE $DEPLOYNAME -o jsonpath="{.data.superuser-username}" | base64 --decode` +PGHOST=`kubectl get services $DEPLOYNAME -n $DBNAMESPACE -o jsonpath="{.status.loadBalancer.ingress[0].ip}"` +PGPASSWORD=`kubectl get secret -n $DBNAMESPACE $DEPLOYNAME -o jsonpath="{.data.superuser-password}" | base64 --decode` +PGSSLMODE=require +export PGUSER PGHOST PGPASSWORD PGSSLMODE + +DB_USER=keycloak2 +DB_PASSWD=$(openssl rand -base64 24) + +NAMESPACE=$(cat namespace) + +psql <