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
This commit is contained in:
Sergey Antropoff
2026-04-26 07:21:41 +03:00
parent 07fdc9a994
commit aae7941416
19 changed files with 1408 additions and 3 deletions

View File

@@ -41,6 +41,7 @@ addon_netbird: false # NetBird VPN (управляющий сер
addon_mediaserver: false # MediaServer — Plex, *arr, Transmission, Prowlarr+Hysteria2, Samba
addon_hysteria2_server: false # Hysteria2 VPN сервер на удалённый VPS (группа [hysteria2_server] в inventory)
addon_splitgw: false # Split Gateway — прозрачный прокси sing-box+Hysteria2 (группа [splitgw] в inventory)
addon_ext_proxy: false # External Services Ingress Proxy — проксировать внешние сервисы через ingress-nginx
# ─── NFS Server ───────────────────────────────────────────────────────────────
nfs_exports: