Домены и ssl (Let’s Encrypt)
Использование переменной
DOMAIN: $DOMAIN
включает только настройку конфигов маршрутизации на машине. Для автоматического управления dns записями env переменнаяDNS_TOKEN: $CLOUDFLARE_TOKEN
Как включить управление доменами
Для использования доменных имен нужно указать env переменную DOMAIN: example.com
, в .gitlab-ci.yml
файле.
Для всех сервисов по умолчанию используется конструкция {SERVICE}.{BRANCH}.$DOMAIN
, где SERVICE
- имя сервиса из docker-compose.yml
. (прим backend.branch.genesis-framework.com)
Домен будет заказываться только на сервисы с публично открытыми портами 8000-8999
Настройка маршрутизации без настройки DNS:
include:
- project: 'framework/genesis'
file: '/genesis.gitlab-ci.yml'
variables:
VERSION: *.*.* # Genesis version, вместо *.*.* необходимо подставить последнюю доступную версию/tag,
# список тэгов - https://gl.sbdagroup.com/framework/genesis/-/tags
# ex: VERSION: 0.0.1
HOSTING_PROVIDER: DO
HOSTING_TOKEN: do_token_str
CONTAINER_MANAGER: docker
Использование встроенного менеджера dns записей
Genesis умеет управлять dns записями, для этого требуется указать DNS_TOKEN: $CLOUDFLARE_TOKEN
с правами: ZONE -> DNS -> EDIT; ZONE -> ZONE -> READ (see: https://dash.cloudflare.com/profile/api-tokens)
По умолчанию genesis подразумевает наличие одной доменной зоны на проект.
Как настроить корневой сервис (Домен для корневого сервиса)
В случае, если требуется указать корневой сервис (прим. используется простенький статичный сайт и требуется,
чтобы он был доступен по корневому урлу ветки branch.genesis-framework.com) указывается переменная ROOT_SERVICE
(указание сервиса).
Для всех веток используется стандартный шаблон без указания сервиса (Прим. branch.genesis-framework.com).
include:
- project: 'framework/genesis'
file: '/genesis.gitlab-ci.yml'
variables:
VERSION: *.*.* # Genesis version, вместо *.*.* необходимо подставить последнюю доступную версию/tag,
# список тэгов - https://gl.sbdagroup.com/framework/genesis/-/tags
# ex: VERSION: 0.0.1
HOSTING_PROVIDER: DO
HOSTING_TOKEN: do_token_str
CONTAINER_MANAGER: docker
DOMAIN: example.com
DNS_PROVIDER: CF
DNS_TOKEN: cloudflare_token
Как настроить корневую ветку (выбор ветки для использования, как корневой)
В случае, если требуется чтобы сервис был доступен под корневым доменом
(прим. используется простенький статичный сайт и требуется чтобы он был доступен по-корневому урлу genesis-framework.com)
помимо переменной ROOT_SERVICE
(указание сервиса) указывается также ROOT_BRANCH
.
include:
- project: 'framework/genesis'
file: '/genesis.gitlab-ci.yml'
variables:
VERSION: *.*.* # Genesis version, вместо *.*.* необходимо подставить последнюю доступную версию/tag,
# список тэгов - https://gl.sbdagroup.com/framework/genesis/-/tags
# ex: VERSION: 0.0.1
HOSTING_PROVIDER: DO
HOSTING_TOKEN: do_token_str
CONTAINER_MANAGER: docker
DOMAIN: example.com
DNS_PROVIDER: CF
DNS_TOKEN: cloudflare_token
ROOT_SERVICE: site
ROOT_BRANCH: prod
Как использовать ssl
При использовании DOMAIN
переменной ssl по умолчанию выключен, для него обязательно использовать переменные SSL
и
DNS_TOKEN
include:
- project: 'framework/genesis'
file: '/genesis.gitlab-ci.yml'
variables:
VERSION: *.*.* # Genesis version, вместо *.*.* необходимо подставить последнюю доступную версию/tag,
# список тэгов - https://gl.sbdagroup.com/framework/genesis/-/tags
# ex: VERSION: 0.0.1
HOSTING_PROVIDER: DO
HOSTING_TOKEN: do_token_str
CONTAINER_MANAGER: docker
DOMAIN: example.com
DNS_PROVIDER: CF
DNS_TOKEN: cloudflare_token
SSL: 1
Как настроить маршрутизацию в закрытом контуре
Выбор типа формирования домена управляется переменной PATH_LIKE_DOMAIN
,
принимающей значения 0
(выключен, дефолтное значение) и 1
(включен).
Шаблон маршрутизации: $DOMAIN/{BRANCH}/{SERVICE}/
(ex. https://genesis-framework.com/prod/docs)
Важно: при значении PATH_LIKE_DOMAIN: 1
- переменные DNS_TOKEN
, ROOT_SERVICE
, ROOT_BRANCH
не работают и настройка dns записей делается в ручном режиме.
include:
- project: 'framework/genesis'
file: '/genesis.gitlab-ci.yml'
variables:
VERSION: *.*.* # Genesis version, вместо *.*.* необходимо подставить последнюю доступную версию/tag,
# список тэгов - https://gl.sbdagroup.com/framework/genesis/-/tags
# ex: VERSION: 0.0.1
HOSTING_PROVIDER: none
CONTAINER_MANAGER: k8s
DOMAIN: example.com
DNS_PROVIDER: CF
DNS_TOKEN: $CLOUDFLARE_TOKEN
IP_ADDRESS: 0.0.0.0
PATH_LIKE_DOMAIN: 1