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 не
доходит ни одним путём.
33 lines
1.7 KiB
YAML
33 lines
1.7 KiB
YAML
apiVersion: kustomize.config.k8s.io/v1beta1
|
||
kind: Kustomization
|
||
resources:
|
||
- ./flux-system
|
||
- ./helm-repositories.yaml
|
||
# Два слоя инфраструктуры с dependsOn — см. комментарий внутри файла.
|
||
- ./infrastructure.yaml
|
||
# Слой приложений. Пока пуст — сюда приедут сервисы при переносе из compose.
|
||
- ./apps.yaml
|
||
|
||
# Корневая Kustomization применяет этот же каталог, поэтому здесь она правит
|
||
# сама себя — и это единственный способ задать ей интервал.
|
||
#
|
||
# Файл flux-system/gotk-sync.yaml генерирует `flux bootstrap` и помечает
|
||
# "DO NOT EDIT": правка руками затрётся на следующем прогоне. Флаг
|
||
# --interval=2m у bootstrap (см. docker-compose.yaml) тоже не помогает — он
|
||
# задаёт периодичность только GitRepository, а Kustomization оставляет
|
||
# дефолтные 10 минут. Патч же применяется поверх сгенерированного файла и
|
||
# переживает регенерацию.
|
||
#
|
||
# Без этого определения самих слоёв (infrastructure.yaml, apps.yaml)
|
||
# доезжали бы до кластера с задержкой до 10 минут, даже когда все нижние
|
||
# слои уже проверяются раз в 2 минуты.
|
||
patches:
|
||
- target:
|
||
kind: Kustomization
|
||
name: flux-system
|
||
namespace: flux-system
|
||
patch: |
|
||
- op: replace
|
||
path: /spec/interval
|
||
value: 2m0s
|