diff --git a/07.01.06-Resource-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-decort_k8s-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%BE%D0%BC-kubernetes.md b/07.01.06-Resource-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-decort_k8s-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%BE%D0%BC-kubernetes.md new file mode 100644 index 0000000..a7435be --- /dev/null +++ b/07.01.06-Resource-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-decort_k8s-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%BE%D0%BC-kubernetes.md @@ -0,0 +1,258 @@ +Функция доступна в провайдере версии 2.0 и выше. + +_Resource_ функция **decort_k8s** служит для управления кластером. + +## Изменения в 3.4.0 +- В аргументы добавлено опциональное поле labels. +- В аргументы добавлено опциональное поле taints. +- В аргументы добавлено опциональное поле annotations. +- В аргументы добавлено опциональное поле sep_id в блоке masters. +- В аргументы добавлено опциональное поле sep_pool в блоке masters. +- В аргументы добавлено опциональное поле sep_id в блоке workers. +- В аргументы добавлено опциональное поле sep_pool в блоке workers. + +## Изменения в 3.3.0 +- Добавлен id виртуальной сети, которая используется с кластером k8s. +- Добавлены описания IP адресов для группы воркеров. +- Добавлены описания IP адресов для группы мастеров. +- Добавлены описания IP адресов виртуальной сети, которая присоеденена к группе воркеров. + +## Аргументы +_Resource_ функция **decort_k8s** для создания кластера принимает следующие аргументы: + +| Аргумент | Тип | Обязательный | Описание | +| --- | --- | --- | --- | +| name | string | :heavy_check_mark: | Наименование кластера,
при изменении - изменяет наименование кластера | +| rg_id | int | :heavy_check_mark: | ID ресурсной группы | +| k8sci_id | int | :heavy_check_mark: | ID catalogue item | +| wg_name | string | :heavy_check_mark: | Имя для первой worker group,
созданной в кластере | +| network_plugin | | string | :heavy_check_mark: | | Плагин сети для кластера. Допустимые значения: flannel, calico, weavenet | +| labels | []string | :x: | Список меток для кластера k8s | +| taints | []string | :x: | Список taints для кластера k8s | +| annotations | []string | :x: | Список аннотаций для кластера k8s | +| masters | Struct{} [см. ниже](#описание-блока-masters) | :x: | Настройка мастер node или nodes | +| workers | Struct{} [см. ниже](#описание-блока-workers) | :x: | Настройка worker node или nodes | +| extnet_id | int | :x: | ID внешней сети для соединения workers.
Если не задано,
то сеть будет выбрана платформой. | +| start | bool | :x: | Старт/Стоп кластера | + +### Описание блока masters +| Аргумент | Тип | Обязательный | Описание | +| --- | --- | --- | --- | +| num | int | :heavy_check_mark: | Количество nodes | +| cpu | int | :heavy_check_mark: | Количество cpu | +| ram | int | :heavy_check_mark: | Количество RAM в Mбайтах| +| disk | int | :heavy_check_mark: | Объем boot диска в ГБ | +| sep_id | int | :x: | Идентификатор SEP | +| sep_pool | string | :x: | Название SEP pool'а | + +### Описание блока workers +| Аргумент | Тип | Обязательный | Описание | +| --- | --- | --- | --- | +| num | int | :heavy_check_mark: | Количество nodes | +| cpu | int | :heavy_check_mark: | Количество cpu | +| ram | int | :heavy_check_mark: | Количество RAM в Mбайтах| +| disk | int | :heavy_check_mark: | Объем boot диска в ГБ | +| sep_id | int | :x: | Идентификатор SEP | +| sep_pool | string | :x: | Название SEP pool'а | + +## Возвращаемые значения +В случае успешного выполнения _resource_ функция **decort_k8s** возвращает в указанную при вызове переменную следующие значения: + +| Параметр | Тип | Описание | +| --- | --- | --- | +| acl | Struct{} [см. ниже](#описание-структуры-acl) | acl | +| account_id | int | ID аккаунта | +| account_name | string | Имя аккаунта | +| bservice_id | int | ID bservice | +| k8sci_id | int | ID образа кластера | +| created_by | string | Кем был создан ресурс | +| created_time | int | Время создания ресурса | +| deleted_by | string | Кем был удален ресурс | +| deleted_time | int | Время удаления ресурса | +| extnet_id | int | ID внешней сети | +| k8s_ci_name | string | Имя образа кластера | +| masters | []Struct{} [см. ниже](#описание-структуры-masters) | Структура компьютов мастеров | +| workers | []Struct{} [см. ниже](#описание-структуры-workers) | Структура компьютов воркеров | +| lb_id | int | ID балансировщика нагрзуки | +| lb_ip | string | IP балансировщика нагрзуки | +| name | string | Имя ресурса | +| network_plugin | string | Сетевой плагин | +| rg_id | int | ID ресурсной группы | +| rg_name | string | Имя ресурсной группы | +| status | string | Статус ресурса | +| tech_status | string | Технический статус ресурса | +| updated_by | string | Кем был обновлен ресурс | +| updated_time | int | Время последнего обновления ресурса | +| kubeconfig | string | Конфиг | +| vins_id | int | ID виртуальной сети | + +### Описание структуры acl + +| Параметр | Тип | Описание | +| --- | --- | --- | +| account_acl | []Struct{} [см. ниже](#описание-структуры-списка-acl) | account_acl | +| k8s_acl| []Struct{} [см. ниже](#описание-структуры-списка-acl) | k8s_acl | +| rg_acl | []Struct{} [см. ниже](#описание-структуры-списка-acl) | rg_acl | + +### Описание структуры списка acl + +| Параметр | Тип | Описание | +| --- | --- | --- | +| explicit | bool | explicit | +| guid | string | ID ресурса | +| right | string | right | +| status | string | Статус ресурса | +| type | string | Тип ресурса | +| user_group_id | string | ID группы | + +### Описание структуры masters + +| Параметр | Тип | Описание | +| --- | --- | --- | +| cpu | int | Кол-во cpu на компьютах master | +| detailed_info | []Struct{} [см. ниже](#описание-структуры-списка-detailed_info) | Детальная информация masters | +| disk | int | ID диска | +| master_id | int | ID группы master | +| name | string | Имя группы master | +| num | int | Кол-во компьютов в группе master | +| ram | int | Кол-во Ram на компьютах группы master| + +### Описание структуры workers + +| Параметр | Тип | Описание | +| --- | --- | --- | +| annotations | []string | Аннотации группы workers | +| cpu | int | Кол-во cpu на компьютах workers | +| detailed_info | []Struct{} [см. ниже](#описание-структуры-списка-detailed_info) | Детальная информация masters | +| disk | int | ID диска | +| guid | string | ID ресурса | +| id | int | ID группы workers | +| labels | []string | Лейблы группы workers | +| name | string | Имя ресурса | +| num | int | Кол-во компьютов в группе workers | +| ram | int | Кол-во Ram на компьютах группы workers | +| taints | []string | огранечители группы workers | + +### Описание структуры списка detailed_info + +| Параметр | Тип | Описание | +| --- | --- | --- | +| compute_id | int | ID компьюта в составе группы | +| name | string | Имя компьюта в составе группы | +| status | string | Статус компьюта в составе группы | +| tech_status | string | Статус компьюта в составе группы | +| interfaces | []Struct{} [см. ниже](#описание-структуры-списка-interfaces) | Список интерфейсов группы | +| natable_vins_ip | string | IP NAT | +| natable_vins_network | string | IP виртуальной сети | + +### Описание структуры списка interfaces + +| Параметр | Тип | Описание | +| --- | --- | --- | +| def_gw | string | Шлюз по умолчанию | +| ip_address | string | IP интерфейса | + +## Пример использования +Пример вызова _resource_ функции **decort_k8s**: +```terraform +resource "decort_k8s" "cluster" { + #имя кластера + #обязательный параметр + #при изменении - обновдяет имя кластера + #тип - строка + name = "tftest" + + #id resource group + #обязательный параметр + #тип - число + rg_id = 776 + + #id catalogue item + #обязательный параметр + #тип - число + k8sci_id = 9 + + #имя для первой worker group, созданной в кластере + #обязательный параметр + #тип - строка + wg_name = "workers" + + #настройка мастер node или nodes + #опциональный параметр + #максимальное кол-во элементов - 1 + #тип - список нод + masters { + #кол-во node + #обязательный параметр + #тип - число + num = 1 + + #кол-во cpu + #обязательный параметр + #тип - число + cpu = 2 + + #Идентификатор SEP + #опциональный параметр + #тип - число + sep_id = 1010 + + #Имя SEP pool'a + #опциональный параметр + #тип - строка + sep_pool = "data01" + + #кол-во RAM в Мбайтах + #обязательный параметр + #тип - число + ram = 2048 + + + #размер диска в Гбайтах + #обязательный параметр + #тип - число + disk = 10 + } + + #настройка worker node или nodes + #опциональный параметр + #максимальное кол-во элементов - 1 + #тип - список нод + workers { + #кол-во node + #обязательный параметр + #тип - число + num = 1 + + #кол-во cpu + #обязательный параметр + #тип - число + cpu = 2 + + #Идентификатор SEP + #опциональный параметр + #тип - число + sep_id = 1010 + + #Имя SEP pool'a + #опциональный параметр + #тип - строка + sep_pool = "data01" + + #кол-во RAM в Мбайтах + #обязательный параметр + #тип - число + ram = 2048 + + #размер диска в Гбайтах + #обязательный параметр + #тип - число + disk = 10 + } +} + +# once the above directive completes, will be accessible +# as decort_k8s.cluster +``` + +После успешного завершения такого вызова **decort_k8s** в переменной `decort_k8s.cluster` будут сохранены возвращаемые значения.