Repository files navigation Тестовое задание для DevOps: Локальный кластер на Bare-Metal
Основные требования к стеку
Bare-metal: Развёртывание на локальных серверах/машинах без использования облаков.
Terraform: Подготовка инфраструктуры (VM, сеть, storage) через IaC.
Ansible: Постконфигурация серверов и кластеров.
Развёртывание через kubeadm или k3s с High Availability (несколько control-plane и worker-ноды).
CNI: Calico или Cilium.
MetalLB для LoadBalancer внутри локалки.
Istio в качестве Service Mesh.
Настройка кворума (HA-конфигурация).
Обеспечение сетевой доступности между инстансами.
Настройка кластера с репликами.
Конфигурирование heap size и refresh_interval.
Настройка кластера с репликацией (Patroni или репликация на уровне Postgres).
Хранение данных в распределённом хранилище (Ceph или Longhorn).
Istio с настройкой ingress gateway.
RBAC-политики для ограничения доступа к сервисам.
Конфигурация ролей и биндов согласно принципу минимальных привилегий.
Запрет доступа к control-plane для пользователей.
Ceph или Longhorn для распределённого хранения данных.
Sealed Secrets для хранения секретов.
Network Policies для ограничения трафика между namespace'ами.
CI/CD - тут есть несколько вариантов, можно выбрать любой или придумать свой
GitHub Actions + Self-Hosted Runner:
Поднимаешь self-hosted runner на локальной машине.
Runner выполняет Terraform и Ansible для развёртывания.
Доступ к Kubernetes, ClickHouse и другим сервисам — через локальный runner.
GitHub Actions → SSH на локальный сервер:
В воркфлоу добавляешь шаги с SSH-доступом к локальному серверу.
Через SSH выполняешь команды Terraform и Ansible.
GitHub Repository Dispatch для триггеров:
Локальный сервис слушает события из GitHub через Webhooks и триггерит развертывание.
Prometheus + Grafana — мониторинг всех сервисов.
Loki — сбор и хранение логов.
В репозитории должны быть Terraform и Ansible-плейбуки для полного развёртывания инфраструктуры.
Kubernetes-кластер должен быть готов к запуску приложений.
Документация с описанием:
Минимальные требования к железу.
Последовательность развёртывания.
Проверка доступности сервисов.
Требования к оформлению репозитория
README.md с кратким описанием и инструкцией по запуску.
Отдельные каталоги для Terraform и Ansible.
Структура файлов должна быть логичной и читаемой.
Полнота и корректность развёртывания всех компонентов.
Читаемость и поддерживаемость кода.
Соответствие best practices для Terraform и Ansible.
Работа кластера без ошибок и сбоев после перезапуска.
About
Challenge Repo
Resources
License
Stars
Watchers
Forks
You can’t perform that action at this time.