Skip to content

Latest commit

 

History

History
46 lines (27 loc) · 3.36 KB

README.md

File metadata and controls

46 lines (27 loc) · 3.36 KB

Этот репозиторий включает в себя почти весь код сайта и инфраструктуры центра рациональности Кочерга.

В том числе:

  • Код бекенда Кочерги (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.