Этот репозиторий включает в себя почти весь код сайта и инфраструктуры центра рациональности Кочерга.
В том числе:
- Код бекенда Кочерги (Django + GraphQL-сервер на ariadne).
- Код фронтенда Кочерги (NextJS + React + Apollo + TypeScript).
- k8s-конфиги для разработки и деплоя.
Скачать код этого репозитория.
Установить skaffold.
Получить доступ к работающему kubernetes-кластеру для разработки, например, установить minikube.
В зависимости от того, будете ли вы собирать образы удалённо на кластере с помощью kaniko или локально:
- Если вы собираетесь использовать kaniko: получить доступ к реестру образов на GitLab, все образы хранятся там. Положить локально файл
docker.jsonс параметрами доступа к реестру. - Если вы собираетесь использовать локальную сборку: заменить в
skaffold.yamlнастройки kaniko на настройки для локальной сборки, то естьlocal: {}.
Дальше надо настроить конфиги.
В k8s/dev/secrets надо положить два файла:
db-passwords.envс двумя строчками,root_db_password=любой парольиdb_password=ещё один пароль.secrets.pyс параметрами для бекенда, можно написать на основеsample_secrets.py.
После этого можно запускать make dev. Эта команда собирает docker-образы и выкладывает их в kubernetes-кластер с помощью прописанных в ops/charts манифестов.
В отдельной консоли нужно запустить make dev_init. Эта команда:
- Дождётся накатывания первичных django-миграций на mysql-базу
- Создаст администратора в базе (пароль надо будет ввести в консоли; умолчальный емейл пользователя —
[email protected], переопределите его через переменную средыSUPERUSER_EMAILна ваш собственный). - Создаст стартовые wagtail-страницы.
- Поднимет port-forwarding до kubernetes-кластера.
Сайт будет доступен по адресу http://localhost:8000.
Деплой организован с помощью GitLab CI, конфиг в файле .gitlab-ci.yml.
Изначальная настройка кластера делается в несколько шагов, подробности в ./docs/infra/README.md.