Commit Graph

33 Commits

Author SHA1 Message Date
emelinda
8e14cd1e0b feat(aero): PostgreSQL с четырьмя базами и ускоренный цикл реконсиляции
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 не
доходит ни одним путём.
2026-08-08 11:33:43 +03:00
emelinda
565faa0e17 feat(aero): базовый слой контура — Vault↔k3s, GitOps-синхронизация, выход наружу
Топология k3s: 1 мастер + 2 воркера (убран k3s-worker-3 с томом).

Vault ↔ k3s. Vault живёт в compose, вне кластера, поэтому получает
статический IP 172.28.0.13, DNS-мост в namespace vault и token reviewer
(SA vault-auth + system:auth-delegator). Ansible включает auth/kubernetes,
передавая адрес apiserver, CA и JWT ревьюера явно, и заводит политику с
ролями. Секрет token reviewer'а читается целиком в JSON: вариант
-o jsonpath={.data.ca\.crt} НЕ работает — модуль command разбирает строку
через shlex, съедает обратный слэш, kubectl возвращает пустую строку с
кодом 0, и отказ остаётся незамеченным до падения vault write.

Синхронизация репозитория в gitea. Нужное подмножество путей (замыкание
ссылок clusters/aero) едет архивом на хост и коммитится там: gitea не
публикуется дальше самого хоста, контур остаётся замкнутым. flux-bootstrap
вынесен в отдельную волну — до неё Vault получает auth/kubernetes, а
репозиторий наполняется, иначе первая реконсиляция падает на пустом репо.

Инфраструктура: vault-agent-injector (чарт vault-contour в режиме внешнего
Vault), local-path-provisioner взамен встроенного в k3s (--disable=
local-storage; путь данных прежний), rabbitmq и minio с кредами из Vault.

Выход наружу: порты 80/443 k3s-server опубликованы (istio ingressgateway
занимает эти hostPort), общий contour-gateway на wildcard-хост, сертификат
Let's Encrypt через http01. Имена в сертификате перечислены явно —
http01 не выдаёт wildcard, для них нужен dns01.

Разорваны два дедлока Flux: infra-configs больше не зависит от
infra-controllers (издатели не должны зависеть от здоровья чартов, которые
их используют), istio-config получил disableWait.

Модули ядра iptable_nat и смежные грузятся на хосте: ноды k3s —
контейнеры, istio-init правит iptables через ядро хоста, а на RED OS 8
(nf_tables) legacy-модули не загружены, из-за чего любой под с
istio-injection навсегда вставал в Init:Error.

Собственные Gateway/VirtualService/Certificate чартов rabbitmq и dashboard
отключены — маршрутизация описана централизованно. У rabbitmq это сделано
postRenderers, а не values: kustomize нормализует null в {}, а пустую карту
Helm сливает с дефолтами, возвращая их целиком.
2026-08-08 09:36:08 +03:00
emelinda
da8e40c044 feat(istio): add required empty blocks to prevent nil pointer errors in aero environment configuration 2026-08-03 16:20:37 +03:00
emelinda
b28e5dd27a feat(fluxcd): introduce multi-layer infrastructure setup with kustomize and CRD dependency handling in aero environment 2026-08-03 16:02:35 +03:00
emelinda
037d069c85 feat(fluxcd): add HelmRelease for Istio configuration in aero environment 2026-08-03 15:40:24 +03:00
emelinda
457f0dad41 feat(ansible): add private registry configuration for k3s and Flux with secure key handling 2026-08-03 15:40:07 +03:00
fb30bab0b8 ++ prefix uralmine service domains with sarex 2026-08-03 11:06:10 +03:00
a4f1424403 ++ move uralmine service domains up one level 2026-08-03 10:56:18 +03:00
ivan
9cb672cf34 ++ 2026-08-02 01:10:27 +05:00
ivan
325aad49da ++ 2026-08-02 00:50:33 +05:00
ivan
6c81ba0080 ++ 2026-08-02 00:41:18 +05:00
ivan
3dd3c12537 ++ 2026-08-01 15:13:48 +05:00
ivan
7ad5c5f4b1 ++ 2026-08-01 14:41:41 +05:00
ivan
950c1a5c51 ++ 2026-08-01 14:00:43 +05:00
ivan
ab7611fc7e ++ 2026-07-31 17:47:56 +05:00
ivan
84c51343f9 ++ 2026-07-31 17:32:56 +05:00
ivan
e88027ffa6 ++ 2026-07-31 16:56:56 +05:00
ivan
11fbf26d6d ++ 2026-07-31 16:12:24 +05:00
ivan
4e7757b7b4 ++ 2026-07-31 16:08:52 +05:00
ivan
b98d3f6ab2 ++ 2026-07-31 15:27:24 +05:00
ivan
7868779771 ++ 2026-07-31 15:12:16 +05:00
ivan
d57fcf8229 ++ 2026-07-31 13:59:05 +05:00
ivan
77d6f20146 ++ 2026-07-29 17:55:36 +05:00
ivan
f0aecc51ad ++ 2026-07-29 15:45:47 +05:00
ivan
29414b27ba ++ 2026-07-29 15:12:17 +05:00
ivan
2d455821fb ++ 2026-07-29 15:11:26 +05:00
ivan
a7d90941f9 ++ 2026-07-28 16:35:58 +05:00
6abde9cce2 ++ change infra domains 2026-07-15 14:53:57 +03:00
63cdb767e6 ++ move ugmk infrastructure patches to overlays 2026-07-15 13:00:34 +03:00
51779f11c1 add contour envoy filters 2026-06-29 13:30:50 +03:00
c02e553ba4 ++ add otel istio tracing config 2026-06-24 15:25:48 +03:00
emelinda
ba6fe89549 Refactor yc-k8s-test infrastructure by splitting kustomization files into resource-specific directories. 2026-06-23 11:56:05 +03:00
66b6125e8c add isito-config 2026-04-13 15:34:22 +03:00