Files
solidtime-chart/templates/job-generate-keys.yaml

42 lines
1.4 KiB
YAML
Raw Normal View History

2025-12-12 11:08:55 +01:00
apiVersion: batch/v1
kind: Job
metadata:
name: {{ include "solidtime.fullname" . }}-keygen
annotations:
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
spec:
template:
spec:
serviceAccountName: {{ include "solidtime.fullname" . }}-keygen
restartPolicy: OnFailure
containers:
- name: keygen
image: bitnami/kubectl:latest
command:
- /bin/sh
- -c
- |
SECRET_NAME="solidtime-app-secrets"
# 1. Check if secret exists
if kubectl get secret $SECRET_NAME; then
echo "Keys already exist. Skipping generation."
exit 0
fi
echo "Generating keys..."
# Generate Passport Keys
openssl genrsa -out private.key 4096
openssl rsa -in private.key -pubout -out public.key
# Generate App Key (base64 encoded random 32 chars)
APP_KEY="base64:$(openssl rand -base64 32)"
# 2. Create Secret with ALL keys
# We use --from-file for RSA keys to preserve newlines correctly
kubectl create secret generic $SECRET_NAME \
--from-literal=APP_KEY="$APP_KEY" \
--from-file=PASSPORT_PRIVATE_KEY=private.key \
--from-file=PASSPORT_PUBLIC_KEY=public.key