- Создана структура molecule/universal/ с поддержкой DinD и DOoD - Добавлена поддержка Kind кластеров для Kubernetes тестирования - Интегрированы Helm charts (nginx, prometheus-stack) - Добавлена поддержка Istio service mesh с Kiali - Создан Makefile с lab-целями для управления лабораторией - Добавлена поддержка Prometheus + Grafana с автопровижинингом - Создан README с подробной документацией Автор: Сергей Антропов Сайт: https://devops.org.ru
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| ---
 | ||
| # Конфигурация универсальной лаборатории
 | ||
| # Автор: Сергей Антропов
 | ||
| # Сайт: https://devops.org.ru
 | ||
| 
 | ||
| # Сеть для лаборатории
 | ||
| docker_network: labnet
 | ||
| 
 | ||
| # Образы для разных семейств ОС
 | ||
| images:
 | ||
|   debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
 | ||
|   rhel: "quay.io/centos/centos:stream9-systemd"
 | ||
|   # Можно использовать собственные образы
 | ||
|   # debian: "inecs/ansible:ubuntu"
 | ||
|   # rhel: "inecs/ansible:centos"
 | ||
| 
 | ||
| # Настройки по умолчанию для systemd контейнеров
 | ||
| systemd_defaults:
 | ||
|   privileged: true
 | ||
|   command: "/sbin/init"
 | ||
|   volumes:
 | ||
|     - "/sys/fs/cgroup:/sys/fs/cgroup:ro"
 | ||
|   tmpfs:
 | ||
|     - "/run"
 | ||
|     - "/run/lock"
 | ||
|   capabilities:
 | ||
|     - "SYS_ADMIN"
 | ||
| 
 | ||
| # Определение хостов лаборатории
 | ||
| hosts:
 | ||
|   # Пример: etcd кластер
 | ||
|   - name: etcd1
 | ||
|     group: etcd
 | ||
|     family: debian
 | ||
|   - name: etcd2
 | ||
|     group: etcd
 | ||
|     family: debian
 | ||
|   - name: etcd3
 | ||
|     group: etcd
 | ||
|     family: debian
 | ||
|   
 | ||
|   # Пример: PostgreSQL с Patroni
 | ||
|   - name: patroni1
 | ||
|     group: patroni
 | ||
|     family: rhel
 | ||
|   - name: patroni2
 | ||
|     group: patroni
 | ||
|     family: rhel
 | ||
|   - name: patroni3
 | ||
|     group: patroni
 | ||
|     family: rhel
 | ||
|   
 | ||
|   # Пример: HAProxy
 | ||
|   - name: haproxy
 | ||
|     group: haproxy
 | ||
|     family: rhel
 | ||
|     publish:
 | ||
|       - "5000:5000"  # RW порт
 | ||
|       - "5001:5001"   # RO порт
 | ||
|   
 | ||
|   # Пример: DinD узел для изоляции
 | ||
|   - name: app-dind
 | ||
|     group: apps
 | ||
|     type: dind
 | ||
|     publish:
 | ||
|       - "8080:8080"
 | ||
|   
 | ||
|   # Пример: DOoD узел (Docker Outside of Docker)
 | ||
|   - name: app-dood
 | ||
|     group: apps
 | ||
|     type: dood
 | ||
|     publish:
 | ||
|       - "8081:8081"
 | ||
| 
 | ||
| # Kind кластеры (опционально)
 | ||
| kind_clusters:
 | ||
|   - name: lab
 | ||
|     workers: 2
 | ||
|     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
 | ||
| 
 | ||
| # Пути для файлов
 | ||
| generated_inventory: "${MOLECULE_EPHEMERAL_DIRECTORY}/inventory/hosts.ini"
 |