Files
K3S/docker-compose.yml
Sergey Antropoff ed44d6418e Molecule и CI: единая схема тестов для аддонов и удобные параллельные прогоны
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
  при кратковременных сбоях зеркал/сети.
2026-04-28 01:16:05 +03:00

64 lines
2.8 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# docker-compose.yml — Ansible Runner для K3S стека
# Использование: управляется через Makefile (make install, make health, ...)
# Прямой запуск: docker compose run --rm ansible install
version: "3.8"
services:
ansible:
build:
context: .
dockerfile: Dockerfile
args:
HELM_VERSION: "3.14.4"
KUBECTL_VERSION: "v1.29.3"
image: k3s-ansible:latest
# container_name намеренно не задаём: так можно параллелить
# `docker compose run --rm ansible ...` — имена не конфликтуют.
# При необходимости задать префикс: COMPOSE_PROJECT_NAME=stack1 docker compose run ...
# ── Volumes ──────────────────────────────────────────────────────────────
volumes:
# Весь проект — монтируется внутрь контейнера
- .:/ansible
# SSH ключи с хост-машины (read-only)
- ${SSH_KEY_PATH:-~/.ssh}:/root/.ssh:ro
# Vault-пароль файл (опционально)
# - ./.vault_pass:/ansible/.vault_pass:ro
# ── Переменные окружения ──────────────────────────────────────────────────
environment:
TZ: ${TZ:-Europe/Moscow}
# Пароль vault — задай в .env файле или передай через командную строку
VAULT_PASSWORD: ${VAULT_PASSWORD:-}
# Уровень подробности вывода (0 = обычный, 1-4 = debug)
ANSIBLE_VERBOSITY: ${ANSIBLE_VERBOSITY:-0}
# Теги для запуска (пусто = все)
ANSIBLE_TAGS: ${ANSIBLE_TAGS:-}
ANSIBLE_SKIP_TAGS: ${ANSIBLE_SKIP_TAGS:-}
# Дополнительные переменные
EXTRA_VARS: ${EXTRA_VARS:-}
# Версия K3S для upgrade
VERSION: ${VERSION:-}
# Ansible настройки
ANSIBLE_FORCE_COLOR: "1"
ANSIBLE_HOST_KEY_CHECKING: "False"
ANSIBLE_STDOUT_CALLBACK: "yaml"
# ── Рабочая директория ────────────────────────────────────────────────────
working_dir: /ansible
# ── Сеть: хост (нужен для SSH до серверов в локальной сети) ──────────────
network_mode: host
# ── Интерактивный режим (нужен для --ask-vault-pass) ─────────────────────
stdin_open: true
tty: true