Files
K3S/docs/addons.md
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

9.6 KiB
Raw Blame History

Аддоны

Все аддоны управляются через флаги в 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: ""