feat: добавлены аддоны CSI-S3, CSI-Ceph, CSI-GlusterFS, Vaultwarden

- CSI-S3 (ctrox/csi-s3): монтирование S3/MinIO бакетов как PVC,
  авто-интеграция с addon_minio через internal MinIO endpoint
- Rook-Ceph (csi-ceph): distributed block (RWO) и filesystem (RWX) storage,
  оператор Helm + CephCluster CRD + StorageClasses, опциональный Dashboard Ingress
- CSI GlusterFS: установка glusterfs-client на все ноды, CSI Driver из GitHub
  releases, StorageClass с Heketi provisioner, Endpoints для прямых подключений
- Vaultwarden (guerzon/vaultwarden): self-hosted Bitwarden, авто-версия,
  SMTP smtp.yandex.ru:465/force_tls, WebSocket, ingress TLS, ServiceMonitor

Обновлены: playbooks/addons.yml (8 пропущенных аддонов + 4 новых),
group_vars/all/addons.yml (флаги + комментарии конфигурации),
vault.yml.example (vaultwarden_admin_token, smtp_password, heketi_secret),
Makefile (PHONY + 4 новых цели)
This commit is contained in:
Sergey Antropoff
2026-04-25 18:19:22 +03:00
parent 5dc0fbcd3a
commit a209b8a9bf
20 changed files with 891 additions and 0 deletions

View File

@@ -29,6 +29,10 @@ addon_loki: false # Loki (агрегация логов)
addon_promtail: false # Promtail (агент сбора логов → Loki)
addon_tempo: false # Tempo (distributed tracing)
addon_pushgateway: false # Prometheus Pushgateway (метрики batch-задач)
addon_csi_s3: false # CSI S3 Driver (объектное хранилище как PVC, авто-MinIO)
addon_csi_ceph: false # CSI Ceph / Rook-Ceph (distributed block + filesystem storage)
addon_csi_glusterfs: false # CSI GlusterFS Driver (требует внешний GlusterFS + Heketi)
addon_vaultwarden: false # Vaultwarden (self-hosted Bitwarden-совместимый менеджер паролей)
# ─── NFS Server ───────────────────────────────────────────────────────────────
nfs_exports:
@@ -241,6 +245,48 @@ minio_api_ingress_host: "s3.example.com"
# pushgateway_ingress_host: "pushgateway.example.com"
# pushgateway_persistence_enabled: false # сохранять метрики между рестартами
# ─── CSI S3 ───────────────────────────────────────────────────────────────────
# Монтирует S3/MinIO бакеты как PersistentVolume в поды.
# При addon_minio: true — автоматически использует внутренний MinIO.
# csi_s3_mounter: "geesefs" # geesefs | s3fs | rclone
# csi_s3_endpoint: "" # авто-MinIO если addon_minio: true
# csi_s3_access_key: "" # авто из vault_minio_root_user
# csi_s3_secret_key: "" # авто из vault_minio_root_password
# ─── CSI Ceph / Rook-Ceph ─────────────────────────────────────────────────────
# Distributed block (RWO) и filesystem (RWX) storage на базе Ceph.
# Требует минимум 3 ноды с незанятыми дисками для Ceph OSD.
# rook_ceph_mon_count: 3
# rook_ceph_block_replica_count: 3 # для single-node задай 1
# rook_ceph_block_storage_class: "rook-ceph-block"
# rook_ceph_filesystem_storage_class: "rook-ceph-filesystem"
# rook_ceph_dashboard_ingress_enabled: false
# rook_ceph_dashboard_ingress_host: "ceph.example.com"
# ─── CSI GlusterFS ────────────────────────────────────────────────────────────
# Требует внешний GlusterFS кластер + Heketi REST API.
# csi_glusterfs_heketi_url: "http://heketi.glusterfs.local:8080"
# csi_glusterfs_cluster_id: "" # heketi-cli cluster list
# csi_glusterfs_volume_type: "replicate:3"
# csi_glusterfs_endpoints: # прямое подключение без Heketi
# - name: "gluster01"
# ip: "192.168.1.10"
# ─── Vaultwarden ──────────────────────────────────────────────────────────────
# Self-hosted Bitwarden-совместимый менеджер паролей.
# Секреты задаются в vault.yml:
# vault_vaultwarden_admin_token: "..." # токен доступа к /admin
# vault_vaultwarden_smtp_password: "..." # пароль SMTP
# vaultwarden_domain: "https://vault.example.com"
# vaultwarden_signups_allowed: false
# vaultwarden_ingress_host: "vault.example.com"
# vaultwarden_smtp_enabled: false
# vaultwarden_smtp_host: "smtp.yandex.ru"
# vaultwarden_smtp_from: "vault@example.com"
# vaultwarden_smtp_port: 465
# vaultwarden_smtp_security: "force_tls" # force_tls | starttls | off
# vaultwarden_smtp_username: "user@example.com"
# ─── etcd backup ──────────────────────────────────────────────────────────────
etcd_backup_dir: "{{ k3s_data_dir }}/server/db/snapshots"
etcd_backup_retention: 5 # сколько снимков хранить