Файл display.yamlBeta
Конфигурационный файл display.yaml описывает, как тарифный план будет отображаться в матрице тарифных планов вашего приложения.
Основные секции файла:
Имя | Описание | Формат | Обязательный |
|---|---|---|---|
| Описывает все страницы мастера конфигурации тарифного плана, кроме первой и последней. Если параметр не указан, мастер конфигурации будет состоять только из автоматически формируемых страниц | Массив | |
| Описывает тарифицируемые элементы инфраструктуры VK Cloud:
В мастере конфигурации тарифного плана будет отображаться стоимость этих элементов. Она рассчитывается автоматически в соответствии с тарифами VK Cloud | Массив |
Массив описывает страницы мастера конфигурации для тарифного плана. На каждой странице отображается одна или несколько групп тарифных опций. Максимальное количество страниц — 5.
Параметры массива pages:
Имя | Описание | Формат | Обязательный |
|---|---|---|---|
| Имя страницы мастера конфигурации, не более 32 символов |
| |
| Группы тарифных опций, отображаемые на конкретной странице мастера конфигурации | Массив | |
| Имя группы тарифных опций, не более 255 символов |
| |
| Список имен тарифных опций, входящих в группу. | Список, элемент списка — | |
| Имя тарифной опции, совпадающее с именем YAML-файла этой опции: |
|
По умолчанию в мастере конфигурации тарифного плана отображаются все группы тарифных опций (groups), указанные в массиве pages. Для отображения или скрытия групп в зависимости от заданных условий используется конструкция when.
Ниже показано, как будет отображаться мастер конфигурации тарифного плана из этого примера.
Массив описывает элементы инфраструктуры VK Cloud, которые будут тарифицироваться в рамках тарифного плана.
По умолчанию в мастере конфигурации тарифного плана указывается стоимость всех элементов инфраструктуры, описанных в массиве entities. Для отображения или скрытия стоимости инфраструктуры в зависимости от заданных условий используется конструкция when.
Общие параметры массива entities:
Имя | Описание | Формат | Обязательный |
|---|---|---|---|
| Тип элемента инфраструктуры:
|
| |
| Описание элемента инфраструктуры |
|
Пример описания страницы Настройки сервиса в мастере конфигурации тарифного плана:
pages:- name: Настройки сервиса # Имя страницыgroups:- name: Сервер # Имя группы тарифных опцийparameters:- name: network # Имя тарифной опции- name: vm- name: az- name: Системный дискparameters:- name: volume_size- name: volume_type
Параметры массива entities для ВМ:
Имя | Описание | Формат | Обязательный |
|---|---|---|---|
| Количество ВМ, задается параметром | Секция | |
| Количество ВМ |
| — |
| Имя тарифной опции ( |
| — |
| Тип ВМ, задается параметром | Секция | |
|
| — | |
| Имя тарифной опции ( |
| — |
| Диски ВМ. Каждый диск описывается секциями | Массив |
|
| Тип диска, задается параметром | Секция | — |
| Тип диска. Возможные значения:
|
| — |
| Имя тарифной опции ( |
| — |
| Размер диска, задается параметром | Секция | — |
| Размер диска |
| — |
| Имя тарифной опции ( |
| — |
Пример описания ВМ для мастера конфигурации тарифного плана:
entities:- entity: vmdescription: Виртуальная машинаcount:const: 1flavor:param: ds-flavor # Имя тарифной опцииdisks:- type:param: root_typesize:param: root_size- type:param: data_typesize:param: data_size
Ниже показано, как будет отображаться информация о стоимости инфраструктуры из этого примера в мастере конфигурации тарифного плана.
Параметры массива entities для балансировщика нагрузки:
Имя | Описание | Формат | Обязательный |
|---|---|---|---|
| Количество балансировщиков нагрузки, задается параметром | Секция | |
| Количество балансировщиков |
| — |
| Имя тарифной опции ( |
| — |
Пример описания балансировщика нагрузки для мастера конфигурации тарифного плана:
entities:- entity: load_balancingcount:param: number_balancing # Имя тарифной опции
Параметры массива entities для внешнего IP-адреса:
Имя | Описание | Формат | Обязательный |
|---|---|---|---|
| Количество внешних IP-адресов, задается параметром | Секция | |
| Количество внешних IP-адресов |
| — |
| Имя тарифной опции ( |
| — |
Пример описания внешнего IP-адреса для мастера конфигурации тарифного плана:
entities:- entity: floating_ipcount:const: 1
Конструкция when управляет условным ветвлением при отображении мастера тарифного плана. Она содержит:
-
Тип условия:
when.in— проверка равенства значений, заданных параметрамиkeyиvalues. Условие выполнено, если значениеkeyравно хотя бы одному из значенийvalues.when.not_in— проверка неравенства значений, заданных параметрамиkeyиvalues. Условие выполнено, если значениеkeyне равно ни одному из значенийvalues.
-
Критерии. Задаются параметрами
keyиvaluesодним из способов:- Через параметр
param— чтобы использовать значение конкретной тарифной опции. - Через параметр
const— чтобы использовать фиксированное значение.
В
keyможно задать одно значение, вvalues— одно или несколько. - Через параметр
Структура when в формате YAML:
when:in: # или not_inkey:param: <ИМЯ_ОПЦИИ> # или const: <ЗНАЧЕНИЕ>values:- const: <ЗНАЧЕНИЕ>- param: <ИМЯ_ОПЦИИ>...
Здесь:
<ИМЯ_ОПЦИИ>— имя тарифной опции, совпадающее с именем YAML-файла этой опции.<ЗНАЧЕНИЕ>— фиксированное значение.
В массиве pages конструкция when используется, чтобы задать условие, которое определяет, нужно ли в мастере конфигурации тарифного плана отображать группу тарифных опций.
Одна и та же тарифная опция может использоваться в конструкциях when в разных группах. В зависимости от значения тарифной опции в мастере конфигурации будут отображаться те или иные группы.
При использовании конструкции when страница с группами тарифных опций будет скрыта, если одновременно выполняются следующие условия:
- В рамках одной страницы все группы имеют конструкцию
when. - В мастере конфигурации тарифного плана заданы такие значения тарифных опций, что условия во всех группах на этой странице не выполняются.
Пример использования конструкции when в массиве pages:
pages:- name: Настройки бекапа # Имя страницыgroups:- name: High-frequency бекап # Имя группы тарифных опцийparameters:- name: frequency_per_day # Имя тарифной опцииwhen:in:key:param: backup_method # Имя тарифной опцииvalues:- const: high-frequency
В этом примере группа High-frequency бекап с тарифной опцией frequency_per_day отобразится, если в мастере конфигурации пользователь выбрал значение high-frequency для тарифной опции backup_method. Далее пользователь сможет выбрать частоту создания бекапов.
Тарифная опция backup_method:
- может использоваться в конструкции
whenв других группах; - должна быть указана в массиве
parametersв другой группе.
Тарифная опция frequency_per_day не может использоваться в других группах:
- в конструкции
when— потому что поддерживается только один уровень иерархии условий; - в
parameters— потому что одна тарифная опция может быть указана только в одной группе.
В массиве entities конструкция when используется, чтобы задать условие, которое определяет, нужно ли в мастере конфигурации тарифного плана отображать стоимость элемента инфраструктуры, описанного в массиве entities.
Пример использования конструкции when в массиве entities:
entities:- entity: vmdescription: alkair_softwarewhen:in:key:param: need_install_alkair_software # Имя тарифной опцииvalues:- const: trueflavor:const: 6a7a0690-943a-4921-936e-2849970ccfba # Тип ВМ (CPU, RAM). В этом примере ВМ с 2 CPU и 3 ГБ RAMcount:const: 1disks:- type:const: high-iops # Тип дискаsize:const: 500 # Размер диска
В этом примере приведена настройка отображения стоимости ВМ для ПО Алькаир. Если пользователь выберет для тарифной опции need_install_alkair_software значение true, в мастере конфигурации тарифного плана будет отображена стоимость ВМ, описанной в элементе entities.entity.
