Pages
Если шаблон публичных доменов — %s.example.com
, то Pages
будут доступны по адресу https://code-pages.example.com
(субдомен code
).
Generic
Пример использования Generic
S3 (S3-compatible сервис) для развертывания:
features:
pages:
enabled: true
objectStorage:
mode: External
bucketPrefix: d8
external:
provider: Generic
region: <REPLACE_ME>
accessKey: <REPLACE_ME>
secretKey: <REPLACE_ME>
endpoint: <REPLACE_ME> # например "http://minio.example.com:9090"
YCloud
Пример использования YCloud S3 для развертывания:
features:
pages:
enabled: true
objectStorage:
mode: External
bucketPrefix: d8
external:
provider: YCloud
accessKey: <REPLACE_ME>
secretKey: <REPLACE_ME>
Пример использования стандартной конфигурации YCloud S3 c выключенным серверным шифрованием.
AzureRM
Пример использования AzureRM для развертывания:
features:
pages:
enabled: true
objectStorage:
mode: External
bucketPrefix: d8
external:
provider: AzureRM
azureAccountName: <REPLACE_ME>
azureAccessKey: <REPLACE_ME>
Пример использования AWS c SSE с включенным серверным шифрованием (шифрование на стороне сервера):
objectStorage:
mode: External
bucketPrefix: d8
external:
provider: AWS
region: <REPLACE_ME>
accessKey: <REPLACE_ME>
secretKey: <REPLACE_ME>
storage_options:
server_side_encryption: aws:kms
server_side_encryption_kms_key_id: <REPLACE_ME> # например arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
Внешний Redis
Примеры различной конфигурации внешнего Redis-кластера:
-
Один сервер:
redis: external: auth: enabled: true password: <REPLACE_ME> host: 10.10.10.2 port: 6379 mode: External
-
С использованием sentinel:
redis: external: auth: enabled: true password: <REPLACE_ME> masterName: <REPLACE_ME> port: 6379 sentinels: - host: <REPLACE_ME> # sentinel host #1 port: 26379 - host: <REPLACE_ME> # sentinel host #2 mode: External
Настройка Managed Service for Redis
Для создания кластера Managed Service for Redis необходимы:
- роль vpc.user;
- роль managed-redis.editor или выше.
В консоли управления выберите каталог, в котором нужно создать кластер БД.
- Выберите сервис «Managed Service for Redis».
- Нажмите кнопку «Создать кластер».
- В блоке «Базовые параметры»:
- Введите имя кластера в поле «Имя кластера». Имя кластера должно быть уникальным в рамках каталога.
- (Опционально) Добавьте описание кластера.
- Выберите окружение, в котором нужно создать кластер (после создания кластера окружение изменить невозможно):
PRODUCTION
— для стабильных версий ваших приложений.PRESTABLE
— для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
- Выберите версию СУБД (рекомендовано 7.0+).
- Нажмите кнопку «Создать кластер».
- Создание кластера займет некоторое время.
Манифест для описанной конфигурации Redis
redis:
mode: External
external:
host: <REPLACE_ME> # FQDN of master хоста
port: 6379
auth:
enabled: true
password: <REPLACE_ME>
Внешний Postgres
-
Пример без TLS:
postgres: external: database: db host: <REPLACE_ME> # адрес мастер-хоста port: 5432 username: <REPLACE_ME> password: <REPLACE_ME> praefectDatabase: praefect praefectUsername: <REPLACE_ME> praefectPassword: <REPLACE_ME> mode: External
-
Пример с включенным TLS:
postgres: external: database: db host: <REPLACE_ME> # адрес мастер-хоста port: 5432 username: simple_user sslmode: verify-full serverCA: | # postgres server CA clientCert: | # Your TLS certificate clientKey: | # Your TLS key mode: External
Вы также можете использовать TLS авторизацию при подключении к основной базе данных.
Настройка Managed Service for PostgreSQL
Для создания кластера Managed Service for PostgreSQL необходимы:
- роль vpc.user и
- роль managed-postgresql.editor или выше.
В консоли управления выберите каталог, в котором нужно создать кластер БД:
- Выберите сервис «Managed Service for PostgreSQL».
- Нажмите кнопку «Create cluster».
- Введите имя кластера в поле «Имя кластера». Имя кластера должно быть уникальным в рамках каталога.
- Выберите окружение, в котором нужно создать кластер (после создания кластера окружение изменить невозможно):
PRODUCTION
— для стабильных версий ваших приложений.PRESTABLE
— для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
- Выберите версию СУБД (рекомендована 16+).
-
Выберите класс хостов — он определяет технические характеристики виртуальных машин, на которых будут развернуты хосты БД. Все доступные варианты перечислены в разделе «Классы хостов». При изменении класса хостов для кластера меняются характеристики всех уже созданных хостов.
-
В блоке База данных укажите атрибуты БД:
- Имя БД. Это имя должно быть уникальным в рамках каталога.
Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена
postgres
,template0
,template1
зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя. - Имя пользователя — владельца БД и пароль. По умолчанию новому пользователю выделяется 50 подключений к каждому хосту кластера.
- Локаль сортировки и локаль набора символов. Эти настройки определяют правила, по которым производится сортировка
строк (
LC_COLLATE
) и классификация символов (LC_CTYPE
). В Managed Service for PostgreSQL настройки локали действуют на уровне отдельно взятой БД. По умолчанию используется локальC
. Подробнее о настройках локали в документации PostgreSQL.
- Имя БД. Это имя должно быть уникальным в рамках каталога.
Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена
- Нажмите кнопку «Создать кластер».
- Создание кластера займет некоторое время.
- Выберите кластер из списка и перейдите на вкладку «Базы данных». Выберите базу данных и включите следующие расширения:
- Добавьте базу данных для компонента Praefect:
- Перейдите на вкладку «Пользователи» и выставьте лимит подключений. Мы рекомендуем выставить лимит не менее 150.
Манифест для описанной конфигурации PostgreSQL
postgres:
mode: External
external:
host: <REPLACE_ME> # FQDN-адрес мастер хоста
port: 6432
database: <REPLACE_ME>
username: <REPLACE_ME>
password: <REPLACE_ME>
praefectDatabase: praefect
praefectUsername: <REPLACE_ME> # идентично значению postgres.username
praefectPassword: <REPLACE_ME> # идентично значению postgres.password
Настройка бекапов
Пример настройки:
backup:
enabled: true
cronSchedule: "0 0 1 * *"
s3:
bucketName: <REPLACE_ME>
tmpBucketName: <REPLACE_ME>
mode: External
external:
accessKey: <REPLACE_ME>
provider: <REPLACE_ME>
region: <REPLACE_ME>
secretKey: <REPLACE_ME>
persistentVolumeClaim:
enabled: <true|false>
storageClass: network-hdd
Настройка S3
Создайте пользователя с именем d8-code-sa
. В ответ вернутся параметры пользователя:
yc iam service-account create --name d8-code-sa
id: <userID>
folder_id: <folderID>
created_at: "YYYY-MM-DDTHH:MM:SSZ"
name: d8-code-sa
Назначьте роль storage.editor
вновь созданному пользователю для своего облака:
yc resource-manager folder add-access-binding <folderID> --role storage.editor --subject serviceAccount:<userID>
Создайте Access key
для пользователя. В дальнейшем с помощью этих данных будем авторизовываться в облаке:
yc iam access-key create --service-account-name d8-code-sa
access_key:
id: <id>
service_account_id: <userID>
created_at: "YYYY-MM-DDTHH:MM:SSZ"
key_id: <ACCESS_KEY>
secret: <SECRET_KEY>
Манифест для описанной конфигурации S3
features:
pages:
enabled: true
objectStorage:
mode: External
bucketPrefix: <REPLACE_ME>
external:
accessKey: <REPLACE_ME> # accesskey.key_id полученный на предыдущем шаге
provider: YCloud
secretKey: <REPLACE_ME> # secretkey полученный на предыдущем шаге
...
objectStorage:
mode: External
bucketPrefix: <REPLACE_ME>
external:
provider: YCloud
accessKey: <REPLACE_ME> # accesskey.key_id полученный на предыдущем шаге
secretKey: <REPLACE_ME> # secretkey полученный на предыдущем шаге
proxy_download: true