34 lines
2.0 KiB
Bash
Executable File
34 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
cd "$(dirname "${BASH_SOURCE[0]}")"
|
|
[[ $(kubectl config current-context) == kubernetes-admin@kubernetes ]] || { echo 'Wrong Kubernetes context' >&2; exit 1; }
|
|
kubectl create namespace paperless-ngx --dry-run=client -o yaml | kubectl apply -f -
|
|
if ! kubectl -n paperless-ngx get secret paperless-secret-key >/dev/null 2>&1; then
|
|
key=$(openssl rand -base64 64)
|
|
kubectl -n paperless-ngx create secret generic paperless-secret-key --from-literal="secret-key=${key}"
|
|
fi
|
|
if ! kubectl -n paperless-ngx get secret paperless-postgres >/dev/null 2>&1; then
|
|
postgres_admin_password=$(openssl rand -hex 32)
|
|
postgres_app_password=$(openssl rand -hex 32)
|
|
kubectl -n paperless-ngx create secret generic paperless-postgres \
|
|
--from-literal=POSTGRES_USER=postgres \
|
|
--from-literal="POSTGRES_PASSWORD=${postgres_admin_password}" \
|
|
--from-literal=USERDB_NAME=paperless \
|
|
--from-literal=USERDB_USER=paperless \
|
|
--from-literal="USERDB_PASSWORD=${postgres_app_password}"
|
|
unset postgres_admin_password postgres_app_password
|
|
fi
|
|
./setup-authentik.sh
|
|
./test.sh
|
|
helm upgrade --install postgresql postgres --repo https://groundhog2k.github.io/helm-charts/ --version 1.6.7 -n paperless-ngx -f postgresql-values.yaml --wait --timeout 10m
|
|
kubectl apply --dry-run=server -f storage.yaml -f app.yaml
|
|
apply_output=$(kubectl apply -f storage.yaml -f app.yaml)
|
|
printf '%s\n' "$apply_output"
|
|
if [[ $apply_output == *'configmap/scanner-config configured'* ]]; then
|
|
kubectl -n paperless-ngx rollout restart deployment/scanner
|
|
fi
|
|
kubectl -n paperless-ngx rollout status deployment/valkey --timeout=5m
|
|
kubectl -n paperless-ngx rollout status deployment/paperless --timeout=15m
|
|
kubectl -n paperless-ngx rollout status deployment/scanner --timeout=10m
|
|
kubectl -n paperless-ngx exec deployment/paperless -- python manage.py shell -c 'from django.contrib.auth.models import Group; [Group.objects.get_or_create(name=name) for name in ("Paperless Users", "Paperless Admins")]'
|