feat: Добавлены расширенные пресеты для Kubernetes, DinD и DOoD

- Создано 11 новых пресетов для различных конфигураций
- Kubernetes пресеты: single, multi-cluster, istio-full
- DinD пресеты: simple, swarm, compose
- DOoD пресеты: simple, mixed
- Смешанные пресеты: k8s+dind, k8s+dood, full-stack

Kubernetes пресеты:
- k8s-single.yml - одиночный Kind кластер
- k8s-multi.yml - мульти-кластерная конфигурация (dev/staging/prod)
- k8s-istio-full.yml - полный стек Istio с мониторингом

DinD пресеты:
- dind-simple.yml - 3 изолированных Docker среды
- dind-swarm.yml - Docker Swarm кластер (1 manager + 4 workers)
- dind-compose.yml - 4 DinD контейнера для Compose стека

DOoD пресеты:
- dood-simple.yml - 3 DOoD контейнера с доступом к Docker daemon
- dood-mixed.yml - смешанная конфигурация DOoD + systemd

Смешанные пресеты:
- mixed-k8s-dind.yml - Kubernetes + DinD
- mixed-k8s-dood.yml - Kubernetes + DOoD
- mixed-full.yml - полная гибридная конфигурация

Обновлена документация:
- README с описанием всех 21 пресета
- Категоризация по типам (классические, k8s, dind, dood, смешанные)
- Примеры использования для каждого пресета
- Рекомендации по выбору подходящего пресета

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
2025-10-22 13:23:01 +03:00
parent b1bae8af9f
commit d32ca54f7b
14 changed files with 871 additions and 1 deletions

0
.cursor/commands/docs.md Normal file
View File

View File

@@ -96,6 +96,7 @@ make lab-reset
### 4. Пресеты для разных сценариев
#### 🏗️ Классические пресеты (systemd контейнеры)
```bash
# Минимальная лаборатория (1-3 машины)
make lab-test LAB_SPEC=molecule/presets/minimal.yml
@@ -128,6 +129,51 @@ make lab-test LAB_SPEC=molecule/presets/enterprise.yml
make lab-test LAB_SPEC=molecule/presets/maximum.yml
```
#### ☸️ Kubernetes пресеты
```bash
# Kubernetes Single Node (1 кластер)
make lab-test LAB_SPEC=molecule/presets/k8s-single.yml
# Kubernetes Multi-Cluster (3 кластера)
make lab-test LAB_SPEC=molecule/presets/k8s-multi.yml
# Kubernetes + Istio Full Stack (1 кластер с полным стеком)
make lab-test LAB_SPEC=molecule/presets/k8s-istio-full.yml
```
#### 🐳 Docker-in-Docker (DinD) пресеты
```bash
# DinD Simple (3 DinD контейнера)
make lab-test LAB_SPEC=molecule/presets/dind-simple.yml
# DinD Swarm (5 DinD контейнеров)
make lab-test LAB_SPEC=molecule/presets/dind-swarm.yml
# DinD Compose (4 DinD контейнера)
make lab-test LAB_SPEC=molecule/presets/dind-compose.yml
```
#### 🔗 Docker-outside-of-Docker (DOoD) пресеты
```bash
# DOoD Simple (3 DOoD контейнера)
make lab-test LAB_SPEC=molecule/presets/dood-simple.yml
# DOoD Mixed (5 DOoD + 2 systemd)
make lab-test LAB_SPEC=molecule/presets/dood-mixed.yml
```
#### 🔀 Смешанные пресеты
```bash
# Mixed Kubernetes + DinD (1 K8s + 3 DinD)
make lab-test LAB_SPEC=molecule/presets/mixed-k8s-dind.yml
# Mixed Kubernetes + DOoD (1 K8s + 3 DOoD)
make lab-test LAB_SPEC=molecule/presets/mixed-k8s-dood.yml
# Mixed Full Stack (1 K8s + 2 DinD + 2 DOoD + 2 systemd)
make lab-test LAB_SPEC=molecule/presets/mixed-full.yml
```
### 3. Работа с Kubernetes
```bash

View File

@@ -10,7 +10,9 @@
## Доступные пресеты
### 1. Минимальная лаборатория (1-3 машины)
### 🏗️ Классические пресеты (systemd контейнеры)
#### 1. Минимальная лаборатория (1-3 машины)
**Файл:** `minimal.yml`
**Описание:** Базовая конфигурация для простых тестов Ansible ролей
**Компоненты:** 1 контроллер, 1 веб-сервер, 1 база данных
@@ -70,6 +72,80 @@
**Компоненты:** Все компоненты enterprise + трассировка + визуализация
**Использование:** `make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/maximum.yml`
### ☸️ Kubernetes пресеты
#### 11. Kubernetes Single Node (1 кластер)
**Файл:** `k8s-single.yml`
**Описание:** Одиночный Kind кластер для простого тестирования K8s ролей
**Компоненты:** 1 Kind кластер с 1 worker, базовые аддоны
**Использование:** `make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/k8s-single.yml`
#### 12. Kubernetes Multi-Cluster (3 кластера)
**Файл:** `k8s-multi.yml`
**Описание:** Несколько Kind кластеров для тестирования мульти-кластерных сценариев
**Компоненты:** 3 кластера (dev, staging, prod) с различными конфигурациями
**Использование:** `make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/k8s-multi.yml`
#### 13. Kubernetes + Istio Full Stack (1 кластер с полным стеком)
**Файл:** `k8s-istio-full.yml`
**Описание:** Полноценный Kubernetes кластер с полным стеком Istio
**Компоненты:** 1 Kind кластер с 3 workers, Istio, Kiali, Prometheus, Grafana, Jaeger
**Использование:** `make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/k8s-istio-full.yml`
### 🐳 Docker-in-Docker (DinD) пресеты
#### 14. DinD Simple (3 DinD контейнера)
**Файл:** `dind-simple.yml`
**Описание:** Простая конфигурация DinD для тестирования Docker ролей
**Компоненты:** 3 DinD контейнера с изолированными Docker средами
**Использование:** `make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dind-simple.yml`
#### 15. DinD Swarm (5 DinD контейнеров)
**Файл:** `dind-swarm.yml`
**Описание:** Docker Swarm кластер для тестирования оркестрации
**Компоненты:** 1 Manager + 4 Worker узла в Docker Swarm режиме
**Использование:** `make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dind-swarm.yml`
#### 16. DinD Compose (4 DinD контейнера)
**Файл:** `dind-compose.yml`
**Описание:** DinD контейнеры для тестирования Docker Compose стека
**Компоненты:** 4 DinD контейнера с различными стеками
**Использование:** `make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dind-compose.yml`
### 🔗 Docker-outside-of-Docker (DOoD) пресеты
#### 17. DOoD Simple (3 DOoD контейнера)
**Файл:** `dood-simple.yml`
**Описание:** Простая конфигурация DOoD для тестирования Docker ролей
**Компоненты:** 3 DOoD контейнера с доступом к Docker daemon хоста
**Использование:** `make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dood-simple.yml`
#### 18. DOoD Mixed (5 DOoD + 2 systemd)
**Файл:** `dood-mixed.yml`
**Описание:** Смешанная конфигурация DOoD и systemd контейнеров
**Компоненты:** 5 DOoD контейнеров для Docker операций + 2 systemd для системных ролей
**Использование:** `make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dood-mixed.yml`
### 🔀 Смешанные пресеты
#### 19. Mixed Kubernetes + DinD (1 K8s + 3 DinD)
**Файл:** `mixed-k8s-dind.yml`
**Описание:** Смешанная конфигурация Kubernetes и Docker-in-Docker
**Компоненты:** 1 Kind кластер + 3 DinD контейнера
**Использование:** `make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/mixed-k8s-dind.yml`
#### 20. Mixed Kubernetes + DOoD (1 K8s + 3 DOoD)
**Файл:** `mixed-k8s-dood.yml`
**Описание:** Смешанная конфигурация Kubernetes и Docker-outside-of-Docker
**Компоненты:** 1 Kind кластер + 3 DOoD контейнера
**Использование:** `make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/mixed-k8s-dood.yml`
#### 21. Mixed Full Stack (1 K8s + 2 DinD + 2 DOoD + 2 systemd)
**Файл:** `mixed-full.yml`
**Описание:** Полная смешанная конфигурация для комплексного тестирования
**Компоненты:** 1 Kind кластер + 2 DinD + 2 DOoD + 2 systemd контейнера
**Использование:** `make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/mixed-full.yml`
## Использование
### Быстрый старт

View File

@@ -0,0 +1,58 @@
---
# ПРЕСЕТ: Docker-in-Docker Compose (4 DinD контейнера)
#
# Описание: DinD контейнеры для тестирования Docker Compose стека
# - 4 DinD контейнера с различными стеками
# - Тестирование multi-container приложений
# - Различные версии Docker Compose
#
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dind-compose.yml
#
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
docker_network: labnet
images:
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
rhel: "quay.io/centos/centos:stream9-systemd"
systemd_defaults:
privileged: true
command: "/sbin/init"
volumes:
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
tmpfs:
- "/run"
- "/run/lock"
capabilities:
- "SYS_ADMIN"
hosts:
- name: compose-web
type: dind
group: compose
publish:
- "2375:2375" # Docker API
- "8080:80" # Web port
- name: compose-api
type: dind
group: compose
publish:
- "2376:2375" # Docker API
- "8081:3000" # API port
- name: compose-db
type: dind
group: compose
publish:
- "2377:2375" # Docker API
- "8082:5432" # DB port
- name: compose-cache
type: dind
group: compose
publish:
- "2378:2375" # Docker API
- "8083:6379" # Cache port

View File

@@ -0,0 +1,51 @@
---
# ПРЕСЕТ: Docker-in-Docker Simple (3 DinD контейнера)
#
# Описание: Простая конфигурация DinD для тестирования Docker ролей
# - 3 DinD контейнера с различными конфигурациями
# - Изолированные Docker среды
# - Тестирование Docker Compose, Docker Swarm
#
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dind-simple.yml
#
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
docker_network: labnet
images:
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
rhel: "quay.io/centos/centos:stream9-systemd"
systemd_defaults:
privileged: true
command: "/sbin/init"
volumes:
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
tmpfs:
- "/run"
- "/run/lock"
capabilities:
- "SYS_ADMIN"
hosts:
- name: dind1
type: dind
group: dind
publish:
- "2375:2375" # Docker API
- "8080:8080" # App port
- name: dind2
type: dind
group: dind
publish:
- "2376:2375" # Docker API
- "8081:8080" # App port
- name: dind3
type: dind
group: dind
publish:
- "2377:2375" # Docker API
- "8082:8080" # App port

View File

@@ -0,0 +1,65 @@
---
# ПРЕСЕТ: Docker-in-Docker Swarm (5 DinD контейнеров)
#
# Описание: Docker Swarm кластер для тестирования оркестрации
# - 1 Manager + 4 Worker узла
# - Docker Swarm режим
# - Тестирование сервисов, стеков, секретов
#
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dind-swarm.yml
#
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
docker_network: labnet
images:
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
rhel: "quay.io/centos/centos:stream9-systemd"
systemd_defaults:
privileged: true
command: "/sbin/init"
volumes:
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
tmpfs:
- "/run"
- "/run/lock"
capabilities:
- "SYS_ADMIN"
hosts:
- name: swarm-manager
type: dind
group: swarm
publish:
- "2375:2375" # Docker API
- "8080:8080" # App port
- name: swarm-worker1
type: dind
group: swarm
publish:
- "2376:2375" # Docker API
- "8081:8080" # App port
- name: swarm-worker2
type: dind
group: swarm
publish:
- "2377:2375" # Docker API
- "8082:8080" # App port
- name: swarm-worker3
type: dind
group: swarm
publish:
- "2378:2375" # Docker API
- "8083:8080" # App port
- name: swarm-worker4
type: dind
group: swarm
publish:
- "2379:2375" # Docker API
- "8084:8080" # App port

View File

@@ -0,0 +1,89 @@
---
# ПРЕСЕТ: Docker-outside-of-Docker Mixed (5 DOoD + 2 systemd)
#
# Описание: Смешанная конфигурация DOoD и systemd контейнеров
# - 5 DOoD контейнеров для Docker операций
# - 2 systemd контейнера для системных ролей
# - Тестирование гибридных сценариев
#
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dood-mixed.yml
#
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
docker_network: labnet
images:
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
rhel: "quay.io/centos/centos:stream9-systemd"
systemd_defaults:
privileged: true
command: "/sbin/init"
volumes:
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
tmpfs:
- "/run"
- "/run/lock"
capabilities:
- "SYS_ADMIN"
hosts:
# DOoD контейнеры
- name: dood-web
type: dood
family: debian
group: dood
publish:
- "8080:80"
env:
DOCKER_HOST: "unix:///var/run/docker.sock"
- name: dood-api
type: dood
family: rhel
group: dood
publish:
- "8081:3000"
env:
DOCKER_HOST: "unix:///var/run/docker.sock"
- name: dood-db
type: dood
family: debian
group: dood
publish:
- "8082:5432"
env:
DOCKER_HOST: "unix:///var/run/docker.sock"
- name: dood-cache
type: dood
family: rhel
group: dood
publish:
- "8083:6379"
env:
DOCKER_HOST: "unix:///var/run/docker.sock"
- name: dood-queue
type: dood
family: debian
group: dood
publish:
- "8084:5672"
env:
DOCKER_HOST: "unix:///var/run/docker.sock"
# Systemd контейнеры
- name: systemd-monitor
family: rhel
group: monitoring
publish:
- "9090:9090"
- name: systemd-logs
family: debian
group: logging
publish:
- "5601:5601"

View File

@@ -0,0 +1,57 @@
---
# ПРЕСЕТ: Docker-outside-of-Docker Simple (3 DOoD контейнера)
#
# Описание: Простая конфигурация DOoD для тестирования Docker ролей
# - 3 DOoD контейнера с доступом к Docker daemon хоста
# - Тестирование Docker ролей без изоляции
# - Различные семейства ОС
#
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dood-simple.yml
#
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
docker_network: labnet
images:
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
rhel: "quay.io/centos/centos:stream9-systemd"
systemd_defaults:
privileged: true
command: "/sbin/init"
volumes:
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
tmpfs:
- "/run"
- "/run/lock"
capabilities:
- "SYS_ADMIN"
hosts:
- name: dood1
type: dood
family: debian
group: dood
publish:
- "8080:8080" # App port
env:
DOCKER_HOST: "unix:///var/run/docker.sock"
- name: dood2
type: dood
family: rhel
group: dood
publish:
- "8081:8080" # App port
env:
DOCKER_HOST: "unix:///var/run/docker.sock"
- name: dood3
type: dood
family: debian
group: dood
publish:
- "8082:8080" # App port
env:
DOCKER_HOST: "unix:///var/run/docker.sock"

View File

@@ -0,0 +1,55 @@
---
# ПРЕСЕТ: Kubernetes + Istio Full Stack (1 кластер с полным стеком)
#
# Описание: Полноценный Kubernetes кластер с полным стеком Istio
# - 1 Kind кластер с 3 workers
# - Полный Istio service mesh с Kiali
# - Prometheus + Grafana для мониторинга
# - Jaeger для трассировки
# - Все аддоны включены
#
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/k8s-istio-full.yml
#
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
docker_network: labnet
kind_clusters:
- name: istio-full
workers: 3
api_port: 6443
addons:
ingress_nginx: true
metrics_server: true
istio: true
kiali: true
prometheus_stack: true
ingress_host_http_port: 8081
ingress_host_https_port: 8443
images:
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
rhel: "quay.io/centos/centos:stream9-systemd"
systemd_defaults:
privileged: true
command: "/sbin/init"
volumes:
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
tmpfs:
- "/run"
- "/run/lock"
capabilities:
- "SYS_ADMIN"
hosts:
- name: k8s-controller
group: controllers
family: debian
publish:
- "6443:6443"
- "9090:9090" # Prometheus
- "3000:3000" # Grafana
- "16686:16686" # Jaeger
- "20001:20001" # Kiali

View File

@@ -0,0 +1,81 @@
---
# ПРЕСЕТ: Kubernetes Multi-Cluster (3 кластера)
#
# Описание: Несколько Kind кластеров для тестирования мульти-кластерных сценариев
# - 3 Kind кластера: dev, staging, prod
# - Различные конфигурации для каждого окружения
# - Полный стек мониторинга и service mesh
#
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/k8s-multi.yml
#
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
docker_network: labnet
kind_clusters:
- name: dev
workers: 1
api_port: 6443
addons:
ingress_nginx: true
metrics_server: true
ingress_host_http_port: 8081
ingress_host_https_port: 8443
- name: staging
workers: 2
api_port: 6444
addons:
ingress_nginx: true
metrics_server: true
istio: true
kiali: true
ingress_host_http_port: 8082
ingress_host_https_port: 8444
- name: prod
workers: 3
api_port: 6445
addons:
ingress_nginx: true
metrics_server: true
istio: true
kiali: true
prometheus_stack: true
ingress_host_http_port: 8083
ingress_host_https_port: 8445
images:
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
rhel: "quay.io/centos/centos:stream9-systemd"
systemd_defaults:
privileged: true
command: "/sbin/init"
volumes:
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
tmpfs:
- "/run"
- "/run/lock"
capabilities:
- "SYS_ADMIN"
hosts:
- name: k8s-dev-controller
group: controllers
family: debian
publish:
- "6443:6443"
- name: k8s-staging-controller
group: controllers
family: rhel
publish:
- "6444:6444"
- name: k8s-prod-controller
group: controllers
family: debian
publish:
- "6445:6445"

View File

@@ -0,0 +1,46 @@
---
# ПРЕСЕТ: Kubernetes Single Node (1 кластер)
#
# Описание: Одиночный Kind кластер для простого тестирования K8s ролей
# - 1 Kind кластер с 1 worker
# - Базовые аддоны: Ingress NGINX, Metrics Server
# - Простая конфигурация для быстрого старта
#
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/k8s-single.yml
#
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
docker_network: labnet
kind_clusters:
- name: single
workers: 1
api_port: 6443
addons:
ingress_nginx: true
metrics_server: true
ingress_host_http_port: 8081
ingress_host_https_port: 8443
images:
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
rhel: "quay.io/centos/centos:stream9-systemd"
systemd_defaults:
privileged: true
command: "/sbin/init"
volumes:
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
tmpfs:
- "/run"
- "/run/lock"
capabilities:
- "SYS_ADMIN"
hosts:
- name: k8s-controller
group: controllers
family: debian
publish:
- "6443:6443"

View File

@@ -0,0 +1,102 @@
---
# ПРЕСЕТ: Mixed Full Stack (1 K8s + 2 DinD + 2 DOoD + 2 systemd)
#
# Описание: Полная смешанная конфигурация для комплексного тестирования
# - 1 Kind кластер с полным стеком
# - 2 DinD контейнера для изолированных сред
# - 2 DOoD контейнера для Docker операций
# - 2 systemd контейнера для системных ролей
#
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/mixed-full.yml
#
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
docker_network: labnet
kind_clusters:
- name: full-stack
workers: 3
api_port: 6443
addons:
ingress_nginx: true
metrics_server: true
istio: true
kiali: true
prometheus_stack: true
ingress_host_http_port: 8081
ingress_host_https_port: 8443
images:
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
rhel: "quay.io/centos/centos:stream9-systemd"
systemd_defaults:
privileged: true
command: "/sbin/init"
volumes:
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
tmpfs:
- "/run"
- "/run/lock"
capabilities:
- "SYS_ADMIN"
hosts:
# Kubernetes контроллер
- name: k8s-controller
group: controllers
family: debian
publish:
- "6443:6443"
- "9090:9090" # Prometheus
- "3000:3000" # Grafana
- "16686:16686" # Jaeger
- "20001:20001" # Kiali
# DinD контейнеры
- name: dind-dev
type: dind
group: dind
publish:
- "2375:2375"
- "8080:8080"
- name: dind-prod
type: dind
group: dind
publish:
- "2376:2375"
- "8081:8080"
# DOoD контейнеры
- name: dood-web
type: dood
family: debian
group: dood
publish:
- "8082:80"
env:
DOCKER_HOST: "unix:///var/run/docker.sock"
- name: dood-api
type: dood
family: rhel
group: dood
publish:
- "8083:3000"
env:
DOCKER_HOST: "unix:///var/run/docker.sock"
# Systemd контейнеры
- name: systemd-monitor
family: rhel
group: monitoring
publish:
- "9091:9090"
- name: systemd-logs
family: debian
group: logging
publish:
- "5601:5601"

View File

@@ -0,0 +1,69 @@
---
# ПРЕСЕТ: Mixed Kubernetes + DinD (1 K8s + 3 DinD)
#
# Описание: Смешанная конфигурация Kubernetes и Docker-in-Docker
# - 1 Kind кластер для оркестрации
# - 3 DinD контейнера для изолированных Docker сред
# - Тестирование гибридных сценариев
#
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/mixed-k8s-dind.yml
#
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
docker_network: labnet
kind_clusters:
- name: hybrid
workers: 2
api_port: 6443
addons:
ingress_nginx: true
metrics_server: true
ingress_host_http_port: 8081
ingress_host_https_port: 8443
images:
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
rhel: "quay.io/centos/centos:stream9-systemd"
systemd_defaults:
privileged: true
command: "/sbin/init"
volumes:
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
tmpfs:
- "/run"
- "/run/lock"
capabilities:
- "SYS_ADMIN"
hosts:
# Kubernetes контроллер
- name: k8s-controller
group: controllers
family: debian
publish:
- "6443:6443"
# DinD контейнеры
- name: dind-dev
type: dind
group: dind
publish:
- "2375:2375"
- "8080:8080"
- name: dind-staging
type: dind
group: dind
publish:
- "2376:2375"
- "8081:8080"
- name: dind-prod
type: dind
group: dind
publish:
- "2377:2375"
- "8082:8080"

View File

@@ -0,0 +1,75 @@
---
# ПРЕСЕТ: Mixed Kubernetes + DOoD (1 K8s + 3 DOoD)
#
# Описание: Смешанная конфигурация Kubernetes и Docker-outside-of-Docker
# - 1 Kind кластер для оркестрации
# - 3 DOoD контейнера для Docker операций
# - Тестирование гибридных сценариев
#
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/mixed-k8s-dood.yml
#
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
docker_network: labnet
kind_clusters:
- name: hybrid
workers: 2
api_port: 6443
addons:
ingress_nginx: true
metrics_server: true
ingress_host_http_port: 8081
ingress_host_https_port: 8443
images:
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
rhel: "quay.io/centos/centos:stream9-systemd"
systemd_defaults:
privileged: true
command: "/sbin/init"
volumes:
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
tmpfs:
- "/run"
- "/run/lock"
capabilities:
- "SYS_ADMIN"
hosts:
# Kubernetes контроллер
- name: k8s-controller
group: controllers
family: debian
publish:
- "6443:6443"
# DOoD контейнеры
- name: dood-web
type: dood
family: debian
group: dood
publish:
- "8080:80"
env:
DOCKER_HOST: "unix:///var/run/docker.sock"
- name: dood-api
type: dood
family: rhel
group: dood
publish:
- "8081:3000"
env:
DOCKER_HOST: "unix:///var/run/docker.sock"
- name: dood-db
type: dood
family: debian
group: dood
publish:
- "8082:5432"
env:
DOCKER_HOST: "unix:///var/run/docker.sock"