Перейти к основному содержимому
Версия: 2.0.x

postgres — values

Файл values для чарта postgres.

postgres-values.yaml
# Стабильное имя PostgreSQL Service/StatefulSet для команд из этой документации.
fullnameOverride: selena-postgres

# PostgreSQL users/passwords.
auth:
# Application DB user, которым будут пользоваться Selena components.
username: selena
# Default DB, которую chart создает при первом старте.
database: selena
# Secret с PostgreSQL passwords.
existingSecret: selena-postgres-auth

# Primary PostgreSQL node.
primary:
# Persistent storage primary node.
persistence:
# StorageClass кластера.
storageClass: "{storage_class}"
# Размер PVC PostgreSQL для bundled minimal profile.
size: 64Gi
# Init scripts выполняются только при первом создании DB volume.
initdb:
# Набор SQL scripts.
scripts:
# Скрипт создает databases, которые нужны bundled Selena stack.
01-create-selena-databases.sql: |
SELECT 'CREATE DATABASE keycloak'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'keycloak')\gexec

SELECT 'CREATE DATABASE lakekeeper'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'lakekeeper')\gexec

SELECT 'CREATE DATABASE selena_cm'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'selena_cm')\gexec

SELECT 'CREATE DATABASE selena_ide'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'selena_ide')\gexec

SELECT 'CREATE DATABASE selena_ai'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'selena_ai')\gexec

GRANT ALL PRIVILEGES ON DATABASE keycloak TO selena;
GRANT ALL PRIVILEGES ON DATABASE lakekeeper TO selena;
GRANT ALL PRIVILEGES ON DATABASE selena_cm TO selena;
GRANT ALL PRIVILEGES ON DATABASE selena_ide TO selena;
GRANT ALL PRIVILEGES ON DATABASE selena_ai TO selena;

# --- prod tuning (resources/scheduling) ---
# Bitnami по умолчанию ставит resourcesPreset: "nano"; явный resources его перекрывает.
resources:
requests:
cpu: "500m"
memory: "1Gi"
limits:
# CPU limit на БД может вызывать throttling под пиком — при необходимости уберите.
cpu: "2"
memory: "4Gi"
# Toleration безвреден, даже если taint не задан.
#tolerations:
# - key: "{node_taint_key}"
# operator: "Equal"
# value: "{node_taint_value}"
# effect: "NoSchedule"
# Раскомментируйте после замены плейсхолдеров (иначе под останется Pending).
# nodeSelector:
# "{node_label_key}": "{node_label_value}"
# Bitnami уже включает podAntiAffinityPreset: soft. Для жёсткого разнесения:
# affinity: {}