Файл display.yamlBeta

Конфигурационный файл display.yaml описывает, как тарифный план будет отображаться в матрице тарифных планов вашего приложения.

Основные секции файла:

Имя

Описание

Формат

Обязательный

pages

Описывает все страницы мастера конфигурации тарифного плана, кроме первой и последней.

Если параметр не указан, мастер конфигурации будет состоять только из автоматически формируемых страниц

Массив

Файл display.yaml

entities

Описывает тарифицируемые элементы инфраструктуры VK Cloud:

  • ВМ;
  • балансировщики нагрузки;
  • внешние IP-адреса.

В мастере конфигурации тарифного плана будет отображаться стоимость этих элементов. Она рассчитывается автоматически в соответствии с тарифами VK Cloud

Массив

Файл display.yaml

Массив pages

Массив описывает страницы мастера конфигурации для тарифного плана. На каждой странице отображается одна или несколько групп тарифных опций. Максимальное количество страниц — 5.

Параметры массива pages:

Имя

Описание

Формат

Обязательный

name

Имя страницы мастера конфигурации, не более 32 символов

string

Файл display.yaml

groups

Группы тарифных опций, отображаемые на конкретной странице мастера конфигурации

Массив

Файл display.yaml

groups.name

Имя группы тарифных опций, не более 255 символов

string

Файл display.yaml

groups.parameters

Список имен тарифных опций, входящих в группу.

Список, элемент списка — string

Файл display.yaml

groups.parameters.name

Имя тарифной опции, совпадающее с именем YAML-файла этой опции: <ИМЯ_ОПЦИИ>.

string

Файл display.yaml

По умолчанию в мастере конфигурации тарифного плана отображаются все группы тарифных опций (groups), указанные в массиве pages. Для отображения или скрытия групп в зависимости от заданных условий используется конструкция when.

Ниже показано, как будет отображаться мастер конфигурации тарифного плана из этого примера.

pic1

Массив entities

Массив описывает элементы инфраструктуры VK Cloud, которые будут тарифицироваться в рамках тарифного плана.

По умолчанию в мастере конфигурации тарифного плана указывается стоимость всех элементов инфраструктуры, описанных в массиве entities. Для отображения или скрытия стоимости инфраструктуры в зависимости от заданных условий используется конструкция when.

Общие параметры массива entities:

Имя

Описание

Формат

Обязательный

entity

Тип элемента инфраструктуры:

  • vm — ВМ.
  • load_balancing — балансировщик нагрузки.
  • floating_ip — внешний IP-адрес.

string

Файл display.yaml

description

Описание элемента инфраструктуры

string

Файл display.yaml

Пример описания страницы Настройки сервиса в мастере конфигурации тарифного плана:

pages:- name: Настройки сервиса # Имя страницы  groups:  - name: Сервер # Имя группы тарифных опций    parameters:    - name: network # Имя тарифной опции    - name: vm    - name: az  - name: Системный диск    parameters:    - name: volume_size    - name: volume_type

ВМ

Параметры массива entities для ВМ:

Имя

Описание

Формат

Обязательный

count

Количество ВМ, задается параметром const или param

Секция

Файл display.yaml

count.const

Количество ВМ

integer

count.param

Имя тарифной опции (<ИМЯ_ОПЦИИ>), значение которой определяет количество ВМ

string

flavor

Тип ВМ, задается параметром const или param

Секция

Файл display.yaml

flavor.const

ID шаблона конфигурации ВМ

string

flavor.param

Имя тарифной опции (<ИМЯ_ОПЦИИ>), описывающей тип ВМ: datasource.type = flavor

string

disks

Диски ВМ. Каждый диск описывается секциями type и size

Массив

Файл display.yaml, если в массиве pages указана опция типа datasource.type = volume_type

disks.type

Тип диска, задается параметром const или param

Секция

disks.type.const

Тип диска.

Возможные значения:

  • ceph-ssd — диск типа SSD.
  • ceph-hdd — диск типа HDD.
  • high-iops — диск типа High-IOPS SSD (SSD с повышенной производительностью).

string

disks.type.param

Имя тарифной опции (<ИМЯ_ОПЦИИ>), описывающей тип диска: datasource.type = volume_type

string

disks.size

Размер диска, задается параметром const или param

Секция

disks.size.const

Размер диска

integer

disks.size.param

Имя тарифной опции (<ИМЯ_ОПЦИИ>), значение которой определяет размер диска

string

Пример описания ВМ для мастера конфигурации тарифного плана:

entities:  - entity: vm    description: Виртуальная машина    count:      const: 1    flavor:      param: ds-flavor # Имя тарифной опции    disks:      - type:          param: root_type        size:          param: root_size      - type:          param: data_type        size:          param: data_size

Ниже показано, как будет отображаться информация о стоимости инфраструктуры из этого примера в мастере конфигурации тарифного плана.

pic1

Балансировщик нагрузки

Параметры массива entities для балансировщика нагрузки:

Имя

Описание

Формат

Обязательный

count

Количество балансировщиков нагрузки, задается параметром const или param

Секция

Файл display.yaml

count.const

Количество балансировщиков

integer

count.param

Имя тарифной опции (<ИМЯ_ОПЦИИ>), значение которой определяет количество балансировщиков

string

Пример описания балансировщика нагрузки для мастера конфигурации тарифного плана:

entities:  - entity: load_balancing    count:      param: number_balancing # Имя тарифной опции

Внешний IP-адрес

Параметры массива entities для внешнего IP-адреса:

Имя

Описание

Формат

Обязательный

count

Количество внешних IP-адресов, задается параметром const или param

Секция

Файл display.yaml

count.const

Количество внешних IP-адресов

integer

count.param

Имя тарифной опции (<ИМЯ_ОПЦИИ>), значение которой определяет количество внешних IP-адресов

string

Пример описания внешнего IP-адреса для мастера конфигурации тарифного плана:

entities:  - entity: floating_ip    count:      const: 1

Конструкция when

Конструкция 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_in    key:      param: <ИМЯ_ОПЦИИ> # или const: <ЗНАЧЕНИЕ>    values:      - const: <ЗНАЧЕНИЕ>      - param: <ИМЯ_ОПЦИИ>      ...

Здесь:

  • <ИМЯ_ОПЦИИ> — имя тарифной опции, совпадающее с именем YAML-файла этой опции.
  • <ЗНАЧЕНИЕ> — фиксированное значение.

Конструкция when в массиве pages

В массиве 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 — потому что одна тарифная опция может быть указана только в одной группе.

Конструкция when в массиве entities

В массиве entities конструкция when используется, чтобы задать условие, которое определяет, нужно ли в мастере конфигурации тарифного плана отображать стоимость элемента инфраструктуры, описанного в массиве entities.

Пример использования конструкции when в массиве entities:

entities:  - entity: vm    description: alkair_software    when:      in:        key:          param: need_install_alkair_software # Имя тарифной опции        values:          - const: true    flavor:      const: 6a7a0690-943a-4921-936e-2849970ccfba # Тип ВМ (CPU, RAM). В этом примере ВМ с 2 CPU и 3 ГБ RAM    count:      const: 1    disks:      - type:          const: high-iops # Тип диска        size:          const: 500 # Размер диска

В этом примере приведена настройка отображения стоимости ВМ для ПО Алькаир. Если пользователь выберет для тарифной опции need_install_alkair_software значение true, в мастере конфигурации тарифного плана будет отображена стоимость ВМ, описанной в элементе entities.entity.

pic1