GCPClusterConfiguration
Version: deckhouse.io/v1
- apiVersionстрока
Обязательный параметр
Допустимые значения:
deckhouse.io/v1
,deckhouse.io/v1alpha1
- kindстрока
Обязательный параметр
Допустимые значения:
GCPClusterConfiguration
- labelsобъект
Список лейблов, которые будут прикреплены ко всем ресурсам кластера (которые это поддерживают).
Если поменять теги в рабочем кластере, то после конвержа необходимо пересоздать все машины, чтобы теги применились.
Подробнее про лейблы можно прочитать в официальной документации.
Формат —
key: value
. - layoutстрока
Обязательный параметр
Название схемы размещения.
Standard
— включает режим Cloud NAT. Подробнее….WithoutNAT
— выделенная VPN создается для кластера. Все узлы имеют публичные IP адреса. Подробнее….Допустимые значения:
Standard
,WithoutNAT
- masterNodeGroupобъект
Обязательный параметр
Спецификация для описания NodeGroup master-узлов.
- additionalLabelsобъект
Список дополнительных label’ов.
Подробно про labels можно прочитать в официальной документации.
Пример:
project: cms-production severity: critical
- массив строк
Список дополнительных тегов.
К примеру, теги позволяют применять к инстансам правила firewall. Подробно про network tags можно прочитать в официальной документации.
- instanceClassобъект
Обязательный параметр
Частичное содержимое полей GCPInstanceClass.
- disableExternalIPбулевый
Запретить ли назначение внешнего IP для инстанса.
Параметр доступен только для layout
Standard
.true
— узлы не имеют публичных адресов, доступ в интернет осуществляется черезCloudNAT
.false
— для узлов создаются статические публичные адреса, они же используются для One-to-one NAT.По умолчанию:
true
Допустимые значения:
true
,false
- diskSizeGbцелочисленный
Размер root-диска. Значение указывается в
ГиБ
.Пример:
diskSizeGb: 20
- imageстрока
Обязательный параметр
Образ, который будет использоваться в заказанных инстансах.
Список образов можно найти в документации.
Внимание! Сейчас поддерживается и тестируется только
Ubuntu 18.04
,Ubuntu 20.04
,Centos 7
.Пример:
image: projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911
- machineTypeстрока
Обязательный параметр
Тип заказываемых инстансов.
Внимание! Следует убедиться, что указанный тип есть во всех зонах, перечисленных в параметре
zones
.GCP позволяет указывать нестандартное количество CPU и RAM, например:
custom-8-40960
илиn2-custom-8-40960
.Пример:
machineType: n1-standard-4
- disableExternalIPбулевый
- replicasцелочисленный
Обязательный параметр
Сколько master-узлов создавать.
Допустимые значения:
1 <= X
- zonesмассив строк
Список зон, в которых допустимо создавать статичные-узлы.
- additionalLabelsобъект
- nodeGroupsмассив объектов
Массив дополнительных NodeGroup для создания статичных узлов (например, для выделенных фронтов или шлюзов).
- additionalLabelsобъект
- массив строк
- instanceClassобъект
Обязательный параметр
Частичное содержимое полей GCPInstanceClass.
- disableExternalIPбулевый
Запретить ли назначение внешнего IP для инстанса.
Параметр доступен только для layout
Standard
.true
— узлы не имеют публичных адресов, доступ в интернет осуществляется черезCloudNAT
.false
— для узлов создаются статические публичные адреса, они же используются для One-to-one NAT.По умолчанию:
true
Допустимые значения:
true
,false
- diskSizeGbцелочисленный
Размер root-диска. Значение указывается в
ГиБ
.Пример:
diskSizeGb: 20
- imageстрока
Обязательный параметр
Образ, который будет использоваться в заказанных инстансах.
Список образов можно найти в документации.
Внимание! Сейчас поддерживается и тестируется только
Ubuntu 18.04
,Ubuntu 20.04
,Centos 7
.Пример:
image: projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911
- machineTypeстрока
Обязательный параметр
Тип заказываемых инстансов.
Внимание! Следует убедиться, что указанный тип есть во всех зонах, перечисленных в параметре
zones
.GCP позволяет указывать нестандартное количество CPU и RAM, например:
custom-8-40960
илиn2-custom-8-40960
.Пример:
machineType: n1-standard-4
- disableExternalIPбулевый
- nameстрока
Обязательный параметр
Имя NodeGroup, будет использоваться для генерации имен узлов.
- nodeTemplateобъект
Настройки Node-объектов в Kubernetes, которые будут добавлены после регистрации узлов.
- annotationsобъект
Аналогично стандартному полю
metadata.annotations
. - labelsобъект
Аналогично стандартному полю
metadata.labels
. - taintsмассив объектов
Аналогично полю
.spec.taints
из объекта Node. Внимание! Доступны только поляeffect
,key
,values
.- effectстрока
Допустимые значения:
NoSchedule
,PreferNoSchedule
,NoExecute
- keyстрока
- valueстрока
- effectстрока
- annotationsобъект
- replicasцелочисленный
Обязательный параметр
Количество узлов.
- zonesмассив строк
Список зон, в которых допустимо создавать узлы.
- peeredVPCsмассив строк
Список GCP VPC networks, с которыми будет объединена сеть кластера.
Сервис-аккаунт должен иметь доступ ко всем перечисленным VPC. Если доступа нет, то пиринг необходимо настраивать вручную.
- providerобъект
Обязательный параметр
Параметры подключения к API GCP.
- regionстрока
Обязательный параметр
Имя региона в котором будут заказываться инстансы.
- serviceAccountJSONстрока
Обязательный параметр
Ключ к Service Account’у с правами Project Admin (
service account key
), в JSON-формате.Как получить
service account key
.
- regionстрока
- sshKeyстрока
Обязательный параметр
Публичный ключ для доступа на узлы под пользователем
user
. - standardобъект
Настройки для схемы размещения
Standard
.- cloudNATAddressesмассив строк
Список имен публичных статических IP-адресов для
Cloud NAT
.
- cloudNATAddressesмассив строк
- subnetworkCIDRстрока
Подсеть, в которой будут работать узлы кластера.
Шаблон:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$
- withoutNATобъект
Настройки для схемы размещения
WithoutNAT
. - zonesмассив строк
Список зон, в которых допустимо создавать узлы.