Тестовое задание.
Требуется написать скрипты деплоя на окружение dev и prod в Kubernetes приложения.Результат выполнения задачи должен быть передан в виде ссылки на github.com или любого другого публичного git репозитория.
Требования к приложению:
1. Приложение состоит из nginx, php-fpm и единственной страницы index.php:
<?php
echo "Hello world!";
- Файл index.php должен быть в контейнере (т.е. не должен быть подключен из вне).
- В качестве платформы для запуска Kubernetes рекомендуется использовать minikube.
- Страница должна открываться по адресу “/” (т.е. не “/index.php”).
- Вы можете выбрать инструменты для организации деплоя на ваше усмотрение.
Решение.
Нормально выстроенная цепь прохождения кода выглядит следующим образом:
Разработчик написал код и сделал git push в настроенный локальный gitlab.
В гитлабе срабатывает раннер и запускает последовательность, которая может включать в себя следующие действия:
- Подготовка окружения для сборки образов.
- Передача подготовленных данных в машину для сборки образов (или там же?).
- Сборка образов согласно заданным инструкциям. При провале зачистка окружения и завершение процесса.
- Прогон ряда автоматических тестов с целью получить на выходе exit 0. При провале зачистка окружения и завершение процесса.
- Отправка образа в реестр образов.
- Зачистка окружения.
- Отправка оповещения на ревью кода с целью получения одобрения.
- Запуск группы образов в среде stage.
- Запуск образов в среде production.
Обращаю внимание на необходимость произвести зачистку окружения в машине сборки образов в любом случае, вне зависимости от последующих результатов.
Cкрипт cdnnow-deploy.compose.sh работает с использованием docker-compose.
Сервис доступен по адресу http://cdnnow.
Скрипт cdnnow-deploy.minikube.sh работает с использованием docker-compose и minicube.
Откроется страница в браузере. Нужно в файле hosts прописать соответствие этому ip имени cdnnow и в строке адреса заменить ip на cdnnow. Нужно получить http://cdnnow:port