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:
0
.cursor/commands/docs.md
Normal file
0
.cursor/commands/docs.md
Normal 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
|
||||
|
||||
@@ -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`
|
||||
|
||||
## Использование
|
||||
|
||||
### Быстрый старт
|
||||
|
||||
58
molecule/presets/dind-compose.yml
Normal file
58
molecule/presets/dind-compose.yml
Normal 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
|
||||
51
molecule/presets/dind-simple.yml
Normal file
51
molecule/presets/dind-simple.yml
Normal 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
|
||||
65
molecule/presets/dind-swarm.yml
Normal file
65
molecule/presets/dind-swarm.yml
Normal 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
|
||||
89
molecule/presets/dood-mixed.yml
Normal file
89
molecule/presets/dood-mixed.yml
Normal 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"
|
||||
57
molecule/presets/dood-simple.yml
Normal file
57
molecule/presets/dood-simple.yml
Normal 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"
|
||||
55
molecule/presets/k8s-istio-full.yml
Normal file
55
molecule/presets/k8s-istio-full.yml
Normal 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
|
||||
81
molecule/presets/k8s-multi.yml
Normal file
81
molecule/presets/k8s-multi.yml
Normal 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"
|
||||
46
molecule/presets/k8s-single.yml
Normal file
46
molecule/presets/k8s-single.yml
Normal 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"
|
||||
102
molecule/presets/mixed-full.yml
Normal file
102
molecule/presets/mixed-full.yml
Normal 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"
|
||||
69
molecule/presets/mixed-k8s-dind.yml
Normal file
69
molecule/presets/mixed-k8s-dind.yml
Normal 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"
|
||||
75
molecule/presets/mixed-k8s-dood.yml
Normal file
75
molecule/presets/mixed-k8s-dood.yml
Normal 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"
|
||||
Reference in New Issue
Block a user