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 при кратковременных сбоях зеркал/сети.
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"
Подключение клиентов
- Установи расширение Bitwarden для браузера или мобильное приложение
- При входе выбери "Self-hosted" и укажи:
- Server URL:
https://vault.example.com
- Server URL:
- Зарегистрируйся или войди
Резервное копирование
База данных 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