feat(synapse): update ingress to use traefik ingress class and bump version feat(syncthing-discovery): introduce syncthing discovery service with deployment and ingress feat(syncthing-relay): add syncthing relay server with deployment and ingress configuration fix(taiga): update liveness and readiness probes to use tcpSocket for health checks fix(taiga): change PVC access mode to ReadWriteMany for media and static storage feat(traefik): add icon and ignore rules for traefik service docs(ushahidi): add notes for Redis configuration and Laravel startup probe adjustments feat(ushahidi): implement dedicated Redis deployment for Ushahidi fix(vllm): update deployment strategy and readiness/liveness probes for improved stability fix(writefreely): pin writefreely image version to v0.15.1 for consistency docs(zulip): add notes for TLS-terminating reverse proxy configuration and expected behavior
87 lines
2.8 KiB
YAML
87 lines
2.8 KiB
YAML
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: bookwyrm-db-init
|
|
namespace: bookwyrm
|
|
spec:
|
|
template:
|
|
metadata:
|
|
labels:
|
|
component: db-init
|
|
spec:
|
|
securityContext:
|
|
runAsNonRoot: true
|
|
runAsUser: 999
|
|
runAsGroup: 999
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
restartPolicy: OnFailure
|
|
containers:
|
|
- name: db-init
|
|
image: postgres:16-alpine
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
readOnlyRootFilesystem: false
|
|
env:
|
|
- name: PGHOST
|
|
value: "{{ .db.host }}"
|
|
- name: PGPORT
|
|
value: "{{ .db.port }}"
|
|
- name: PGUSER
|
|
value: postgres
|
|
- name: PGPASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: bookwyrm-secrets
|
|
key: postgres.password
|
|
- name: BOOKWYRM_DB_USER
|
|
value: "{{ .db.user }}"
|
|
- name: BOOKWYRM_DB_NAME
|
|
value: "{{ .db.name }}"
|
|
- name: BOOKWYRM_DB_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: bookwyrm-secrets
|
|
key: dbPassword
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- |
|
|
echo "Initializing BookWyrm database..."
|
|
|
|
# Create user if it doesn't exist
|
|
psql -c "
|
|
DO \$\$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = '$BOOKWYRM_DB_USER') THEN
|
|
CREATE USER \"$BOOKWYRM_DB_USER\" WITH PASSWORD '$BOOKWYRM_DB_PASSWORD';
|
|
ELSE
|
|
ALTER USER \"$BOOKWYRM_DB_USER\" WITH PASSWORD '$BOOKWYRM_DB_PASSWORD';
|
|
END IF;
|
|
END
|
|
\$\$;
|
|
"
|
|
|
|
# Create database if it doesn't exist
|
|
if ! psql -lqt | cut -d \| -f 1 | grep -qw "$BOOKWYRM_DB_NAME"; then
|
|
echo "Creating database $BOOKWYRM_DB_NAME..."
|
|
createdb -O "$BOOKWYRM_DB_USER" "$BOOKWYRM_DB_NAME"
|
|
else
|
|
echo "Database $BOOKWYRM_DB_NAME already exists."
|
|
fi
|
|
|
|
# Grant privileges
|
|
psql -d "$BOOKWYRM_DB_NAME" -c "
|
|
GRANT ALL PRIVILEGES ON DATABASE \"$BOOKWYRM_DB_NAME\" TO \"$BOOKWYRM_DB_USER\";
|
|
GRANT ALL ON SCHEMA public TO \"$BOOKWYRM_DB_USER\";
|
|
GRANT USAGE ON SCHEMA public TO \"$BOOKWYRM_DB_USER\";
|
|
"
|
|
|
|
# Create bloom extension (required by bookwyrm migrations, needs superuser)
|
|
psql -d "$BOOKWYRM_DB_NAME" -c "CREATE EXTENSION IF NOT EXISTS bloom;"
|
|
|
|
echo "Database initialization completed."
|