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 не
доходит ни одним путём.
63 lines
2.2 KiB
YAML
63 lines
2.2 KiB
YAML
apiVersion: helm.toolkit.fluxcd.io/v2
|
||
kind: HelmRelease
|
||
metadata:
|
||
name: local-path-provisioner
|
||
namespace: local-path-provisioner
|
||
spec:
|
||
interval: 2m
|
||
timeout: 10m
|
||
values:
|
||
replicaCount: 1
|
||
image:
|
||
repository: cr.yandex/crp3ccidau046kdj8g9q/contour/local-path-provisioner-nn/local-path-provisioner
|
||
tag: v0.0.24
|
||
pullPolicy: IfNotPresent
|
||
helperImage:
|
||
repository: cr.yandex/crp3ccidau046kdj8g9q/contour/local-path-provisioner-nn/busybox
|
||
tag: latest
|
||
imagePullSecrets:
|
||
- name: regcred
|
||
defaultSettings:
|
||
registrySecret: null
|
||
privateRegistry:
|
||
registryUrl: null
|
||
registryUser: null
|
||
registryPasswd: null
|
||
storageClass:
|
||
create: true
|
||
# Класс по умолчанию: встроенный в k3s провижинер отключён
|
||
# (--disable=local-storage в docker-compose.yaml), и default-класса в
|
||
# кластере иначе не остаётся — PVC без явного storageClassName висели бы
|
||
# в Pending.
|
||
defaultClass: true
|
||
name: local-path
|
||
reclaimPolicy: Delete
|
||
# Путь ВНУТРИ контейнера ноды. Взят тот же, что использовал встроенный
|
||
# провижинер, потому что он уже смонтирован с хоста:
|
||
# ./k3s-storage/<нода> -> /var/lib/rancher/k3s/storage
|
||
# Благодаря этому данные PVC переживают пересоздание контейнеров нод и
|
||
# доступны для бэкапа обычными средствами хоста. Дефолт чарта
|
||
# (/opt/local-path-provisioner) никуда не смонтирован — данные исчезли бы
|
||
# вместе с контейнером ноды.
|
||
nodePathMap:
|
||
- node: DEFAULT_PATH_FOR_NON_LISTED_NODES
|
||
paths:
|
||
- /var/lib/rancher/k3s/storage
|
||
rbac:
|
||
create: true
|
||
serviceAccount:
|
||
create: true
|
||
name: ""
|
||
resources: {}
|
||
nodeSelector: {}
|
||
tolerations: []
|
||
affinity: {}
|
||
configmap:
|
||
name: local-path-config
|
||
setup: |-
|
||
set -eu
|
||
mkdir -m 0777 -p "$VOL_DIR"
|
||
teardown: |-
|
||
set -eu
|
||
rm -rf "$VOL_DIR"
|