Этот репозиторий включает в себя почти весь код сайта и инфраструктуры центра рациональности Кочерга.
В том числе:
- Код бекенда Кочерги (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.