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 в таблицу аддонов
This commit is contained in:
42
molecule/cluster/prepare.yml
Normal file
42
molecule/cluster/prepare.yml
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
- name: Prepare cluster test environment
|
||||
hosts: all
|
||||
become: true
|
||||
gather_facts: false
|
||||
|
||||
tasks:
|
||||
- name: Wait for systemd to start
|
||||
ansible.builtin.command: systemctl is-system-running
|
||||
register: systemd_running
|
||||
until: systemd_running.stdout in ['running', 'degraded']
|
||||
retries: 20
|
||||
delay: 3
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
|
||||
- name: Install Python3
|
||||
ansible.builtin.raw: apt-get update && apt-get install -y python3
|
||||
changed_when: true
|
||||
|
||||
- name: Create k3s directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
mode: "0755"
|
||||
loop:
|
||||
- /etc/kubernetes/k3s
|
||||
- /var/lib/kubernetes/k3s/server
|
||||
- /var/lib/kubernetes/k3s/agent
|
||||
|
||||
- name: Mock k3s binary (simulates pre-installed K3s)
|
||||
ansible.builtin.copy:
|
||||
content: "#!/bin/bash\necho 'k3s mock'; exit 0\n"
|
||||
dest: /usr/local/bin/k3s
|
||||
mode: "0755"
|
||||
|
||||
- name: Mock k3s node-token (masters only)
|
||||
ansible.builtin.copy:
|
||||
content: "K10::server:molecule-test-node-token\n"
|
||||
dest: /var/lib/kubernetes/k3s/server/node-token
|
||||
mode: "0600"
|
||||
when: inventory_hostname in groups['k3s_master']
|
||||
Reference in New Issue
Block a user