- 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 уже существовали)
9.6 KiB
9.6 KiB
Аддоны
Все аддоны управляются через флаги в group_vars/all/addons.yml. Порядок установки в playbooks/addons.yml фиксирован (NFS → CSI → Ingress → cert-manager → остальные).
Установка аддонов
# Установить все включённые аддоны:
make install-addons
# Конкретный аддон (флаг из addons.yml игнорируется):
make addon-<name>
# Примеры:
make addon-prometheus-stack
make addon-argocd
make addon-jenkins
make addon-netbird
Каталог аддонов
| Аддон | Флаг | Описание | README |
|---|---|---|---|
| Сеть | |||
| ingress-nginx | addon_ingress_nginx |
HTTP/S Ingress controller | → |
| cert-manager | addon_cert_manager |
TLS сертификаты (Let's Encrypt / self-signed) | → |
| istio | addon_istio |
Service mesh + Kiali UI | → |
| netbird | addon_netbird |
Self-hosted WireGuard VPN | → |
| crowdsec | addon_crowdsec |
IDS/IPS, nginx bouncer | → |
| Хранилище | |||
| nfs-server | addon_nfs_server |
NFS сервер | → |
| csi-nfs | addon_csi_nfs |
CSI NFS Driver + StorageClass | → |
| longhorn | addon_longhorn |
Distributed block storage | → |
| minio | addon_minio |
S3-совместимое объектное хранилище | → |
| csi-s3 | addon_csi_s3 |
S3/MinIO как PVC | → |
| csi-ceph | addon_csi_ceph |
Rook-Ceph distributed storage | → |
| csi-glusterfs | addon_csi_glusterfs |
GlusterFS CSI driver | → |
| Базы данных | |||
| postgresql | addon_postgresql |
PostgreSQL (shared для аддонов) | → |
| mysql | addon_mysql |
MySQL (Bitnami) | → |
| databasus | addon_databasus |
Web UI для бэкапов БД | → |
| Observability | |||
| metrics-server | addon_metrics_server |
kubectl top + HPA | → |
| prometheus-stack | addon_prometheus_stack |
Prometheus + Grafana + Alertmanager | → |
| loki | addon_loki |
Агрегация логов | → |
| promtail | addon_promtail |
Агент сбора логов → Loki | → |
| tempo | addon_tempo |
Distributed tracing | → |
| pushgateway | addon_pushgateway |
Метрики batch-задач | → |
| CI/CD | |||
| jenkins | addon_jenkins |
Jenkins CI/CD + k8s agents | → |
| gitea | addon_gitea |
Git hosting + Gitea Actions | → |
| argocd | addon_argocd |
GitOps (ArgoCD) | → |
| Безопасность | |||
| vault | addon_vault |
HashiCorp Vault | → |
| external-secrets | addon_external_secrets |
External Secrets Operator → Vault | → |
| vaultwarden | addon_vaultwarden |
Self-hosted Bitwarden | → |
| Инфраструктура | |||
| harbor | addon_harbor |
Container registry + proxy cache | → |
| kubernetes-dashboard | addon_kubernetes_dashboard |
K8S Web UI | → |
| velero | addon_velero |
Бэкап кластера + PVC в S3 | → |
| smtp-relay | addon_smtp_relay |
Postfix relay для email из подов | → |
| Файловые хранилища | |||
| nextcloud | addon_nextcloud |
Nextcloud облачное хранилище | → |
| owncloud | addon_owncloud |
ownCloud OCIS | → |
Конфигурация addons.yml
# 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:
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: ""