# Аддоны Все аддоны управляются через флаги в `group_vars/all/addons.yml`. Порядок установки в `playbooks/addons.yml` фиксирован (NFS → CSI → Ingress → cert-manager → остальные). ## Установка аддонов ```bash # Установить все включённые аддоны: make install-addons # Конкретный аддон (флаг из addons.yml игнорируется): make addon- # Примеры: make addon-prometheus-stack make addon-argocd make addon-jenkins make addon-netbird ``` ## Каталог аддонов | Аддон | Флаг | Описание | README | |---|---|---|---| | **Сеть** | | | | | ingress-nginx | `addon_ingress_nginx` | HTTP/S Ingress controller | [→](../addons/ingress-nginx/README.md) | | cert-manager | `addon_cert_manager` | TLS сертификаты (Let's Encrypt / self-signed) | [→](../addons/cert-manager/README.md) | | istio | `addon_istio` | Service mesh + Kiali UI | [→](../addons/istio/README.md) | | netbird | `addon_netbird` | Self-hosted WireGuard VPN | [→](../addons/netbird/README.md) | | crowdsec | `addon_crowdsec` | IDS/IPS, nginx bouncer | [→](../addons/crowdsec/README.md) | | **Хранилище** | | | | | nfs-server | `addon_nfs_server` | NFS сервер | [→](../addons/nfs-server/README.md) | | csi-nfs | `addon_csi_nfs` | CSI NFS Driver + StorageClass | [→](../addons/csi-nfs/README.md) | | longhorn | `addon_longhorn` | Distributed block storage | [→](../addons/longhorn/README.md) | | minio | `addon_minio` | S3-совместимое объектное хранилище | [→](../addons/minio/README.md) | | csi-s3 | `addon_csi_s3` | S3/MinIO как PVC | [→](../addons/csi-s3/README.md) | | csi-ceph | `addon_csi_ceph` | Rook-Ceph distributed storage | [→](../addons/csi-ceph/README.md) | | csi-glusterfs | `addon_csi_glusterfs` | GlusterFS CSI driver | [→](../addons/csi-glusterfs/README.md) | | **Базы данных** | | | | | postgresql | `addon_postgresql` | PostgreSQL (shared для аддонов) | [→](../addons/postgresql/README.md) | | mysql | `addon_mysql` | MySQL (Bitnami) | [→](../addons/mysql/README.md) | | databasus | `addon_databasus` | Web UI для бэкапов БД | [→](../addons/databasus/README.md) | | **Observability** | | | | | metrics-server | `addon_metrics_server` | kubectl top + HPA | [→](../addons/metrics-server/README.md) | | prometheus-stack | `addon_prometheus_stack` | Prometheus + Grafana + Alertmanager | [→](../addons/prometheus-stack/README.md) | | loki | `addon_loki` | Агрегация логов | [→](../addons/loki/README.md) | | promtail | `addon_promtail` | Агент сбора логов → Loki | [→](../addons/promtail/README.md) | | tempo | `addon_tempo` | Distributed tracing | [→](../addons/tempo/README.md) | | pushgateway | `addon_pushgateway` | Метрики batch-задач | [→](../addons/pushgateway/README.md) | | **CI/CD** | | | | | jenkins | `addon_jenkins` | Jenkins CI/CD + k8s agents | [→](../addons/jenkins/README.md) | | gitea | `addon_gitea` | Git hosting + Gitea Actions | [→](../addons/gitea/README.md) | | argocd | `addon_argocd` | GitOps (ArgoCD) | [→](../addons/argocd/README.md) | | **Безопасность** | | | | | vault | `addon_vault` | HashiCorp Vault | [→](../addons/vault/README.md) | | external-secrets | `addon_external_secrets` | External Secrets Operator → Vault | [→](../addons/external-secrets/README.md) | | vaultwarden | `addon_vaultwarden` | Self-hosted Bitwarden | [→](../addons/vaultwarden/README.md) | | **Инфраструктура** | | | | | harbor | `addon_harbor` | Container registry + proxy cache | [→](../addons/harbor/README.md) | | kubernetes-dashboard | `addon_kubernetes_dashboard` | K8S Web UI | [→](../addons/kubernetes-dashboard/README.md) | | velero | `addon_velero` | Бэкап кластера + PVC в S3 | [→](../addons/velero/README.md) | | smtp-relay | `addon_smtp_relay` | Postfix relay для email из подов | [→](../addons/smtp-relay/README.md) | | **Файловые хранилища** | | | | | nextcloud | `addon_nextcloud` | Nextcloud облачное хранилище | [→](../addons/nextcloud/README.md) | | owncloud | `addon_owncloud` | ownCloud OCIS | [→](../addons/owncloud/README.md) | ## Конфигурация addons.yml ```yaml # group_vars/all/addons.yml — включи нужные аддоны: # ── Core ────────────────────────────────────────────────────────────────────── addon_ingress_nginx: true # обязателен для большинства аддонов addon_cert_manager: true # TLS сертификаты addon_metrics_server: true # kubectl top + HPA # ── Observability ───────────────────────────────────────────────────────────── addon_prometheus_stack: true # Prometheus + Grafana + Alertmanager addon_loki: true # логи addon_promtail: true # агент сбора логов addon_tempo: false # distributed tracing addon_pushgateway: false # batch метрики # ── Хранилище ───────────────────────────────────────────────────────────────── addon_longhorn: false # distributed block storage addon_minio: false # S3 объектное хранилище addon_csi_s3: false # S3 как PVC # ── Базы данных ─────────────────────────────────────────────────────────────── addon_postgresql: false # shared PostgreSQL addon_mysql: false # ── CI/CD ───────────────────────────────────────────────────────────────────── addon_gitea: false addon_jenkins: false addon_argocd: false # ── Безопасность ────────────────────────────────────────────────────────────── addon_vault: false addon_external_secrets: false addon_vaultwarden: false addon_crowdsec: false # ── Инфраструктура ──────────────────────────────────────────────────────────── addon_harbor: false addon_velero: false addon_netbird: false addon_smtp_relay: false ``` ## Зависимости между аддонами | Аддон | Зависит от | Автоинтеграция | |---|---|---| | `promtail` | `loki` | URL Loki берётся автоматически | | `loki` | `minio` (опционально) | S3 backend при addon_minio: true | | `velero` | `minio` | S3 backend для бэкапов | | `csi-s3` | `minio` (опционально) | Endpoint берётся автоматически | | `gitea` | `postgresql` (опционально) | Своя БД при addon_postgresql: true | | `harbor` | `postgresql` (опционально) | Своя БД при addon_postgresql: true | | `nextcloud` | `postgresql` (опционально) | Своя БД при addon_postgresql: true | | `databasus` | `postgresql`, `mysql`, `minio` | Все подключения автоматические | | `jenkins` | `vault` (опционально) | JCasC Vault URL при addon_vault: true | | `external-secrets` | `vault` | ClusterSecretStore к Vault | | `istio` | `prometheus-stack` (опционально) | Kiali ↔ Prometheus/Grafana авто | | `crowdsec` | `ingress-nginx` | Bouncer интеграция при addon_crowdsec | ## Prometheus метрики Все аддоны создают ServiceMonitor автоматически при `addon_prometheus_stack: true`: - ingress-nginx, cert-manager, ArgoCD, Gitea, Harbor, Jenkins - PostgreSQL, MySQL, MinIO, Loki, Tempo, Pushgateway - Longhorn, Velero, CrowdSec, Vaultwarden, Nextcloud, ownCloud ## Vault секреты Полный список vault.yml переменных — `group_vars/all/vault.yml.example`: ```yaml vault_k3s_token: "" vault_grafana_user: "admin" vault_grafana_password: "" vault_kiali_token: "" vault_gitea_admin_password: "" vault_gitea_db_password: "" vault_harbor_admin_password: "Harbor12345" vault_harbor_db_password: "" vault_postgresql_postgres_password: "" vault_postgresql_password: "" vault_mysql_root_password: "" vault_mysql_password: "" vault_minio_root_user: "admin" vault_minio_root_password: "" vault_velero_s3_access_key: "" vault_velero_s3_secret_key: "" vault_crowdsec_enroll_key: "" vault_nextcloud_admin_password: "" vault_nextcloud_db_password: "" vault_owncloud_admin_password: "" vault_jenkins_admin_password: "" vault_netbird_coturn_password: "" vault_netbird_router_setup_key: "" vault_netbird_exit_node_setup_key: "" vault_vaultwarden_admin_token: "" vault_vaultwarden_smtp_password: "" vault_smtp_relay_password: "" vault_glusterfs_heketi_secret: "" vault_databasus_db_password: "" vault_aws_kms_access_key: "" vault_aws_kms_secret_key: "" vault_transit_seal_token: "" vault_azure_kv_client_secret: "" vault_eso_approle_secret_id: "" ```