Sergey Antropoff
38aaadbfb1
docs: sync addon docs with explicit external/internal service modes
...
Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
2026-04-29 23:21:04 +03:00
Sergey Antropoff
4eaf91e2d2
docs: руководство по своим аддонам и ссылки в README/Molecule/справочнике
...
- Добавлен docs/custom-addons.md: структура addons/<name>, playbook, group_vars,
playbooks/addons.yml, Makefile, Molecule, чеклист и см. также.
- docs/addons.md, getting-started.md: отсылки на custom-addons.md.
- README.md: строка в таблице документации.
- docs/molecule-testing.md: уточнены molecule-prometheus/istio (тесты аддонов),
разделы prometheus-stack/istio, ссылка на руководство в блоке про новые тесты.
- docs/make-reference.md: примечание к make addon-<name>.
2026-04-28 01:43:13 +03:00
Sergey Antropoff
e9e0ffa3c2
refactor: переименовать аддон ext-proxy → ingress-proxypass
...
- addons/ext-proxy/ → addons/ingress-proxypass/ (git mv, история сохранена)
- Все переменные Ansible: ext_proxy_* → ingress_proxypass_*
- Все имена ресурсов K8s: ext-proxy → ingress-proxypass (namespace, chart, release)
- Helm-хелперы: "ext-proxy.*" → "ingress-proxypass.*"
- Makefile: addon-ext-proxy → addon-ingress-proxypass
- group_vars/all/addons.yml: addon_ext_proxy → addon_ingress_proxypass
- playbooks/addons.yml: обновлена ссылка на роль
- docs/addons.md, README.md: обновлены все упоминания
2026-04-26 07:32:02 +03:00
Sergey Antropoff
aae7941416
feat: добавить аддон ext-proxy — проксировать внешние сервисы через ingress-nginx
...
Helm chart (один чарт создаёт Service + Endpoints + Ingress на каждый прокси):
- _helpers.tpl: хелперы ext-proxy.resourceName, ext-proxy.labels
- service.yaml: ClusterIP без selector — имя совпадает с Endpoints
- endpoints.yaml: внешние IP(s) + порт; несколько IP → round-robin через kube-proxy
- ingress.yaml: слияние аннотаций (defaults → сгенерированные → уровень прокси);
поддержка TLS, basic auth, WebSocket, несколько хостов, маршрутизация по пути
- secret-auth.yaml: htpasswd Secret создаётся только при auth.enabled=true + credentials
- NOTES.txt: список прокси + команды проверки после установки
Ansible роль:
- defaults/main.yml: ext_proxy_namespace, ext_proxy_defaults, ext_proxy_proxies
- tasks/main.yml: валидация → namespace → копировать chart → lint → helm upgrade --install --atomic
- templates/values.yaml.j2: преобразование Ansible-переменных в Helm values через to_yaml
Интеграция: Makefile addon-ext-proxy, флаг addons.yml, playbooks/addons.yml,
docs/addons.md, README.md (счётчик 37 аддонов)
README.md на русском языке с полной документацией:
архитектура, настройка, функции, DNS, проверка, примеры манифестов, устранение неисправностей
Дополнительно: splitgw_deploy_mode изменён на k8s
2026-04-26 07:21:41 +03:00
Sergey Antropoff
07fdc9a994
feat: добавить аддон splitgw — прозрачный split-tunnel gateway (sing-box + Hysteria2 TPROXY)
...
- Роль: defaults, tasks (main/deploy-host/deploy-k8s), handlers, templates (sing-box config, iptables setup/teardown, systemd, K8s DaemonSet/ConfigMap/Secret)
- Режимы: systemd (host) и K8s DaemonSet с hostNetwork + privileged init-container
- Маршрутизация: YouTube/Google → Hysteria2, RU (geoip/geosite) → прямой, остальное → прямой
- DNS без утечек: protocol=dns перехватывается TPROXY, per-domain DNS серверы
- Интеграция: inventory [splitgw], addons.yml flag, Makefile target, playbooks/addons.yml
- Документация: README.md, docs/addons.md, README.md (счётчик 36)
2026-04-26 06:56:17 +03:00
Sergey Antropoff
ba580f883e
docs: добавить mediaserver в README и docs/addons.md
...
- README: новая строка в таблице аддонов (Медиасервер), счётчик 34 → 35
- docs/addons.md: mediaserver в каталоге, конфигурации addons.yml и vault секретах
- docs/addons.md: зависимость mediaserver → csi-nfs (RWX StorageClass)
- docs/addons.md: раздел MediaServer с примером vault.yml и описанием Hysteria2 sidecar
2026-04-26 00:53:33 +03:00
Sergey Antropoff
eccc1c2a01
docs: полная документация проекта — docs/ и README.md для каждого аддона
...
- README.md: перепиcан как компактный обзор (98 строк) с навигацией по docs/
- docs/: 13 файлов — getting-started, architecture, configuration, addons,
storage, security, cicd, observability, networking, operations,
make-reference, molecule-testing, troubleshooting
- addons/*/README.md: 31 новый файл — описание, параметры, примеры кода
для каждого из 34 аддонов (vault и external-secrets уже существовали)
2026-04-26 00:22:06 +03:00
Sergey Antropoff
24846d2e52
feat: крупное обновление стека — пути, bootstrap, etcd, cert-manager, custom errors, ноды
...
## Переименование путей (rancher → kubernetes)
- Все пути /var/lib/rancher/k3s → /var/lib/kubernetes/k3s
- Все пути /etc/rancher/k3s → /etc/kubernetes/k3s
- Добавлены переменные k3s_config_dir, k3s_data_dir, k3s_kubeconfig_path
- K3S install получил --data-dir и K3S_CONFIG_FILE флаги
- k3s-server-config.yaml.j2: добавлены write-kubeconfig и data-dir ключи
- Все роли (csi-nfs, ingress-nginx, cert-manager, prometheus, istio, cni)
переведены на {{ k3s_kubeconfig_path }} вместо хардкода
## Bootstrap (новое)
- bootstrap.yml — playbook для первоначальной настройки нод
- roles/bootstrap/ — создаёт пользователя ansible, настраивает sudoers,
деплоит SSH публичный ключ по паролю из vault
- host_vars/*/vault.yml.example — шаблоны с bootstrap_user/bootstrap_password
- make bootstrap, make vault-bootstrap-create NODE=..., make vault-bootstrap-edit NODE=...
## Добавление/удаление нод (новое)
- add-node.yml — добавляет мастер или воркер в существующий кластер через VIP
- remove-node.yml — cordon → drain → delete → uninstall → cleanup
- inventory/hosts.ini: добавлена группа [k3s_workers], обновлён [k3s_cluster:children]
- roles/k3s/tasks/main.yml: install_agent.yml для воркеров
## etcd backup/restore (новое)
- etcd-backup.yml / etcd-restore.yml — top-level playbooks
- roles/etcd/tasks/backup.yml — k3s etcd-snapshot save + retention cleanup
- roles/etcd/tasks/restore.yml — cluster-reset + перезапуск всех нод
- make etcd-backup, make etcd-restore SNAPSHOT=..., make etcd-list-snapshots
## cert-manager addon (новое)
- roles/cert-manager/ — установка через Helm + опциональный ClusterIssuer
- Поддержка: none | selfsigned | letsencrypt
- Шаблоны ClusterIssuer для selfsigned CA и ACME HTTP-01
- Управляется флагом cert_manager_enabled: false
## Custom error backend для ingress-nginx (новое)
- custom-error-page.html.j2 — тёмная Kubernetes-styled страница ошибок
- custom-error-backend.yaml.j2 — ConfigMap + Deployment (nginx) + Service
- nginx использует sub_filter для динамической подстановки X-Code/X-Message
- ingress-nginx Helm values: custom-http-errors, default-backend-service
- Управляется флагом ingress_nginx_custom_errors_enabled: true
## Hostname и пакеты (новое)
- prereqs.yml: установка hostname из inventory_hostname (пропускается в Molecule)
- prereqs.yml: установка k3s_common_packages (nfs-common, mc, htop, vim, wget, и др.)
- molecule_test: true в converge.yml исключает hostname из тестов
## Molecule improvements
- 3 платформы: master01 (Ubuntu 22.04) + worker01 (Ubuntu 22.04) + rpi01 (Debian 12)
- Molecule запускается из Docker контейнера через /var/run/docker.sock (DinD)
- Все пути в converge.yml и verify.yml обновлены под /etc/kubernetes/k3s
## Флаги включения компонентов
- kube_vip_enabled, nfs_server_enabled, csi_nfs_enabled, ingress_nginx_enabled
- cert_manager_enabled, istio_enabled, kiali_enabled, prometheus_stack_enabled
- Каждая роль пропускает установку через meta: end_play при disabled
## Документация
- README полностью переработан: все новые возможности с примерами
- Новые разделы: Управление нодами, etcd backup/restore, cert-manager, bootstrap
- Обновлены Makefile, docker/entrypoint.sh под все новые команды
2026-04-23 06:32:14 +03:00
Sergey Antropoff
d9a35478a6
первый фикс
2026-04-17 08:58:26 +03:00
Sergey Antropoff
095b276cb3
first commit
2026-04-17 08:37:27 +03:00