Files
K3S/addons/vaultwarden
Sergey Antropoff ed44d6418e Molecule и CI: единая схема тестов для аддонов и удобные параллельные прогоны
Makefile
- Уникальные имена контейнеров на каждый вызов make (ANSIBLE_RUN_ID); переопределение
  через ANSIBLE_CONTAINER_NAME / MOLECULE_CONTAINER_NAME; отдельное имя для
  Molecule, чтобы k3s-ansible и molecule не конфликтовали.
- Старые цели molecule-prometheus и molecule-istio переведены на molecule-addon
  (prometheus-stack, istio); добавлены явные molecule-addon-prometheus-stack и
  molecule-addon-istio; в molecule-addon-all включены prometheus-stack и istio
  (полный набор аддонов), скорректированы подписи.
- Phony-таргет dashboard (без внесения кода в dashboard/ в этот коммит).

Сценарии Molecule (converge/verify) — десятки аддонов
- Добавлены/выровнены переменные и шаблоны под текущие роли (harbor, hysteria2,
  ingress-*, jenkins, mediaserver, netbird, nextcloud, splitgw, vault,
  vaultwarden и др.).
- Helm/файлы на хост: delegate_to: localhost, run_once где уместно
  (technitium-dns, yandex-dns-controller); verify на localhost для
  file-based проверок.
- Уточнения проверок: metrics-server, minio, promtail, pushgateway, velero
  (bool из фактов/строк), splitgw (JSON, поиск портов/DNS-правил в структуре).
- В meta ролей: prometheus_stack + namespace, istio + namespace; у istio
  согласованы converge/verify (в т.ч. метрики, ослаблены жёсткие assert под
  шаблоны Kiali).
- csi-nfs: комментарий к volume_binding_mode (Immediate / WaitForFirstConsumer).

Инфраструктура
- .gitignore: каталог dashboard/ (локальная копия не в репозитории).
- docker-compose: убрано фиксированное container_name для параллельных
  ; TZ по умолчанию Europe/Moscow.
- roles/k3s/tasks/prereqs.yml: повторные попытки update_cache и apt install
  при кратковременных сбоях зеркал/сети.
2026-04-28 01:16:05 +03:00
..

Vaultwarden

Self-hosted Bitwarden-совместимый менеджер паролей. Лёгкая реализация на Rust. Поддерживает все официальные клиенты Bitwarden (Chrome, Firefox, iOS, Android, Desktop).

Быстрый старт

# group_vars/all/addons.yml
addon_vaultwarden: true
vaultwarden_domain: "https://vault.example.com"
vaultwarden_ingress_host: "vault.example.com"
vaultwarden_ingress_tls: true
vaultwarden_signups_allowed: false  # запретить самостоятельную регистрацию

Секреты в vault.yml:

vault_vaultwarden_admin_token: "random-secure-token"
vault_vaultwarden_smtp_password: "smtp-password"   # если нужен SMTP
make addon-vaultwarden

Параметры

Переменная Умолч. Описание
vaultwarden_domain Публичный URL (обязателен для WebAuthn)
vaultwarden_signups_allowed false Разрешить регистрацию
vaultwarden_admin_token vault Токен для /admin панели
vaultwarden_websocket_enabled true Live уведомления в клиентах
vaultwarden_storage_size 1Gi PVC для базы данных

Требования к HTTPS

Vaultwarden требует HTTPS для браузерных расширений и мобильных клиентов. Для homelab:

vaultwarden_ingress_tls: true
cert_manager_issuer: "selfsigned"   # или letsencrypt для публичных доменов

Панель администратора

Доступна по адресу https://vault.example.com/admin с токеном из vault_vaultwarden_admin_token.

Через /admin можно:

  • Создавать пользователей вручную (при signups_allowed: false)
  • Управлять организациями
  • Просматривать логи

SMTP уведомления

vaultwarden_smtp_enabled: true
vaultwarden_smtp_host: "smtp-relay.smtp-relay.svc.cluster.local"
vaultwarden_smtp_port: 25
vaultwarden_smtp_security: "off"
vaultwarden_smtp_from: "vault@example.com"

Или через внешний SMTP:

vaultwarden_smtp_host: "smtp.yandex.ru"
vaultwarden_smtp_port: 465
vaultwarden_smtp_security: "force_tls"
vaultwarden_smtp_username: "user@yandex.ru"

Подключение клиентов

  1. Установи расширение Bitwarden для браузера или мобильное приложение
  2. При входе выбери "Self-hosted" и укажи:
    • Server URL: https://vault.example.com
  3. Зарегистрируйся или войди

Резервное копирование

База данных SQLite хранится в PVC. Для бэкапа:

kubectl exec -n vaultwarden deployment/vaultwarden -- \
  sqlite3 /data/db.sqlite3 ".backup /tmp/backup.sqlite3"
kubectl cp vaultwarden/<pod>:/tmp/backup.sqlite3 ./vaultwarden-backup.sqlite3

Диагностика

kubectl logs -n vaultwarden deployment/vaultwarden -f
kubectl get pods -n vaultwarden