feat: добавлены аддоны Jenkins, Gitea Actions, NetBird VPN

Jenkins:
- Helm chart jenkins/jenkins, dynamic k8s Pod agents, JCasC конфигурация
- 14 предустановленных плагинов (k8s, pipeline, git, blueocean, github/gitlab/gitea)
- Prometheus ServiceMonitor, Ingress с TLS

Gitea Actions:
- Флаг gitea_actions_enabled (default: false) в gitea Helm values
- act_runner Deployment с Docker-in-Docker sidecar (gitea_actions_runner_enabled)
- Job автоматически по��учает registration token через Gitea API и сохраняет в Secret
- Настраиваемые labels, replicas, DinD on/off

NetBird VPN (self-hosted WireGuard mesh):
- Management server (Helm netbirdio/management) — gRPC API + peer management
- Signal server (Helm netbirdio/signal) — WebRTC peer discovery
- Coturn — STUN/TURN с hostNetwork (корректный внешний IP)
- Все компоненты через kube-vip LoadBalancer (авто-назначение IP из pool)
- Subnet Router Deployment (hostNetwork + NET_ADMIN + ip_forward)
  — VPN-клиенты получают ��оступ к подсетям кластера
- Exit Node Deployment (hostNetwork + MASQUERADE iptables)
  — весь интернет-трафик VPN-клиентов через ноду кластера
- Static LB IPs через kube-vip annotation (опционально)
This commit is contained in:
Sergey Antropoff
2026-04-25 18:41:54 +03:00
parent 684fc25908
commit e57e676392
20 changed files with 1213 additions and 0 deletions

View File

@@ -58,6 +58,7 @@ DOCKER_RUN := docker run --rm -it \
addon-harbor addon-gitea addon-owncloud addon-nextcloud \
addon-csi-s3 addon-csi-ceph addon-csi-glusterfs addon-vaultwarden \
addon-smtp-relay addon-vault addon-external-secrets \
addon-jenkins addon-netbird \
add-node remove-node \
add-etcd-node remove-etcd-node \
etcd-backup etcd-restore etcd-list-snapshots \
@@ -399,6 +400,14 @@ addon-external-secrets: _check_env _check_image ## Установить External
@printf "$(CYAN)Устанавливаю External Secrets Operator...$(NC)\n"
$(DOCKER_RUN) addon external-secrets $(ARGS)
addon-jenkins: _check_env _check_image ## Установить Jenkins CI/CD (ARGS="-e jenkins_ingress_host=jenkins.example.com")
@printf "$(CYAN)Устанавливаю Jenkins...$(NC)\n"
$(DOCKER_RUN) addon jenkins $(ARGS)
addon-netbird: _check_env _check_image ## Установить NetBird VPN — management+signal+coturn+kube-vip (ARGS="-e netbird_domain=netbird.example.com -e netbird_subnet_router_enabled=true")
@printf "$(CYAN)Устанавливаю NetBird VPN...$(NC)\n"
$(DOCKER_RUN) addon netbird $(ARGS)
# Generic цель — любой аддон из addons/<name>/playbook.yml
addon-%: _check_env _check_image
@if [ ! -f "addons/$*/playbook.yml" ]; then \