Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
- group_vars/all/main.yml: пояснения к глобальным настройкам K3S, сети, CNI,
kube-vip, chrony, ротации сертификатов, сервисным пользователям и пакетам.
- group_vars/all/addons.yml: комментарии над флагами addon_* и активными
блоками (NFS, CSI NFS, ingress-nginx, cert-manager, Databasus, MinIO,
etcd backup и др.); исправлена битая строка-разделитель в секции Gitea Actions.
- group_vars/all/vault.yml.example: описание назначения каждого секрета.
- host_vars (master01, worker01, rpi01): пояснения к labels, taints и
k3s_extra_server_args.
- inventory/hosts.ini: комментарии к группам и строкам нод, пояснение nfs_server;
исправлена повреждённая линия-разделитель.
- addons/*/role/defaults/main.yml: русские комментарии над переменными
(в т.ч. Harbor, Authelia, Istio, Prometheus, Vault, Jenkins, DNS-аддоны и др.).
- addons/csi-nfs/role/defaults/main.yml: исправлено имя csi_nfs_reclaim_policy
(опечатка с кириллической «М» в имени ключа).
Рабочий vault.yml не менялся (секреты / ansible-vault).
Makefile
- Уникальные имена контейнеров на каждый вызов make (ANSIBLE_RUN_ID); переопределение
через ANSIBLE_CONTAINER_NAME / MOLECULE_CONTAINER_NAME; отдельное имя для
Molecule, чтобы k3s-ansible и molecule не конфликтовали.
- Старые цели molecule-prometheus и molecule-istio переведены на molecule-addon
(prometheus-stack, istio); добавлены явные molecule-addon-prometheus-stack и
molecule-addon-istio; в molecule-addon-all включены prometheus-stack и istio
(полный набор аддонов), скорректированы подписи.
- Phony-таргет dashboard (без внесения кода в dashboard/ в этот коммит).
Сценарии Molecule (converge/verify) — десятки аддонов
- Добавлены/выровнены переменные и шаблоны под текущие роли (harbor, hysteria2,
ingress-*, jenkins, mediaserver, netbird, nextcloud, splitgw, vault,
vaultwarden и др.).
- Helm/файлы на хост: delegate_to: localhost, run_once где уместно
(technitium-dns, yandex-dns-controller); verify на localhost для
file-based проверок.
- Уточнения проверок: metrics-server, minio, promtail, pushgateway, velero
(bool из фактов/строк), splitgw (JSON, поиск портов/DNS-правил в структуре).
- В meta ролей: prometheus_stack + namespace, istio + namespace; у istio
согласованы converge/verify (в т.ч. метрики, ослаблены жёсткие assert под
шаблоны Kiali).
- csi-nfs: комментарий к volume_binding_mode (Immediate / WaitForFirstConsumer).
Инфраструктура
- .gitignore: каталог dashboard/ (локальная копия не в репозитории).
- docker-compose: убрано фиксированное container_name для параллельных
; TZ по умолчанию Europe/Moscow.
- roles/k3s/tasks/prereqs.yml: повторные попытки update_cache и apt install
при кратковременных сбоях зеркал/сети.
Harbor (harbor/harbor, авто-версия):
- Values-шаблон с полной конфигурацией expose/ingress/tls/persistence
- external DB при addon_postgresql=true (Job для создания user/db)
- internal PostgreSQL + Redis в противном случае
- Метрики + ServiceMonitor при addon_prometheus_stack=true
Gitea (gitea-charts/gitea, авто-версия):
- Values-шаблон, встроенный PostgreSQL отключается при addon_postgresql=true
- Job для создания dedicated user/db в shared PostgreSQL
- Опциональный SSH NodePort (gitea_ssh_enabled)
- ServiceMonitor при addon_prometheus_stack=true
ownCloud OCIS (owncloud/ocis, авто-версия):
- Values-шаблон с insecure-режимом для HTTP
- Persistence для storageusers/storagesystem/nats/search/thumbnails
- Пароль admin через extraEnv IDM_ADMIN_PASSWORD
- ServiceMonitor при addon_prometheus_stack=true
Nextcloud (nextcloud/nextcloud, авто-версия):
- Values-шаблон, external PostgreSQL при addon_postgresql=true
- Job для создания dedicated user/db в shared PostgreSQL
- Встроенный Redis для file locking
- nextcloud-exporter (metrics sidecar) + ServiceMonitor
- Cron-задача для фоновых операций
Авто-версия: helm search repo ... --output json | from_json[0].version
Применяется при version: "" — переопределяется через ARGS="-e *_version=X.Y.Z"