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 в таблицу аддонов
43 lines
1.2 KiB
YAML
43 lines
1.2 KiB
YAML
---
|
|
- 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']
|