|
|
|
@ -0,0 +1,261 @@
|
|
|
|
|
Функция доступна в провайдере версии 4.5.1 и выше.
|
|
|
|
|
|
|
|
|
|
_Resource_ функция **decort_cb_k8s_cp** служит для управления кластером.
|
|
|
|
|
|
|
|
|
|
## Аргументы
|
|
|
|
|
|
|
|
|
|
_Resource_ функция **decort_cb_k8s_cp** для создания кластера принимает следующие аргументы:
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
|----------------|-----------|--------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
|
|
|
| name | string | :heavy_check_mark: | Наименование кластера, <br/>при изменении - изменяет наименование кластера |
|
|
|
|
|
| rg_id | int | :heavy_check_mark: | ID ресурсной группы |
|
|
|
|
|
| k8sci_id | int | :heavy_check_mark: | ID catalogue item |
|
|
|
|
|
| network_plugin | string | :heavy_check_mark: | Сетевой плагин |
|
|
|
|
|
| num | int | :x: | кол-во компьютов в ресурсе |
|
|
|
|
|
| cpu | int | :x: | Кол-во cpu на нодах |
|
|
|
|
|
| ram | int | :x: | Кол-во ram на нодах |
|
|
|
|
|
| disk | int | :x: | Размер диска мастер-узла |
|
|
|
|
|
| sep_id | int | :x: | storage endpoint provider ID |
|
|
|
|
|
| sep_pool | string | :x: | SEP пул мастер-узла (если установлен sepId) |
|
|
|
|
|
| with_lb | bool | :x: | Создать кластер с/без балансировщика нагрузки |
|
|
|
|
|
| extnet_only | bool | :x: | Использовать только extnet для работы кластера |
|
|
|
|
|
|join_config| string | :x: | Используется для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере. Это позволяет вам настраивать такие вещи, как регистрация node, настройка network и другие задачи инициализации. |
|
|
|
|
|
|kube_proxy_config| string | :x: | Используется для настройки поведения и параметров присоединения node к кластеру. Он включает в себя такие параметры, как режим прокси-сервера, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy. |
|
|
|
|
|
|kubelet_config| string | :x: | Используется для настройки поведения и параметров Kubelet, который является агентом primary node, запускаемым на каждом node кластера. Он включает в себя такие параметры, как IP-адрес node, распределение ресурсов, политики удаления модулей и другие конфигурации, специфичные для Kubelet. |
|
|
|
|
|
| cluster_config | string | :x: | используется для определения глобальных настроек и конфигураций для всего кластера. Она включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера. вставьте допустимую строку JSON со всеми уровнями вложенности. |
|
|
|
|
|
|init_config| string | :x: | Используется для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере. Это позволяет вам настраивать такие вещи, как регистрация node, настройка network и другие задачи инициализации. |
|
|
|
|
|
|additional_sans| []string | :x: | Дополнительные SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes. Возможность взаимодействовать с кластером по FQDN. Параметр получает список строк – IP-адреса и/или DNS (по формату RFC 1123 c поддержкой wildcard). |
|
|
|
|
|
| ha_mode | bool | :x: | Флаг, показывающий, включен ли режим haproxy |
|
|
|
|
|
| oidc_cert | string | :x: | ssl-сертификат в формате x509 pem |
|
|
|
|
|
| extnet_id | int | :x: | ID внешней сети для соединения workers.<br/>Если не задано,<br/>то сеть будет выбрана платформой. |
|
|
|
|
|
| vins_id | int | :x: | ID виртуальной сети |
|
|
|
|
|
| desc | string | :x: | Текстовое описание кластера |
|
|
|
|
|
| start |bool| :x: | Старт/Стоп кластера |
|
|
|
|
|
|enabled|bool| :x: | Включить/отключить кластер |
|
|
|
|
|
| permanently | bool | :x: | Безвозвратное удаление кластера. Используется при удалении. |
|
|
|
|
|
|restore|bool| :x: |Восстановить кластер из корзины|
|
|
|
|
|
|
|
|
|
|
## Возвращаемые значения
|
|
|
|
|
|
|
|
|
|
В случае успешного выполнения _resource_ функция **decort_cb_k8s_cp** возвращает в указанную при вызове переменную следующие значения:
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| ------------- | ----------------------------------------------------------------- |----------------------------------------------------------------|
|
|
|
|
|
| detailed_info | []Struct{} [см. ниже](#описание-структуры-списка-detailed_info) | Детальная информация о группе |
|
|
|
|
|
| master_id | int | ID группы master |
|
|
|
|
|
| master_name | string | Наименование мастер-узла |
|
|
|
|
|
| lb_ip | string | IP адрес балансировщика нагрузки (load balancer) по-умолчанию. |
|
|
|
|
|
| default_wg_id | int | ID рабочей группы (worker group) для этого экземпляра кластера. |
|
|
|
|
|
| kubeconfig | string | Kubeconfig для доступа к кластеру. |
|
|
|
|
|
| k8s_id | int | ID кластера |
|
|
|
|
|
| acl | []Struct [см. ниже](#описание-структуры-acl)| Cписок Acces Control |
|
|
|
|
|
| account_id | int | ID аккаунта - владельца кластера |
|
|
|
|
|
| account_name | string | Имя аккаунта - владельца кластера |
|
|
|
|
|
| bservice_id | int | ID bservice |
|
|
|
|
|
| created_by | string | Аккаунт, создавший кластер |
|
|
|
|
|
| created_time | int | Время создания кластера |
|
|
|
|
|
| deleted_by | string | Кем удален кластер |
|
|
|
|
|
| deleted_time | int | Время удаления кластера |
|
|
|
|
|
| gid | int | GRID ID |
|
|
|
|
|
| guid | int | ID ресурса |
|
|
|
|
|
| k8s_ci_name | string | Имя образа кластера |
|
|
|
|
|
| lb_id | int | ID балансировщика нагрзуки |
|
|
|
|
|
| milestones | int | Вехи |
|
|
|
|
|
| rg_name | string | Название ресурсной группы |
|
|
|
|
|
| ssh_key | string | Публичный SSH ключ |
|
|
|
|
|
| status | string | Статус кластера |
|
|
|
|
|
| tech_status | string | Технический статус кластера |
|
|
|
|
|
| updated_by | string | Кем был обновлен кластер |
|
|
|
|
|
| updated_time | int | Время последнего обновления кластера |
|
|
|
|
|
|
|
|
|
|
### Описание структуры списка detailed_info
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| compute_id | int | ID компьюта в составе группы |
|
|
|
|
|
| name | string | Имя компьюта в составе группы |
|
|
|
|
|
| status | string | Статус компьюта в составе группы |
|
|
|
|
|
| tech_status | string | Технический статус компьюта в составе группы |
|
|
|
|
|
| interfaces | []Struct{} [см. ниже](#описание-структуры-списка-interfaces) | Список интерфейсов группы |
|
|
|
|
|
|
|
|
|
|
### Описание структуры списка interfaces
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| def_gw | string | Шлюз по умолчанию |
|
|
|
|
|
| ip_address | string | IP интерфейса |
|
|
|
|
|
|
|
|
|
|
### Описание структуры acl
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
|-------------| --- | --- |
|
|
|
|
|
| account_acl | []Struct [см. ниже](#описание-структуры-List-acl) | Информация о списке пользователей аккаунтов |
|
|
|
|
|
| k8s_acl | []Struct [см. ниже](#описание-структуры-List-acl) | Информация о списке пользователей компьютов |
|
|
|
|
|
| rg_acl | []Struct [см. ниже](#описание-структуры-List-acl) | Информация о списке пользователей ресурной группы |
|
|
|
|
|
|
|
|
|
|
### Описание структуры List acl
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| explicit | bool | Явно ли указан доступ |
|
|
|
|
|
| guid | string | guid Ресурса |
|
|
|
|
|
| right | string | Права на ресурс |
|
|
|
|
|
| status | string | Статус ресурса |
|
|
|
|
|
| type | string | Тип ресурса |
|
|
|
|
|
| user_group_id | string | ID user group |
|
|
|
|
|
|
|
|
|
|
## Пример использования
|
|
|
|
|
|
|
|
|
|
Пример вызова _resource_ функции **decort_cb_k8s_cp**:
|
|
|
|
|
|
|
|
|
|
```terraform
|
|
|
|
|
resource "decort_cb_k8s_cp" "cluster" {
|
|
|
|
|
# Название кластера
|
|
|
|
|
# Обязательный параметр
|
|
|
|
|
# string
|
|
|
|
|
name = "k8s-cp"
|
|
|
|
|
|
|
|
|
|
# K8sCI ID
|
|
|
|
|
# Обязательный параметр
|
|
|
|
|
# int
|
|
|
|
|
k8sci_id = 55
|
|
|
|
|
|
|
|
|
|
# Плагин сети (flannel, weavenet или calico)
|
|
|
|
|
# Обязательный параметр
|
|
|
|
|
# string
|
|
|
|
|
network_plugin = "flannel"
|
|
|
|
|
|
|
|
|
|
# ID ресурсной группы
|
|
|
|
|
# Обязательный параметр
|
|
|
|
|
# int
|
|
|
|
|
rg_id = 1387
|
|
|
|
|
|
|
|
|
|
# Кол-во ядер мастер-узла
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# int
|
|
|
|
|
cpu = 2
|
|
|
|
|
|
|
|
|
|
# Объем RAM мастер-узла
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# int
|
|
|
|
|
ram = 2048
|
|
|
|
|
|
|
|
|
|
# Кол-во ВМ мастер-узла (1 или 3)
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# int
|
|
|
|
|
num = 1
|
|
|
|
|
|
|
|
|
|
# Размер диска мастер-узла
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# int
|
|
|
|
|
disk = 10
|
|
|
|
|
|
|
|
|
|
# Описание кластера
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# string
|
|
|
|
|
desc = "<DESCRIPTION>"
|
|
|
|
|
|
|
|
|
|
# id extnet
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - число
|
|
|
|
|
extnet_id = 0
|
|
|
|
|
|
|
|
|
|
# id vins
|
|
|
|
|
# опциональный параметр
|
|
|
|
|
# тип - число
|
|
|
|
|
vins_id = 1234
|
|
|
|
|
|
|
|
|
|
# Storage Endpoint ID
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# id
|
|
|
|
|
sep_id = 0
|
|
|
|
|
|
|
|
|
|
# SEP Pool
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# string
|
|
|
|
|
sep_pool = "pool"
|
|
|
|
|
|
|
|
|
|
# Старт/Стоп кластера
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# bool
|
|
|
|
|
start = true
|
|
|
|
|
|
|
|
|
|
# Включить/отключить кластер
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# bool
|
|
|
|
|
enabled = true
|
|
|
|
|
|
|
|
|
|
# Удалить кластер безвозвратно
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# bool
|
|
|
|
|
permanently = true
|
|
|
|
|
|
|
|
|
|
# Восстановить кластер из корзины
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# bool
|
|
|
|
|
restore = true
|
|
|
|
|
|
|
|
|
|
# Создать кластер с/без балансировщика нагрузки
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# bool
|
|
|
|
|
with_lb = true
|
|
|
|
|
|
|
|
|
|
# позволяет создать схему отказоустройчивой LB
|
|
|
|
|
# опциональный параметр
|
|
|
|
|
# тип - булев тип
|
|
|
|
|
ha_mode = true
|
|
|
|
|
|
|
|
|
|
# дополнительные SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes;
|
|
|
|
|
# возможность взаимодействовать с кластером по FQDN
|
|
|
|
|
# параметр получает список строк – IP-адреса и/или DNS (по формату RFC 1123 c поддержкой wildcard)
|
|
|
|
|
# опциональный параметр
|
|
|
|
|
# тип - массив строк
|
|
|
|
|
additional_sans = ["192.168.201.0", "192.168.201.1"]
|
|
|
|
|
|
|
|
|
|
# используется для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере
|
|
|
|
|
# это позволяет вам настраивать такие вещи, как регистрация node, настройка network и другие задачи инициализации
|
|
|
|
|
# опциональный параметр
|
|
|
|
|
# тип - строка
|
|
|
|
|
init_config = "{JSON string}"
|
|
|
|
|
|
|
|
|
|
# используется для определения глобальных настроек и конфигураций для всего кластера
|
|
|
|
|
# он включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера
|
|
|
|
|
# опциональный параметр
|
|
|
|
|
# тип - строка
|
|
|
|
|
cluster_config = "{JSON string}"
|
|
|
|
|
|
|
|
|
|
# используется для настройки поведения и параметров Kubelet, который является агентом primary node, запускаемым на каждом node кластера
|
|
|
|
|
# он включает в себя такие параметры, как IP-адрес node, распределение ресурсов, политики удаления модулей и другие конфигурации, специфичные для Kubelet
|
|
|
|
|
# опциональный параметр
|
|
|
|
|
# тип - строка
|
|
|
|
|
kubelet_config = "{JSON string}"
|
|
|
|
|
|
|
|
|
|
# используется для настройки поведения и параметров присоединения node к кластеру
|
|
|
|
|
# он включает в себя такие параметры, как режим прокси-сервера, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy
|
|
|
|
|
# опциональный параметр
|
|
|
|
|
# тип - строка
|
|
|
|
|
kube_proxy_config = "{JSON string}"
|
|
|
|
|
|
|
|
|
|
# используется для настройки поведения и параметров присоединения node к кластеру
|
|
|
|
|
# он включает в себя такие параметры, как cluster's control plane endpoint, токен и ключ сертификата
|
|
|
|
|
# опциональный параметр
|
|
|
|
|
# тип - строка
|
|
|
|
|
join_config = "{JSON string}"
|
|
|
|
|
|
|
|
|
|
# при создании кластре использовать подключение только к сети ExtNet
|
|
|
|
|
# опциональный параметр
|
|
|
|
|
# тип - булев тип
|
|
|
|
|
extnet_only = true
|
|
|
|
|
|
|
|
|
|
# добавить ssl-сертификат в формате x509 pem
|
|
|
|
|
# необязательный параметр
|
|
|
|
|
# тип - файл
|
|
|
|
|
oidc_cert = file("ca.crt")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# once the above directive completes, k8s cluster will be accessible
|
|
|
|
|
# as decort_cb_k8s_cp.cluster
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki/04.02-Инициализация-Terraform-провайдера-DECORT)).
|
|
|
|
|
|
|
|
|
|
После успешного завершения такого вызова **decort_cb_k8s_cp** в переменной `decort_cb_k8s_cp.cluster` будут сохранены возвращаемые значения.
|