Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

v1alpha4

Данный раздел содержит справочную информацию по спецификации API в Nova Container Platform.

1. infrastructure [config.nova-platform.io/v1alpha4]

Объект infrastructure содержит конфигурацию всех доступных параметров настройки кластера Nova Container Platform. Объект является единственным в кластере и имеет каноническое имя cluster.

Параметр Тип Обязательный Описание

apiVersion

String

Да

Имеет значение config.nova-platform.io/v1alpha4

kind

String

Да

Имеет значение Infrastructure

metadata

Kubernetes meta/v1.ObjectMeta

Да

Дополнительную информацию по параметру metadata в Kubernetes API можно найти в официальной документации.

spec

Да

2. Спецификация (infrastructure.spec)

Далее представлены параметры поля spec и их описания.

Параметр Тип Обязательный Описание

customerID

String

Да

Идентификатор клиента для установки платформы. Поставляется вместе с лицензией на платформу.

licenseKey

String

  • Да, для IPI-установок.

  • Нет, для UPI-установок

Лицензионный ключ для установки платформы. Требуется только для онлайн-установки платформы.

version

String

Да

Версия Nova Container Platform для установки.

clusterName

String

Нет

Название кластера Nova Container Platform.

coreServer

String

Нет

Адрес сервиса настройки ПО Nova Container Platform.

Значение по умолчанию: sun.nova-platform.io.

При установке платформы в закрытом сетевом окружении используется адрес сервиса настройки ПО, запущенного в Nova Universe.

caTrustBundle

String

Нет

Блок конфигурации цепочки TLS-сертификатов, которым необходимо доверять внутри кластера Kubernetes. Передается в виде строки с данными, закодированными в base64.

bootstrap

Да

Блок конфигурации, описывающий тип установки (онлайн или офлайн), а также параметры офлайн-репозиториев. По умолчанию выполняется онлайн-установка платформы.

infrastructureProvider

Да

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

hostGroups

  • Да, для IPI-установок.

  • Нет, для UPI-установок

Блок конфигурации групп узлов платформы.

clusterNodes

Да

Блок конфигурации узлов кластера Kubernetes.

clusterConfiguration

Нет

Блок конфигурации параметров кластера Kubernetes.

2.1. spec.bootstrap

(Используется в: spec)

Объект bootstrap определяет конфигурацию метода установки платформы Nova Container Platform.

Параметр Тип Обязательный Описание

deploymentType

String

Нет

Метод развертывания платформы Nova Container Platform.

Допустимые значения: online, offline.

По умолчанию, используется значение online.

hubRegistryURL

String

  • Да, при deploymentType: offline

  • Нет, при deploymentType: online

Адрес хранилища образов контейнеров. Используется для переопределения адреса хранилища образов при офлайн-установке платформы.

Значение по умолчанию: hub.nova-platform.io/registry

hubToken

String

  • Да, при deploymentType: offline

  • Нет, при deploymentType: online

Токен (либо пароль) для доступа к хранилищу образов контейнеров.

hubUsername

String

  • Да, при deploymentType: offline

  • Нет, при deploymentType: online

Имя учетной записи для доступа к хранилищу образов контейнеров.

repoToken

String

  • Да, при deploymentType: offline

  • Нет, при deploymentType: online

Токен для доступа к Git-репозиторию для установки модулей платформы.

repoURL

String

  • Да, при deploymentType: offline

  • Нет, при deploymentType: online

Адрес Git-репозитория с конфигурациями модулей платформы. Используется для переопределения адреса Git-репозитория при офлайн-установке платформы.

Значение по умолчанию: https://code.nova-platform.io/releases/modules/base.git

rpmRepoURL

String

Да, при deploymentType: offline

HTTP URL репозитория пакетов, необходимых для установки платформы. Используется для переопределения репозитория при офлайн-установке платформы.

Значение по умолчанию: https://storage.cloud.croc.ru/downloads-nova-platform-io

2.2. spec.clusterConfiguration

(Используется в: spec)

Блок конфигурации параметров кластера Kubernetes платформы Nova Container Platform.

Параметр Тип Обязательно Описание

k8sDefaultDnsZone

String

Да

Корневой домен кластера. Значение по умолчанию cluster.local

k8sAPIDefaultFqdn

String

Нет

FQDN для доступа к Kubernetes API.

При наличии данного параметра, в ходе установки(развертывания) будет предпринята попытка разрешения данного имени. При успешной попытке, дальнейшая проверка состояния API будет осуществляться по FQDN, при неудачной попытке разрешить имя, проверка API будет производиться с использованием IP-адреса 1го мастер-узла.

cniProvider

String

Нет

Сетевой плагин кластера Kubernetes. Допустимые значения:

  • calico;

  • cilium.

dnsBaseDomain

String

Нет

Базовый DNS-домен для настройки и публикации служебных веб-сервисов через Ingress-контроллер.

extraOptions

Да

Блок конфигурации дополнительных параметров кластера Kubernetes платформы Nova Container Platform.

2.2.1. spec.clusterConfiguration.extraOptions

(Используется в: spec.clusterConfiguration)

Блок конфигурации дополнительных параметров кластера Kubernetes платформы Nova Container Platform.

Параметр Тип Обязательный Описание

kubePodSubnet

String

Да

Блок IP-адресов, из которого выделяются IP-адреса для подов Kubernetes (Pod). Возможно указать только один пул IP-адресов. Этот блок не должен пересекаться с существующими физическими сетями. Данные IP-адреса используются для сети подов (Pod Network).

Значение по умолчанию: 10.233.64.0/18.

kubeServiceAddresses

String

Да

Блок IP-адресов для сервисной сети Kubernetes (Service Network). Возможно указать только один блок IP-адресов. Этот блок не должен пересекаться с существующими физическими сетями.

Значение по умолчанию: 10.233.0.0/18.

kubeNetworkNodePrefix

Int

Нет

Префикс сети kubePodSubnet, выделяемый каждому узлу кластера Kubernetes.

Значение по умолчанию: 24.

k8sAPIAdditionalSANs

[]

Нет

Список дополнительных DNS-имен и IP-адресов (Subject Alternative Name) Kubernetes API, который добавляется в поле subjectAltName TLS-сертификата.

dns

Нет

Блок конфигурации параметров DNS.

ingressTLSConfig

Нет

Конфигурация PKI для выпуска TLS-сертификатов Ingress-ресурсов.

По умолчанию используется самоподписанный внутренний СА.

2.2.1.1. spec.clusterConfiguration.extraOptions.extraOptions.dns

(Используется в: spec.clusterConfiguration.extraOptions)

Блок конфигурации параметров DNS.

Параметр Тип Обязательный Условия валидации Описание

customerDns

Object

Нет

Параметры пользовательской службы DNS

customerDns.enable

Boolean

Да

Включение/выключение клиентского dns сервера.

customerDns.servers

Array of strings

Да

Должно соответствовать:

  • IPv4Address (например, "192.168.1.1")

Список клиентских dns серверов, которые будут использоваться в кластере

forwardZones

Array of Object

Да

Делегированные dns зоны

forwardZones.zones

Object

Да

Конфигурация делегированной dns зоны

forwardZones.zones.name

String

Да

DNS-имя зоны

forwardZones.zones.server

String

Да

Должно соответствовать IPv4Address (например, "192.168.1.1")

Авторитетный сервер DNS-зоны.

2.2.1.2. spec.clusterConfiguration.extraOptions.ingressTLSConfig

(Используется в: spec.clusterConfiguration.extraOptions)

Блок конфигурации PKI для выпуска TLS-сертификатов Ingress-ресурсов в Nova Container Platform.

Параметр Тип Обязательно Описание

internalCA

Object

Нет

Конфигурация службы PKI для выпуска и обслуживания TLS-сертификатов с использованием внутреннего самоподписанного СА. Опции конфигурации не предусмотрены.

Значение по умолчанию:
{}.

externalCA

Object

Нет

Конфигурация службы PKI для выпуска и обслуживания TLS-сертификатов с использованием собственного СА-сертификата.

externalCA.tlsConfig

Object

Да, если есть externalCA

Конфигурация цепочки TLS-сертификатов и приватного ключа при использовании внешнего центра сертификации.

externalCA.tlsConfig.ca

String

Да, если есть externalCA

Корневой СА-сертификат. Передается в виде строки с данными, закодированными в base64.

externalCA.tlsConfig.cert

String

Да, если есть externalCA

Промежуточный СА-сертификат, который выписан корневым. Передается в виде строки с данными, закодированными в base64.

externalCA.tlsConfig.key

String

Да, если есть externalCA

Приватный ключ для промежуточного СА-сертификата. Приватный ключ должен быть зашифрован. Передается в виде строки с данными, закодированными в base64.

2.3. spec.clusterNodes

(Используется в: spec)

Блок конфигурации узлов кластера Kubernetes платформы Nova Container Platform. Используется для определения роли узла в кластере Kubernetes, имен и параметров сетевых интерфейсов узлов, настроек DNS, а также для привязки узла кластера к какой-либо определенной группе узлов.

Параметр Тип Обязательно Описание

master

Да

Определяет набор и параметры мастер-узлов Kubernetes.

Допустимое количество мастер-узлов и, соответственно, спецификаций ClusterNodeReference составляет 1 либо 3.

infra

Да

Определяет набор и параметры инфраструктурных узлов Kubernetes.

Допустимое количество инфраструктурных узлов и, соответственно, спецификаций ClusterNodeReference составляет от 1 и более.

worker

Да

Определяет набор и параметры рабочих узлов Kubernetes.

Допустимое количество инфраструктурных узлов и, соответственно, спецификаций ClusterNodeReference составляет от 1 и более.

ingress

Нет

Определяет набор и параметры рабочих узлов Kubernetes для балансировки входящих запросов.

Допустимое количество узлов балансировки входящих запросов и, соответственно, спецификаций ClusterNodeReference составляет от 1 и более.

2.3.1. ClusterNodeReference

(Используется в: ClusterNodes)

В блоке ClusterNodesReference указываются такие параметры узлов, как группа узлов, настройки сетевых интерфейсов, системы разрешения имен DNS, а также желаемое состояние узла в кластере Kubernetes.

Параметр Тип Обязательно Описание

hostgroup

String

Нет

Определяет группу узлов, к которой относится узел кластера Kubernetes.

Если имя группы узлов указано, то к данному узлу также применятся настройки, указанные в спецификации HostGroupReference [1].


1. Данный функционал в настоящее время находится в активной разработке.

state

String

Да

Желаемое состояние узла в кластере Kubernetes.

Допустимые значения:
present, absent.

При установке значения present узел будет добавлен в кластер Kubernetes. При установке значения absent узел будет удален из кластера Kubernetes.

networkSpec

Да

Сетевые параметры узла кластера Kubernetes.

networkSpec.ip

String

Да

Ipv4 адрес узла. Должно соответствовать:

IPv4Address (например, 192.168.1.1)

networkSpec.hostname

String

Да

Полное имя узла (FQDN). Имя узла в кластере должно быть уникальным.

networkSpec.gateway

String

Да

Ipv4 адрес шлюза по умолчанию. Указывается только при развертывании кластера методом IPI.

networkSpec.netmask

String

Да

Маска подсети. Указывается только при развертывании кластера методом IPI.

networkSpec.dns

Array of string

Да

Список DNS серверов. Указывается только при развертывании кластера методом IPI.

2.3.2. HostGroupReference

(Используется в: spec)

В блоке HostGroupReference указываются параметры узлов в контексте кластера Kubernetes в формате "ключ-значение".

Параметр Тип Обязательно Описание

name

String

Нет

Имя группы узлов.

additionalLabels [2]


2. Данный функционал в настоящее время находится в активной разработке.

Нет

Список дополнительных меток Labels для узлов кластера Kubernetes.

additionalAnnotations [3]


3. Данный функционал в настоящее время находится в активной разработке.

Нет

Список дополнительных аннотаций Annotations для узлов кластера Kubernetes.

additionalTaints [4]


4. Данный функционал в настоящее время находится в активной разработке.

Нет

Список дополнительных меток Taints для узлов кластера Kubernetes.

2.4. spec.infrastructureProvider

(Используется в: spec)

Блок spec.infrastructureProvider определяет параметры установки платформы Nova Container Platform при использовании провайдера инфраструктуры.

Параметр Тип Обязательно Описание

none

map[]

Да

Метод развертывания платформы Nova Container Platform без взаимодействия с провайдером инфраструктуры. Для использования данного метода установки необходимо оставить пустое значение параметра none, например none: {}.

vsphere

Да

Метод развертывания платформы Nova Container Platform в среде виртуализации VMware vSphere.

zvirt

Да

Метод развертывания платформы Nova Container Platform в среде виртуализации zVirt.

2.4.1. spec.infrastructureProvider.vsphere

(Используется в: spec.infrastructureProvider)

Блок vsphere определяет параметры установки платформы Nova Container Platform в среде виртуализации VMware vSphere.

Параметр Тип Обязательно Описание

auth

Да

Блок конфигурации параметров учетной записи и подключения к управляющему узлу платформы vSphere.

cluster

String

Да

Имя кластера vSphere.

datacenter

String

Да

Имя датацентра vSphere.

template

String

Нет

Имя шаблона ВМ для развертывания виртуальных машин. Может быть переопределен на уровне группы узлов, в случае если для групп узлов предполагается использовать разные шаблоны ВМ.

datastore

String

Нет

Имя хранилища для ВМ по умолчанию. Может быть переопределено на уровне группы узлов, в случае если для групп узлов предполагается использовать разные хранилища.

useLinkedClone

Boolean

Да

Использовать ли Linked Clone при создании ВМ. При значении true размер диска ВМ будет установлен равным размеру диска в шаблоне.

Значение по умолчанию: false

vmFolder

String

Нет

Имя папки, где будут размещены все созданные ВМ. Внутри данной папки будет создана подпапка с названием nova-<ClusterID>. Если параметр не указывается, то в корневой директории будет создана папка с названием nova-<ClusterID>.

Значение по умолчанию: <vsphere.datacenter.id>/vm/nova-<ClusterID>

network

String

Нет

Имя сети, в которой будут разворачиваться ВМ.

hostGroup

Да

Конфигурация параметров среды vSphere для групп узлов.

2.4.1.1. spec.infrastructureProvider.vsphere.auth

(Используется в: spec.infrastructureProvider.vsphere)

Блок vsphere.auth определяет параметры учетной записи и подключения к управляющему узлу VMware vCenter Server.

Параметр Тип Обязательно Описание

vcenterServer

String

Да

Полное доменное имя или IP-адрес сервера vCenter Server.

vcenterServerPort

Int

Нет

Порт для подключения к vCenter Server.

Значение по умолчанию: 443

tlsCaBundle

String

Да

Цепочка корневых TLS-сертификатов для подключения к API-интерфейсу vCenter Server. Передается в виде строки с данными, закодированными в base64.

username

String

Да

Учетная запись для доступа к vCenter Server.

password

String

Да

Пароль учетной записи для доступа к vCenter Server.

2.4.1.2. spec.infrastructureProvider.vsphere.hostGroup

(Используется в: spec.infrastructureProvider.vsphere)

В блоке vsphere.hostGroup списком перечисляются словари с группами узлов и их параметрами в контексте платформы vSphere в формате "ключ-значение".

Параметр Тип Обязательно Описание

name

String

Да

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

template

String

Нет

Имя шаблона ВМ для развертывания виртуальных машин данной группы.

network

String

Нет

Имя сети, в которой будут разворачиваться ВМ данной группы.

datastore

String

Нет

Имя хранилища для ВМ данной группы.

cpuSockets

String

Нет

Количество сокетов CPU, выделяемых каждой ВМ в группе узлов в среде vSphere.

cpuCores

String

Да

Количество ядер CPU, выделяемых каждой ВМ в группе узлов в среде vsphere.

memory

String

Да

Количество ОЗУ, выделяемой каждой ВМ в группе узлов в среде vsphere.

Допустимые значения:

xB, xKB, xMB, xGB, xTB, xPB, xKiB, xMiB, xGiB, xTiB, xPiB, где x - целочисленное значение. Например, 16 гибибайт указывается как16GiB, а 16 гигабайт - как 16GB.

diskSize

String

Да

Размер диска, выделяемого каждой ВМ в группе узлов в среде vSphere.

Допустимые значения:

xB, xKB, xMB, xGB, xTB, xPB, xKiB, xMiB, xGiB, xTiB, xPiB, где x - целочисленное значение. Например, 16 гибибайт указывается как16GiB, а 16 гигабайт - как 16GB.

diskThinProvisioned

String

Нет

Использовать ли тип Thin Provisioned для создаваемого диска.

Допустимые значения:

При использовании значения inherit тип диска наследуется из шаблона ВМ. При использовании параметра false тип диска устанавливается как Thick Provisioned Lazy Zeroed.

Значение по умолчанию: inherit

diskEagerlyScrub

Boolean

Нет

Использовать тип Thick Provisioned Eager Zeroed для создаваемого диска.

Значение true можно установить только в случае, когда параметр diskThinProvisioned имеет значение false.

Значение по умолчанию: false

2.4.2. spec.infrastructureProvider.zvirt

(Используется в: spec.infrastructureProvider)

Блок zvirt определяет параметры установки платформы Nova Container Platform в среде виртуализации zVirt.

Параметр Тип Обязательно Описание

auth

Да

Блок конфигурации параметров учетной записи и подключения к управляющему узлу платформы виртуализации zVirt.

clusterId

String

Да

Идентификатор кластера zVirt.

templateId

String

Нет

Глобальный идентификатор шаблона ВМ для развертывания виртуальных машин. Может быть переопределен на уровне группы узлов, в случае если для групп узлов предполагается использовать разные шаблоны ВМ.

csiStorageDomainName

String

Нет

Имя домена хранения среды zVirt, который используется CSI-драйвером кластера Kubernetes.

vnicProfileId

String

Нет

Идентификатор профиля виртуального сетевого интерфейса (vNIC Profile) в среде zVirt. Может быть переопределен для уровне группы узлов, в случае если для групп узлов предполагается использовать разные профили виртуальных сетевых интерфейсов.

hostGroup

Да

Конфигурация параметров среды zVirt для групп узлов.

useLinkedClone

Boolean

Нет

При значении true ВМ клонируется из шаблона и не связывается с ним. В результате будет создана ВМ с клонированным диском.

2.4.2.1. spec.infrastructureProvider.zvirt.auth

(Используется в: spec.infrastructureProvider.zvirt)

Блок zvirt.auth определяет параметры учетной записи и подключения к управляющему узлу платформы виртуализации zVirt.

Параметр Тип Обязательно Описание

apiUrl

String

Да

HTTP URL для доступа к zVirt API.

username

String

Да

Учетная запись для доступа к zVirt API.

password

String

Да

Пароль учетной записи для доступа к zVirt API.

tlsCaBundle

String

Нет

Цепочка корневых TLS-сертификатов для подключения к интерфейсу zVirt API. Передается в виде строки с данными, закодированными в base64.

2.4.2.2. spec.infrastructureProvider.zvirt.hostGroup

(Используется в: spec.infrastructureProvider.zvirt)

В блоке zvirt.hostGroup списком перечисляются словари с группами узлов и их параметрами в контексте платформы zVirt в формате "ключ-значение".

Параметр Тип Обязательно Описание

name

String

Да

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

templateId

String

Нет

Идентификатор шаблона ВМ для развертывания виртуальной машины.

vnicProfileId

String

Нет

Идентификатор профиля виртуального сетевого интерфейса (vNIC Profile) в среде zVirt.

cpuCores

String

Нет

Количество ядер CPU, выделяемых каждой ВМ в группе узлов в среде zVirt.

cpuSockets

String

Нет

Количество сокетов CPU, выделяемых каждой ВМ в группе узлов в среде zVirt.

cpuThreads

String

Нет

Количество потоков CPU на одно ядро из cpuCores, выделяемых каждой ВМ в группе узлов в среде zVirt.

memory

String

Нет

Количество ОЗУ, выделяемой каждой ВМ в группе узлов в среде zVirt.

Допустимые значения:

xB, xKB, xMB, xGB, xTB, xPB, xKiB, xMiB, xGiB, xTiB, xPiB, где x - целочисленное значение. Например, 16 гибибайт ОЗУ указывается как16GiB, а 16 гигабайт - как 16GB.

maximumMemory

String

Нет

Максимальный объем ОЗУ, выделяемой каждой ВМ в группе узлов в среде zVirt, до порога которого доступен функционал Memory Hot-plug. В случае, если функционал Memory Hot-plug не требуется, то параметр maximumMemory можно указать равным параметру memory.