Хостинг провайдеры

Genesis осуществляет поддержку ряда облачных хостингов для заказа виртуальный машин (далее "вм"), а также гибкое управление ими, в том числе создание/удаление.

Одним из главных параметров при работе с облачными хостингами является SIZE. SIZE используется для определения параметров создаваемой вм и поддерживает следующие варианты:

  • C1M1 - 1 CPU, 1 RAM
  • C2M2 - 2 CPU, 2 RAM
  • C2M4 - 2 CPU, 4 RAM
  • C4M8 - 4 CPU, 8 RAM
  • C8M16 - 8 CPU, 16 RAM
  • C16M32 - 16 CPU, 32 RAM

Схема взаимодействия с каждым из коннекторов к облачным хостингам (далее провайдеры) сделана максимально однотипно, чтобы облегчить взаимодействие и максимально упростить миграцию между ними, но у некоторых есть отличия (прим YandexCloud, требует доп параметр YANDEX_CLOUD_FOLDER_ID).

DigitalOcean

Для начала работы с DigitalOcean требуется токен персонального доступа с правами "read" и "write" (https://cloud.digitalocean.com/account/api/tokens).

В результате для работы DigitalOcean, должен получиться перечень переменных:

variables:
    HOSTING_PROVIDER: DO
    HOSTING_TOKEN: some_string_with_token

YandexCloud

Для работы с YandexCloud необходимо сформировать YANDEX_TOKEN доступа и YANDEX_CLOUD_FOLDER_ID. Узнать об этом можно на странице Yandex token

В результате для работы YandexCloud, должен получиться перечень переменных:

HOSTING_TOKEN был приведен в человекочитаемый вид для наглядности.

variables:
    HOSTING_PROVIDER: YA
    HOSTING_TOKEN: {
                       "id": "oauth_key_id",
                       "service_account_id": "service_account_id_with_admin_permissions_for_folder",
                       "private_key": "-----BEGIN PRIVATE KEY-----\nsome_key\n-----END PRIVATE KEY-----"
                   }
    YANDEX_CLOUD_FOLDER_ID: $YANDEX_CLOUD_FOLDER_ID

SSH

Ssh хостинг провайдер подразумевает полностью ручной режим управления.

Для использования SSH хостинг провайдера необходим доступ к root пользователю.

Существует 2 вида ручного управления:

С использованием k8s:

Минимальные системные требования к виртуальной машине:

C2M2 (2 CPU, 2 RAM)

  • Создать переменные genesis_SSH_PRIVATE_KEY и genesis_IP_ADDRESS с соответствующим наполнением.
  • Установить HOSTING_PROVIDER SSH в секции variables файла .gitlab-ci.yml
variables:
    HOSTING_PROVIDER: SSH
    CONTAINER_MANAGER: k8s

С использованием docker-compose

Минимальные системные требования к виртуальной машине:

C1M1 (1 CPU, 1 RAM)

  • Создать переменные genesis_SSH_PRIVATE_KEY_branch_name и genesis_IP_ADDRESS_branch_name с соответствующим наполнением.
  • Установить HOSTING_PROVIDER SSH в секции variables файла .gitlab-ci.yml
variables:
    HOSTING_PROVIDER: SSH
    CONTAINER_MANAGER: docker