Files
K3S/requirements-python.txt
Sergey Antropoff 91299fcc1b test: добавить полное покрытие Molecule + HTML report генератор
Molecule тесты для всех аддонов и кластерный topology тест:

Аддоны (Helm lint + template + assertions):
- addons/technitium-dns/role/molecule/ — Primary/Secondary DNS, CronJob, kube-vip
- addons/authelia/role/molecule/ — OIDC clients, access_control, manifests
- addons/ingress-proxypass/role/molecule/ — proxies, Service/Endpoints/Ingress
- addons/ingress-add-domains/role/molecule/ — entries, Ingress per namespace
- addons/yandex-dns-controller/role/molecule/ — CronJob, ConfigMap, RBAC

Кластер:
- molecule/cluster/ — 3 master (embedded etcd HA) + 2 worker topology тест

Инфраструктура:
- scripts/molecule-report.py — генератор HTML отчётов из JUnit XML
  (читает /tmp/molecule-junit/*.xml → /tmp/molecule-report.html)
- requirements-python.txt — комментарий к отчётному блоку
- docker/entrypoint.sh — добавлены команды molecule-addon, molecule-cluster,
  molecule-report с автоматическим включением junit callback
- Makefile — targets: molecule-cluster, molecule-addon-*, molecule-addon-all,
  molecule-report; molecule-all генерирует HTML отчёт
- docs/molecule-testing.md — полная документация всех сценариев
- docs/addons.md — добавлены technitium-dns и authelia в таблицу аддонов
2026-04-26 18:57:11 +03:00

33 lines
1.2 KiB
Plaintext

# Ansible core + плагины для K3S стека
ansible-core>=2.16,<2.18
ansible>=9.0.0
# Kubernetes / Helm модули
kubernetes>=28.1.0
openshift>=0.13.2
# Утилиты
jinja2>=3.1.0
pyyaml>=6.0
netaddr>=0.10.0 # для ansible.utils.ipaddr
dnspython>=2.4.0 # для DNS lookup плагинов
cryptography>=41.0.0 # для Ansible Vault
# Docker API (для Molecule docker driver + основной runner)
docker>=7.0.0
# ─── Molecule (тестирование ролей) ────────────────────────────────────────────
molecule>=6.0.3
molecule-plugins[docker]>=23.5.3
# Линтинг
ansible-lint>=24.2.0
yamllint>=1.35.0
# Цветной вывод
rich>=13.0.0
# ─── Molecule HTML отчёты ────────────────────────────────────────────────────
# molecule-report.py читает JUnit XML и генерирует HTML без внешних зависимостей
# (используется только встроенный xml.etree.ElementTree + html)