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 при кратковременных сбоях зеркал/сети.
64 lines
2.8 KiB
YAML
64 lines
2.8 KiB
YAML
# 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
|