mirror of
https://github.com/dredx/prole.git
synced 2026-09-24 14:54:34 +00:00
Kong API Gateway (replacing prole nginx): - Add etc/init_kong.sh provisioning script (DB-less mode, prole-db namespace) - Add kong-deployment.yaml and kong-service.yaml manifests - Rewire ingress rules (svc/git/api.prole.org) to prole-db-kong:8000 - Update kustomization.yaml to reference kong manifests PostgREST & DB Manager in prole-db namespace: - Add etc/init_postgrest.sh and etc/init_db_manager.sh scripts - Add postgrest/db-manager deployment and service manifests - Add src/db-manager/ Node.js REST endpoint for backup triggers - Default NAMESPACE changed to prole-db in both scripts Docker image pre-load from PROLE_DATA/docker-import: - Add _preload_docker_images() to init_common_services.sh - Scan for .tar files exported by final_deployment.sh - Import via k3d image import (k3d) or ctr (k3s) before deployments - Increase rollout timeouts to 300s (configurable via ROLLOUT_TIMEOUT) in init_openbao.sh, init_opentofu.sh, init_garage_store.sh, init_registry.sh OpenTofu password resolution fix: - Add Kubernetes secret fallback in resolve_admin_password() - Change hard exit 1 to graceful return 1 with warning - Wrap call in if-guard so set -e doesn't abort the script chain Milestone fix (init scripts not running): - Add init_kong.sh, init_postgrest.sh, init_db_manager.sh to InitializationScriptsMilestone.execute() script list and arg branches - Previously only actions.py had these; milestones.py was missing them Installer integration: - Add Kong/PostgREST/DB Manager to silent installer _step_init_scripts - Add corresponding tabs and execution blocks in UI services.py
111 lines
3.0 KiB
YAML
111 lines
3.0 KiB
YAML
apiVersion: postgresql.cnpg.io/v1
|
|
kind: Cluster
|
|
metadata:
|
|
name: prole-db
|
|
spec:
|
|
instances: 3
|
|
imageName: k3d-prole-registry:5000/prole-db:17.7-059
|
|
postgresUID: 100
|
|
postgresGID: 101
|
|
maxSyncReplicas: 1
|
|
affinity:
|
|
nodeAffinity:
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
nodeSelectorTerms:
|
|
- matchExpressions:
|
|
- key: kubernetes.io/hostname
|
|
operator: In
|
|
values:
|
|
- myrddin.prole.org
|
|
|
|
postgresql:
|
|
parameters:
|
|
shared_buffers: 256MB
|
|
pg_stat_statements.max: '10000'
|
|
pg_stat_statements.track: all
|
|
shared_preload_libraries:
|
|
- pg_stat_statements
|
|
- pg_tde
|
|
pg_hba:
|
|
# allow password access from remote hosts if environment is "#dev"
|
|
- local all postgres trust
|
|
- local all prole scram-sha-256
|
|
- host all postgres all scram-sha-256
|
|
- host prole prole-db all scram-sha-256
|
|
- host all all all scram-sha-256
|
|
- hostssl prole prole-db all scram-sha-256
|
|
# - host all all all gss include_realm=1 krb_realm=EXAMPLE.COM
|
|
|
|
bootstrap:
|
|
initdb:
|
|
database: prole-db
|
|
owner: prole
|
|
localeCollate: 'en_US.utf8'
|
|
localeCType: 'en_US.utf8'
|
|
secret:
|
|
name: prole-db-user
|
|
postInitTemplateSQL:
|
|
- CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
|
|
postInitSQL:
|
|
- CREATE EXTENSION IF NOT EXISTS pg_tde;
|
|
- CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
|
- GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO prole;
|
|
- CREATE EXTENSION IF NOT EXISTS postgis;
|
|
- CREATE EXTENSION IF NOT EXISTS postgis_topology;
|
|
- CREATE EXTENSION IF NOT EXISTS vector;
|
|
- CREATE EXTENSION IF NOT EXISTS tds_fdw;
|
|
- GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO prole;
|
|
- GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA topology TO prole;
|
|
|
|
enableSuperuserAccess: true
|
|
env:
|
|
- name: AWS_REGION
|
|
value: garage
|
|
- name: AWS_DEFAULT_REGION
|
|
value: garage
|
|
|
|
storage:
|
|
size: 1Gi
|
|
pvcTemplate:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 1Gi
|
|
storageClassName: prole-iscsi
|
|
selector:
|
|
matchLabels:
|
|
prole.storage/role: data
|
|
walStorage:
|
|
size: 1Gi
|
|
pvcTemplate:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 1Gi
|
|
storageClassName: prole-iscsi
|
|
selector:
|
|
matchLabels:
|
|
prole.storage/role: wal
|
|
monitoring:
|
|
enablePodMonitor: false
|
|
|
|
# managed rw service
|
|
managed:
|
|
services:
|
|
additional:
|
|
- selectorType: rw
|
|
serviceTemplate:
|
|
metadata:
|
|
name: "prole-db-001"
|
|
labels:
|
|
test-label: "true"
|
|
annotations:
|
|
test-annotation: "true"
|
|
prometheus.io/scrape: "true"
|
|
prometheus.io/port: "9187"
|
|
prometheus.io/path: "/metrics"
|
|
spec:
|
|
type: LoadBalancer
|