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 в таблицу аддонов
101 lines
2.7 KiB
YAML
101 lines
2.7 KiB
YAML
---
|
|
# HA Cluster scenario: 3 masters (embedded etcd) + 2 workers
|
|
# Tests: k3s config rendering, kube-vip template, agent config
|
|
# Topology mirrors a real home-lab cluster.
|
|
|
|
driver:
|
|
name: docker
|
|
|
|
platforms:
|
|
# ── 3 мастера — embedded etcd HA ──────────────────────────────────────────
|
|
- name: master01
|
|
image: geerlingguy/docker-ubuntu2204-ansible:latest
|
|
pre_build_image: true
|
|
privileged: true
|
|
volumes:
|
|
- /sys/fs/cgroup:/sys/fs/cgroup:rw
|
|
cgroupns_mode: host
|
|
command: /lib/systemd/systemd
|
|
groups:
|
|
- k3s_master
|
|
- k3s_cluster
|
|
|
|
- name: master02
|
|
image: geerlingguy/docker-ubuntu2204-ansible:latest
|
|
pre_build_image: true
|
|
privileged: true
|
|
volumes:
|
|
- /sys/fs/cgroup:/sys/fs/cgroup:rw
|
|
cgroupns_mode: host
|
|
command: /lib/systemd/systemd
|
|
groups:
|
|
- k3s_master
|
|
- k3s_cluster
|
|
|
|
- name: master03
|
|
image: geerlingguy/docker-ubuntu2204-ansible:latest
|
|
pre_build_image: true
|
|
privileged: true
|
|
volumes:
|
|
- /sys/fs/cgroup:/sys/fs/cgroup:rw
|
|
cgroupns_mode: host
|
|
command: /lib/systemd/systemd
|
|
groups:
|
|
- k3s_master
|
|
- k3s_cluster
|
|
|
|
# ── 2 воркера ─────────────────────────────────────────────────────────────
|
|
- name: worker01
|
|
image: geerlingguy/docker-ubuntu2204-ansible:latest
|
|
pre_build_image: true
|
|
privileged: true
|
|
volumes:
|
|
- /sys/fs/cgroup:/sys/fs/cgroup:rw
|
|
cgroupns_mode: host
|
|
command: /lib/systemd/systemd
|
|
groups:
|
|
- k3s_workers
|
|
- k3s_cluster
|
|
|
|
- name: worker02
|
|
image: geerlingguy/docker-ubuntu2204-ansible:latest
|
|
pre_build_image: true
|
|
privileged: true
|
|
volumes:
|
|
- /sys/fs/cgroup:/sys/fs/cgroup:rw
|
|
cgroupns_mode: host
|
|
command: /lib/systemd/systemd
|
|
groups:
|
|
- k3s_workers
|
|
- k3s_cluster
|
|
|
|
provisioner:
|
|
name: ansible
|
|
playbooks:
|
|
prepare: prepare.yml
|
|
converge: converge.yml
|
|
verify: verify.yml
|
|
config_options:
|
|
defaults:
|
|
interpreter_python: auto_silent
|
|
inventory:
|
|
group_vars:
|
|
# Masters — server config with cluster-init / join logic
|
|
k3s_master:
|
|
k3s_etcd_type: embedded
|
|
k3s_join_address: "192.168.1.100" # mock kube-vip VIP
|
|
# Workers — agent config
|
|
k3s_workers:
|
|
k3s_api_url: "https://192.168.1.100:6443"
|
|
k3s_node_token: "K10::server:molecule-test-node-token"
|
|
k3s_node_taints: []
|
|
k3s_node_labels: []
|
|
|
|
verifier:
|
|
name: ansible
|
|
|
|
lint: |
|
|
set -e
|
|
yamllint .
|
|
ansible-lint
|