PostgreSQL разворачивается пустым инстансом, состав баз повторяет то, что
сейчас провижинит postgres-init в compose:
sarex_db -> django (ltree)
workflow_db -> processing (uuid-ossp, ltree, hstore)
bim_db -> bim
workspace_db -> workspace
Пароли администратора и владельцев берутся из Vault через
vault-agent-injector, в репозитории их нет. Расширения создаёт бутстрап
заранее: роли не суперпользователи и CREATE EXTENSION в миграциях им
недоступен. timescaledb включён в shared_preload_libraries сразу, хотя этим
базам не нужен, — параметр читается только при старте, и добавить его позже
означает перезапуск СУБД.
nodeSelector снимается postRenderers'ом. Чарт по умолчанию ставит
dedicated: sts в расчёте на выделенный пул нод; в контуре таких нет, и под
навсегда повисал в Pending, а следом застревал PVC, потому что у local-path
режим WaitForFirstConsumer. Через values это недостижимо: Helm сливает карты
по ключам, поэтому ни {}, ни другая метка dedicated: sts не убирают.
Цикл реконсиляции сокращён с 10 до 2 минут у всех Kustomization и
HelmRelease контура. Корневая Kustomization патчится из clusters/aero:
её файл генерирует flux bootstrap с пометкой DO NOT EDIT, а флаг --interval
задаёт периодичность только GitRepository. Таймаут установки postgresql
снижен с 20 до 10 минут — он определяет цену одной неудачной итерации.
Отключение собственных Gateway/VirtualService/Certificate чарта rabbitmq
переведено с JSON6902 на postRenderers: kustomize нормализует null в {}, а
пустую карту Helm сливает с дефолтами, поэтому настоящий null до Helm не
доходит ни одним путём.
50 lines
2.0 KiB
YAML
50 lines
2.0 KiB
YAML
# Vault Agent Injector контура aero.
|
||
#
|
||
# Тот же чарт vault-contour, что и в остальных кластерах (это официальный
|
||
# hashicorp/vault-helm, перепубликованный в cr.yandex), но в режиме «внешний
|
||
# Vault»: сервер Vault здесь живёт в docker-compose, а в кластер ставится
|
||
# ТОЛЬКО injector.
|
||
#
|
||
# global.externalVaultAddr сам по себе отключает деплой vault-сервера — это
|
||
# документированное поведение чарта, отдельный server.enabled=false не нужен.
|
||
# Адрес указывает на DNS-мост (Service vault в namespace vault), который
|
||
# заводит ansible: k3s/manifests/vault/bridge-vault.yaml.
|
||
#
|
||
# Имя релиза — vault-injector, а не vault (как в прод-кластерах): чарт
|
||
# составляет имена ресурсов из имени релиза, и релиз `vault` рисковал бы
|
||
# перекрыть Service `vault` моста, оставив Vault недоступным.
|
||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||
kind: HelmRelease
|
||
metadata:
|
||
name: vault-injector
|
||
namespace: vault
|
||
spec:
|
||
interval: 2m
|
||
chart:
|
||
spec:
|
||
chart: vault-contour
|
||
version: "0.2.3"
|
||
sourceRef:
|
||
kind: HelmRepository
|
||
name: yc-oci-charts
|
||
namespace: flux-system
|
||
interval: 10m
|
||
install:
|
||
createNamespace: true
|
||
remediation:
|
||
retries: 3
|
||
upgrade:
|
||
remediation:
|
||
retries: 3
|
||
values:
|
||
global:
|
||
# Отключает vault-сервер и задаёт адрес внешнего Vault для агентов.
|
||
externalVaultAddr: http://vault.vault.svc.cluster.local:8200
|
||
# Образы чарта лежат в приватном cr.yandex; секрет создаёт роль
|
||
# sarex_stack (registry_secrets), см. registry-secret.yaml.j2.
|
||
imagePullSecrets:
|
||
- name: regcred
|
||
tlsDisable: true
|
||
injector:
|
||
enabled: true
|