4.4.0

dev
stSolo 2 years ago
parent ca19606299
commit 2841d34eed

@ -2,11 +2,21 @@
_Resource_ функция **decort_k8s** служит для управления кластером. _Resource_ функция **decort_k8s** служит для управления кластером.
## Изменения в 4.4.0
- добавлено поле _extnet_only_
- добавлено поле _oidc_cert_
- добавлено поле _cloud_init_
- добавлено поле _ha_mode_
- добавлено поле _cluster_config_
## Изменения в 4.0.2 ## Изменения в 4.0.2
- Добавлена возможность создавать/удалять воркер-группы напрямую из ресурса k8s - Добавлена возможность создавать/удалять воркер-группы напрямую из ресурса k8s
- Исправлены возможные ошибки состояния при модификации воркер-групп - Исправлены возможные ошибки состояния при модификации воркер-групп
## Изменения в 3.4.0 ## Изменения в 3.4.0
- В аргументы добавлено опциональное поле labels. - В аргументы добавлено опциональное поле labels.
- В аргументы добавлено опциональное поле taints. - В аргументы добавлено опциональное поле taints.
- В аргументы добавлено опциональное поле annotations. - В аргументы добавлено опциональное поле annotations.
@ -16,9 +26,10 @@ _Resource_ функция **decort_k8s** служит для управлени
- В аргументы добавлено опциональное поле sep_pool в блоке workers. - В аргументы добавлено опциональное поле sep_pool в блоке workers.
## Изменения в 3.3.0 ## Изменения в 3.3.0
- Добавлен id виртуальной сети, которая используется с кластером k8s. - Добавлен id виртуальной сети, которая используется с кластером k8s.
- Добавлены описания IP адресов для группы воркеров. - Добавлены описания IP адресов для группы воркеров.
- Добавлены описания IP адресов для группы мастеров. - Добавлены описания IP адресов для группы мастеров.
- Добавлены описания IP адресов виртуальной сети, которая присоеденена к группе воркеров. - Добавлены описания IP адресов виртуальной сети, которая присоеденена к группе воркеров.
### Работа с cluster_config ### Работа с cluster_config
@ -32,15 +43,15 @@ _Resource_ функция **decort_k8s** служит для управлени
```json ```json
{ {
"apiServer": { "apiServer": {
"extraArgs": { "extraArgs": {
"oidc-issuer-url": "https://dex.decs.local/", "oidc-issuer-url": "https://dex.decs.local/",
"oidc-client-id": "dex", "oidc-client-id": "dex",
"oidc-username-claim": "email", "oidc-username-claim": "email",
"oidc-groups-claim": "groups", "oidc-groups-claim": "groups",
"oidc-ca-file": "/etc/kubernetes/ssl/kc-ca.pem" "oidc-ca-file": "/etc/kubernetes/ssl/kc-ca.pem"
}
} }
}
} }
``` ```
@ -58,14 +69,16 @@ resource "decort_k8s" "cluster1" {
4. Выполнить `terraform apply` 4. Выполнить `terraform apply`
### Работа с oidc__cert ### Работа с oidc\_\_cert
Для работы с oidc_cert следует: Для работы с oidc_cert следует:
1. Создать файл с ssl-сертификатом в формате x509 pem c названием ca.crt в рабочей директории 1. Создать файл с ssl-сертификатом в формате x509 pem c названием ca.crt в рабочей директории
#### ca.crt #### ca.crt
Пример содержания файла ca.crt Пример содержания файла ca.crt
``` ```
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIDzTCCArWgAwIBAgIUUW9bFlExT8f/gVX4OrYXegInXi0wDQYJKoZIhvcNAQEL MIIDzTCCArWgAwIBAgIUUW9bFlExT8f/gVX4OrYXegInXi0wDQYJKoZIhvcNAQEL
@ -106,8 +119,6 @@ resource "decort_k8s" "cluster1" {
3. Выполнить `terraform apply` 3. Выполнить `terraform apply`
### Работа с cloud_init ### Работа с cloud_init
Cloud Init позволяет запустить ВМ с предустановленными настройками пользователя, группами и доступами. Подробнее про настройку cloud_init можно прочесть по [ссылке](https://cloudinit.readthedocs.io/en/latest/reference/examples.html). Cloud Init позволяет запустить ВМ с предустановленными настройками пользователя, группами и доступами. Подробнее про настройку cloud_init можно прочесть по [ссылке](https://cloudinit.readthedocs.io/en/latest/reference/examples.html).
@ -150,152 +161,163 @@ resource "decort_k8s" "cluster1" {
**Конфигурация cloud_init применяется только при создании кластера, во всех остальных случаях - игнорируется** **Конфигурация cloud_init применяется только при создании кластера, во всех остальных случаях - игнорируется**
## Работа в параллельном режиме
Рекомендуется создавать одновременно не более одного экземпляра ресурса.
В случае необходимости создания нескольких ресурсов одновременно, необходимо запускать `terraform apply/plan` в режиме `-parallelism=1`.
## Аргументы ## Аргументы
_Resource_ функция **decort_k8s** для создания кластера принимает следующие аргументы: _Resource_ функция **decort_k8s** для создания кластера принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание | | Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- | | -------------- | -------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| name | string | :heavy_check_mark: | Наименование кластера, <br/>при изменении - изменяет наименование кластера | | name | string | :heavy_check_mark: | Наименование кластера, <br/>при изменении - изменяет наименование кластера |
| rg_id | int | :heavy_check_mark: | ID ресурсной группы | | rg_id | int | :heavy_check_mark: | ID ресурсной группы |
| k8sci_id | int | :heavy_check_mark: | ID catalogue item | | k8sci_id | int | :heavy_check_mark: | ID catalogue item |
| wg_name | string | :heavy_check_mark: | Имя для первой worker group, <br/> созданной в кластере | | wg_name | string | :heavy_check_mark: | Имя для первой worker group, <br/> созданной в кластере |
| network_plugin | string | :heavy_check_mark: | Плагин сети для кластера. Допустимые значения: flannel, calico, weavenet | | network_plugin | string | :heavy_check_mark: | Плагин сети для кластера. Допустимые значения: flannel, calico, weavenet |
| labels | []string | :x: | Список меток для дефолтной worker-группы k8s | | labels | []string | :x: | Список меток для дефолтной worker-группы k8s |
| taints | []string | :x: | Список taints для дефолтной worker-группы k8s | | taints | []string | :x: | Список taints для дефолтной worker-группы k8s |
| annotations | []string | :x: | Список аннотаций дефолтной worker-группы k8s | | annotations | []string | :x: | Список аннотаций дефолтной worker-группы k8s |
| masters | Struct{} [см. ниже](#описание-блока-masters) | :x: | Настройка мастер-группы | | masters | Struct{} [см. ниже](#описание-блока-masters) | :x: | Настройка мастер-группы |
| workers | Struct{} [см. ниже](#описание-блока-workers) | :x: | Настройка worker-групп | | workers | Struct{} [см. ниже](#описание-блока-workers) | :x: | Настройка worker-групп |
| extnet_id | int | :x: | ID внешней сети для соединения workers.<br/>Если не задано,<br/>то сеть будет выбрана платформой. | | extnet_id | int | :x: | ID внешней сети для соединения workers.<br/>Если не задано,<br/>то сеть будет выбрана платформой. |
| cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. | | cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. |
| cluster_config | string | :x: | используется для определения глобальных настроек и конфигураций для всего кластера. Она включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера. вставьте допустимую строку JSON со всеми уровнями вложенности. | | cluster_config | string | :x: | используется для определения глобальных настроек и конфигураций для всего кластера. Она включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера. вставьте допустимую строку JSON со всеми уровнями вложенности. |
| oidc_cert | string | :x: | ssl-сертификат в формате x509 pem | | oidc_cert | string | :x: | ssl-сертификат в формате x509 pem |
| ha_mode | bool | :x: | Использовать высокодостпуню схему для балансировщика нагрузки | | extnet_only | bool | :x: | Использовать только extnet для работы кластера |
| extnet_only | bool | :x: | Использовать только extnet | ha_mode | bool | :x: | Режим высокой доступностью балансировщика нагрузки |
| start | bool | :x: | Старт/Стоп кластера | | start | bool | :x: | Старт/Стоп кластера |
### Описание блока masters ### Описание блока masters
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- | | Аргумент | Тип | Обязательный | Описание |
| num | int | :heavy_check_mark: | Количество nodes | | -------- | ------ | ------------------ | ------------------------ |
| cpu | int | :heavy_check_mark: | Количество cpu | | num | int | :heavy_check_mark: | Количество nodes |
| ram | int | :heavy_check_mark: | Количество RAM в Mбайтах| | cpu | int | :heavy_check_mark: | Количество cpu |
| disk | int | :heavy_check_mark: | Объем boot диска в ГБ | | ram | int | :heavy_check_mark: | Количество RAM в Mбайтах |
| sep_id | int | :x: | Идентификатор SEP | | disk | int | :heavy_check_mark: | Объем boot диска в ГБ |
| sep_pool | string | :x: | Название SEP pool'а | | sep_id | int | :x: | Идентификатор SEP |
| sep_pool | string | :x: | Название SEP pool'а |
### Описание блока workers ### Описание блока workers
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- | | Аргумент | Тип | Обязательный | Описание |
| name | string | :heavy_check_mark: | Наименование воркер-группы | | ----------- | -------- | ------------------ | -------------------------- |
| num | int | :heavy_check_mark: | Количество nodes | | name | string | :heavy_check_mark: | Наименование воркер-группы |
| cpu | int | :heavy_check_mark: | Количество cpu | | num | int | :heavy_check_mark: | Количество nodes |
| ram | int | :heavy_check_mark: | Количество RAM в Mбайтах| | cpu | int | :heavy_check_mark: | Количество cpu |
| disk | int | :heavy_check_mark: | Объем boot диска в ГБ | | ram | int | :heavy_check_mark: | Количество RAM в Mбайтах |
| sep_id | int | :x: | Идентификатор SEP | | disk | int | :heavy_check_mark: | Объем boot диска в ГБ |
| sep_pool | string | :x: | Название SEP pool'а | | sep_id | int | :x: | Идентификатор SEP |
| labels | []string | :x: | Список labels | | sep_pool | string | :x: | Название SEP pool'а |
| annotations | []string | :x: | Список annotations | | labels | []string | :x: | Список labels |
| taints | []string | :x: | Список taints | | annotations | []string | :x: | Список annotations |
| taints | []string | :x: | Список taints |
## Возвращаемые значения ## Возвращаемые значения
В случае успешного выполнения _resource_ функция **decort_k8s** возвращает в указанную при вызове переменную следующие значения: В случае успешного выполнения _resource_ функция **decort_k8s** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание | | Параметр | Тип | Описание |
| --- | --- | --- | | -------------- | -------------------------------------------------- | ----------------------------------- |
| acl | Struct{} [см. ниже](#описание-структуры-acl) | acl | | acl | Struct{} [см. ниже](#описание-структуры-acl) | acl |
| account_id | int | ID аккаунта | | account_id | int | ID аккаунта |
| account_name | string | Имя аккаунта | | account_name | string | Имя аккаунта |
| bservice_id | int | ID bservice | | bservice_id | int | ID bservice |
| k8sci_id | int | ID образа кластера | | k8sci_id | int | ID образа кластера |
| created_by | string | Кем был создан ресурс | | created_by | string | Кем был создан ресурс |
| created_time | int | Время создания ресурса | | created_time | int | Время создания ресурса |
| deleted_by | string | Кем был удален ресурс | | deleted_by | string | Кем был удален ресурс |
| deleted_time | int | Время удаления ресурса | | deleted_time | int | Время удаления ресурса |
| extnet_id | int | ID внешней сети | | extnet_id | int | ID внешней сети |
| k8s_ci_name | string | Имя образа кластера | | k8s_ci_name | string | Имя образа кластера |
| masters | []Struct{} [см. ниже](#описание-структуры-masters) | Структура компьютов мастеров | | masters | []Struct{} [см. ниже](#описание-структуры-masters) | Структура компьютов мастеров |
| workers | []Struct{} [см. ниже](#описание-структуры-workers) | Структура компьютов воркеров | | workers | []Struct{} [см. ниже](#описание-структуры-workers) | Структура компьютов воркеров |
| lb_id | int | ID балансировщика нагрзуки | | lb_id | int | ID балансировщика нагрзуки |
| lb_ip | string | IP балансировщика нагрзуки | | lb_ip | string | IP балансировщика нагрзуки |
| name | string | Имя ресурса | | name | string | Имя ресурса |
| network_plugin | string | Сетевой плагин | | network_plugin | string | Сетевой плагин |
| rg_id | int | ID ресурсной группы | | rg_id | int | ID ресурсной группы |
| rg_name | string | Имя ресурсной группы | | rg_name | string | Имя ресурсной группы |
| status | string | Статус ресурса | | status | string | Статус ресурса |
| tech_status | string | Технический статус ресурса | | tech_status | string | Технический статус ресурса |
| updated_by | string | Кем был обновлен ресурс | | updated_by | string | Кем был обновлен ресурс |
| updated_time | int | Время последнего обновления ресурса | | updated_time | int | Время последнего обновления ресурса |
| kubeconfig | string | Конфиг | | kubeconfig | string | Конфиг |
| vins_id | int | ID виртуальной сети | | vins_id | int | ID виртуальной сети |
### Описание структуры acl ### Описание структуры acl
| Параметр | Тип | Описание | | Параметр | Тип | Описание |
| --- | --- | --- | | ----------- | ----------------------------------------------------- | ----------- |
| account_acl | []Struct{} [см. ниже](#описание-структуры-списка-acl) | account_acl | | account_acl | []Struct{} [см. ниже](#описание-структуры-списка-acl) | account_acl |
| k8s_acl| []Struct{} [см. ниже](#описание-структуры-списка-acl) | k8s_acl | | k8s_acl | []Struct{} [см. ниже](#описание-структуры-списка-acl) | k8s_acl |
| rg_acl | []Struct{} [см. ниже](#описание-структуры-списка-acl) | rg_acl | | rg_acl | []Struct{} [см. ниже](#описание-структуры-списка-acl) | rg_acl |
### Описание структуры списка acl ### Описание структуры списка acl
| Параметр | Тип | Описание | | Параметр | Тип | Описание |
| --- | --- | --- | | ------------- | ------ | -------------- |
| explicit | bool | explicit | | explicit | bool | explicit |
| guid | string | ID ресурса | | guid | string | ID ресурса |
| right | string | right | | right | string | right |
| status | string | Статус ресурса | | status | string | Статус ресурса |
| type | string | Тип ресурса | | type | string | Тип ресурса |
| user_group_id | string | ID группы | | user_group_id | string | ID группы |
### Описание структуры masters ### Описание структуры masters
| Параметр | Тип | Описание | | Параметр | Тип | Описание |
| --- | --- | --- | | ------------- | --------------------------------------------------------------- | ------------------------------------- |
| cpu | int | Кол-во cpu на компьютах master | | cpu | int | Кол-во cpu на компьютах master |
| detailed_info | []Struct{} [см. ниже](#описание-структуры-списка-detailed_info) | Детальная информация masters | | detailed_info | []Struct{} [см. ниже](#описание-структуры-списка-detailed_info) | Детальная информация masters |
| disk | int | ID диска | | disk | int | ID диска |
| master_id | int | ID группы master | | master_id | int | ID группы master |
| name | string | Имя группы master | | name | string | Имя группы master |
| num | int | Кол-во компьютов в группе master | | num | int | Кол-во компьютов в группе master |
| ram | int | Кол-во Ram на компьютах группы master| | ram | int | Кол-во Ram на компьютах группы master |
### Описание структуры workers ### Описание структуры workers
| Параметр | Тип | Описание | | Параметр | Тип | Описание |
| --- | --- | --- | | ------------- | --------------------------------------------------------------- | -------------------------------------- |
| annotations | []string | Аннотации группы workers | | annotations | []string | Аннотации группы workers |
| cpu | int | Кол-во cpu на компьютах workers | | cpu | int | Кол-во cpu на компьютах workers |
| detailed_info | []Struct{} [см. ниже](#описание-структуры-списка-detailed_info) | Детальная информация masters | | detailed_info | []Struct{} [см. ниже](#описание-структуры-списка-detailed_info) | Детальная информация masters |
| disk | int | ID диска | | disk | int | ID диска |
| guid | string | ID ресурса | | guid | string | ID ресурса |
| id | int | ID группы workers | | id | int | ID группы workers |
| labels | []string | Лейблы группы workers | | labels | []string | Лейблы группы workers |
| name | string | Имя ресурса | | name | string | Имя ресурса |
| num | int | Кол-во компьютов в группе workers | | num | int | Кол-во компьютов в группе workers |
| ram | int | Кол-во Ram на компьютах группы workers | | ram | int | Кол-во Ram на компьютах группы workers |
| taints | []string | огранечители группы workers | | taints | []string | огранечители группы workers |
### Описание структуры списка detailed_info ### Описание структуры списка detailed_info
| Параметр | Тип | Описание | | Параметр | Тип | Описание |
| --- | --- | --- | | -------------------- | ------------------------------------------------------------ | -------------------------------- |
| compute_id | int | ID компьюта в составе группы | | compute_id | int | ID компьюта в составе группы |
| name | string | Имя компьюта в составе группы | | name | string | Имя компьюта в составе группы |
| status | string | Статус компьюта в составе группы | | status | string | Статус компьюта в составе группы |
| tech_status | string | Статус компьюта в составе группы | | tech_status | string | Статус компьюта в составе группы |
| interfaces | []Struct{} [см. ниже](#описание-структуры-списка-interfaces) | Список интерфейсов группы | | interfaces | []Struct{} [см. ниже](#описание-структуры-списка-interfaces) | Список интерфейсов группы |
| natable_vins_ip | string | IP NAT | | natable_vins_ip | string | IP NAT |
| natable_vins_network | string | IP виртуальной сети | | natable_vins_network | string | IP виртуальной сети |
### Описание структуры списка interfaces ### Описание структуры списка interfaces
| Параметр | Тип | Описание | | Параметр | Тип | Описание |
| --- | --- | --- | | ---------- | ------ | ----------------- |
| def_gw | string | Шлюз по умолчанию | | def_gw | string | Шлюз по умолчанию |
| ip_address | string | IP интерфейса | | ip_address | string | IP интерфейса |
## Пример использования ## Пример использования
Пример вызова _resource_ функции **decort_k8s**: Пример вызова _resource_ функции **decort_k8s**:
```terraform ```terraform
resource "decort_k8s" "cluster" { resource "decort_k8s" "cluster" {
#имя кластера #имя кластера
@ -309,7 +331,7 @@ resource "decort_k8s" "cluster" {
#тип - число #тип - число
rg_id = 776 rg_id = 776
#id catalogue item #id catalogue item
#обязательный параметр #обязательный параметр
#тип - число #тип - число
k8sci_id = 9 k8sci_id = 9
@ -327,19 +349,19 @@ resource "decort_k8s" "cluster" {
# список labels для дефолтной worker группы # список labels для дефолтной worker группы
# опциональный параметр # опциональный параметр
# В скором времени параметры labels, annotations, taints будут полностью перенесены в блок workers # В скором времени параметры labels, annotations, taints будут полностью перенесены в блок workers
# тип - массив строк # тип - массив строк
labels = ["key1=val1", "key2=val2"] labels = ["key1=val1", "key2=val2"]
# список annotations для дефолтной worker группы # список annotations для дефолтной worker группы
# опциональный параметр # опциональный параметр
# В скором времени параметры labels, annotations, taints будут полностью перенесены в блок workers # В скором времени параметры labels, annotations, taints будут полностью перенесены в блок workers
# тип - массив строк # тип - массив строк
annotations = ["key1=val1", "key2=val2"] annotations = ["key1=val1", "key2=val2"]
# список taints для дефолтной worker группы # список taints для дефолтной worker группы
# опциональный параметр # опциональный параметр
# В скором времени параметры labels, annotations, taints будут полностью перенесены в блок workers # В скором времени параметры labels, annotations, taints будут полностью перенесены в блок workers
# тип - массив строк # тип - массив строк
taints = ["key1=val1", "key2=val2"] taints = ["key1=val1", "key2=val2"]
#настройка мастер node #настройка мастер node
@ -387,7 +409,7 @@ resource "decort_k8s" "cluster" {
#наименование worker группы #наименование worker группы
#обязательный параметр #обязательный параметр
#тип - строка #тип - строка
name = "workers_wg" name = "workers_wg"
#кол-во node #кол-во node
#обязательный параметр #обязательный параметр
@ -441,7 +463,7 @@ resource "decort_k8s" "cluster" {
#наименование worker группы #наименование worker группы
#обязательный параметр #обязательный параметр
#тип - строка #тип - строка
name = "additional_wg" name = "additional_wg"
#кол-во node #кол-во node
#обязательный параметр #обязательный параметр

@ -1,6 +1,15 @@
Функция доступна в провайдере версии 4.2.0 и выше. Функция доступна в провайдере версии 4.2.0 и выше.
## Изменения в 4.4.0
- добавлено поле _extnet_only_
- добавлено поле _oidc_cert_
- добавлено поле _cloud_init_
- добавлено поле _ha_mode_
- добавлено поле _cluster_config_
_Resource_ функция **decort_k8s_cp** служит для управления control plane кластера k8s. Функция позволяет: _Resource_ функция **decort_k8s_cp** служит для управления control plane кластера k8s. Функция позволяет:
- Создать кластер - Создать кластер
- Удалить кластер - Удалить кластер
- Настроить мастер-узел - Настроить мастер-узел
@ -10,35 +19,35 @@ _Resource_ функция **decort_k8s_cp** служит для управлен
**!** При удалении ресурса `decort_k8s_cp` удалится сам кластер и все зависимые ресурсы (worker-группы) <br/> **!** При удалении ресурса `decort_k8s_cp` удалится сам кластер и все зависимые ресурсы (worker-группы) <br/>
**!** При использовании `decort_k8s_cp` не рекомендуется параллельное использование `decort_k8s` для управления одним и тем же кластером во избежание проблем с идемпотентностью **!** При использовании `decort_k8s_cp` не рекомендуется параллельное использование `decort_k8s` для управления одним и тем же кластером во избежание проблем с идемпотентностью
**Данный способ управления кластерами стал предпочтительным с версии провайдера 4.2.0 - для упрощения процесса миграции обратитесь к [**статье.**](https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki/05.07-Миграция-k8s-кластеров-на-версию-4.2.0) **Данный способ управления кластерами стал предпочтительным с версии провайдера 4.2.0 - для упрощения процесса миграции обратитесь к [**статье.\*\*](https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki/05.07-Миграция-k8s-кластеров-на-версию-4.2.0)
### Работа с cluster_config ## Работа с cluster_config
Для использования cluster_config конфигурации, следует: Для использования cluster_config конфигурации, следует:
1. Создать файл с расширением `.json` в рабочей директории. 1. Создать файл с расширением `.json` в рабочей директории.
2. Описать в созданном файле конфигурацию cluster_config в формате JSON: 2. Описать в созданном файле конфигурацию cluster_config в формате JSON:
#### cluster_config.json ### cluster_config.json
```json ```json
{ {
"apiServer": { "apiServer": {
"extraArgs": { "extraArgs": {
"oidc-issuer-url": "https://dex.decs.local/", "oidc-issuer-url": "https://dex.decs.local/",
"oidc-client-id": "dex", "oidc-client-id": "dex",
"oidc-username-claim": "email", "oidc-username-claim": "email",
"oidc-groups-claim": "groups", "oidc-groups-claim": "groups",
"oidc-ca-file": "/etc/kubernetes/ssl/kc-ca.pem" "oidc-ca-file": "/etc/kubernetes/ssl/kc-ca.pem"
}
} }
}
} }
``` ```
3. Указать путь до файла `cluster_config.json` в качестве значения параметра `cluster_config` в ресурсе `decort_k8s_cp`: 3. Указать путь до файла `cluster_config.json` в качестве значения параметра `cluster_config` в ресурсе `decort_k8s`:
```terraform ```terraform
resource "decort_k8s_cp" "cluster1" { resource "decort_k8s" "cluster1" {
# ... # ...
cluster_config = file("cluster_config.json") cluster_config = file("cluster_config.json")
@ -49,14 +58,16 @@ resource "decort_k8s_cp" "cluster1" {
4. Выполнить `terraform apply` 4. Выполнить `terraform apply`
### Работа с oidc__cert ## Работа с oidc\_\_cert
Для работы с oidc_cert следует: Для работы с oidc_cert следует:
1. Создать файл с ssl-сертификатом в формате x509 pem c названием ca.crt в рабочей директории 1. Создать файл с ssl-сертификатом в формате x509 pem c названием ca.crt в рабочей директории
#### ca.crt ### ca.crt
Пример содержания файла ca.crt Пример содержания файла ca.crt
``` ```
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIDzTCCArWgAwIBAgIUUW9bFlExT8f/gVX4OrYXegInXi0wDQYJKoZIhvcNAQEL MIIDzTCCArWgAwIBAgIUUW9bFlExT8f/gVX4OrYXegInXi0wDQYJKoZIhvcNAQEL
@ -83,10 +94,10 @@ KxLl/lm/Y0zhV/VNd7OXsV0LAsyrRiNpuyCaniCOTR1ZRkD4UfWkc/bbNgbLjAfb
-----END CERTIFICATE----- -----END CERTIFICATE-----
``` ```
2. Указать путь до файла `ca.crt` в качестве значениея параметра `oidc_cert` в ресурсе `decort_k8s_cp` 2. Указать путь до файла `ca.crt` в качестве значениея параметра `oidc_cert` в ресурсе `decort_k8s`
```terraform ```terraform
resource "decort_k8s_cp" "cluster1" { resource "decort_k8s" "cluster1" {
# ... # ...
oidc_cert = file("ca.crt") oidc_cert = file("ca.crt")
@ -97,9 +108,7 @@ resource "decort_k8s_cp" "cluster1" {
3. Выполнить `terraform apply` 3. Выполнить `terraform apply`
## Работа с cloud_init
### Работа с cloud_init
Cloud Init позволяет запустить ВМ с предустановленными настройками пользователя, группами и доступами. Подробнее про настройку cloud_init можно прочесть по [ссылке](https://cloudinit.readthedocs.io/en/latest/reference/examples.html). Cloud Init позволяет запустить ВМ с предустановленными настройками пользователя, группами и доступами. Подробнее про настройку cloud_init можно прочесть по [ссылке](https://cloudinit.readthedocs.io/en/latest/reference/examples.html).
@ -125,10 +134,10 @@ users:
``` ```
3. Указать путь до файла `initconfig.tftpl` в качестве значения параметра `cloud_init` в ресурсе `decort_k8s_cp`: 3. Указать путь до файла `initconfig.tftpl` в качестве значения параметра `cloud_init` в ресурсе `decort_k8s`:
```terraform ```terraform
resource "decort_k8s_cp" "cluster1" { resource "decort_k8s" "cluster1" {
# ... # ...
cloud_init = file("initconfig.tftpl") cloud_init = file("initconfig.tftpl")
@ -139,105 +148,111 @@ resource "decort_k8s_cp" "cluster1" {
4. Выполнить `terraform apply` 4. Выполнить `terraform apply`
**Конфигурация cloud_init применяется только при создании кластера, во всех остальных случаях - игнорируется** ## Работа в параллельном режиме
Рекомендуется создавать одновременно не более одного экземпляра ресурса.
В случае необходимости создания нескольких ресурсов одновременно, необходимо запускать `terraform apply/plan` в режиме `-parallelism=1`.
## Аргументы ## Аргументы
_Resource_ функция **decort_k8s_cp** принимает следующие аргументы: _Resource_ функция **decort_k8s_cp** принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание | | Аргумент | Тип | Обязательный | Описание |
| --- | --- | :---: | --- | | -------------- | ------ | :----------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| name | string | :heavy_check_mark: | Наименование кластера | | name | string | :heavy_check_mark: | Наименование кластера |
| k8sci_id | int | :heavy_check_mark: | ID k8s CI | | k8sci_id | int | :heavy_check_mark: | ID k8s CI |
| network_plugin | string | :heavy_check_mark: | Плагин сети ("flannel", "weavenet" или "calico") | | network_plugin | string | :heavy_check_mark: | Плагин сети ("flannel", "weavenet" или "calico") |
| rg_id | int | :heavy_check_mark: | ID ресурсной группы | | rg_id | int | :heavy_check_mark: | ID ресурсной группы |
| num | int | :heavy_check_mark: | Кол-во ВМ в мастер-узле (1 или 3) | | num | int | :heavy_check_mark: | Кол-во ВМ в мастер-узле (1 или 3) |
| cpu | int | :x: | Кол-во ядер для мастер-узла | | cpu | int | :x: | Кол-во ядер для мастер-узла |
| ram | int | :x: | Кол-во RAM (в мб) для мастер-узла | | ram | int | :x: | Кол-во RAM (в мб) для мастер-узла |
| disk | int | :x: | Размер диска мастер-узла | | disk | int | :x: | Размер диска мастер-узла |
| sep_id | int | :x: | Storage Endpoint ID мастер-узла | | sep_id | int | :x: | Storage Endpoint ID мастер-узла |
| sep_pool | string | :x: | SEP пул мастер-узла | | sep_pool | string | :x: | SEP пул мастер-узла |
| with_lb | bool | :x: | Создать кластер с/без балансировщика нагрузки | | with_lb | bool | :x: | Создать кластер с/без балансировщика нагрузки |
| extnet_id | int | :x: | ID внешний сети для подключения worker'ов | | extnet_id | int | :x: | ID внешний сети для подключения worker'ов |
| desc | string | :x: | Описание кластера | | desc | string | :x: | Описание кластера |
| cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. | | cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. |
| cluster_config | string | :x: | используется для определения глобальных настроек и конфигураций для всего кластера. Она включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера. вставьте допустимую строку JSON со всеми уровнями вложенности. | | cluster_config | string | :x: | используется для определения глобальных настроек и конфигураций для всего кластера. Она включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера. вставьте допустимую строку JSON со всеми уровнями вложенности. |
| oidc_cert | string | :x: | ssl-сертификат в формате x509 pem | | oidc_cert | string | :x: | ssl-сертификат в формате x509 pem |
| ha_mode | bool | :x: | Использовать высокодостпуню схему для балансировщика нагрузки | | extnet_only | bool | :x: | Использовать только extnet для работы кластера |
| extnet_only | bool | :x: | Использовать только extnet | ha_mode | bool | :x: | Режим высокой доступностью балансировщика нагрузки |
| start | bool | :x: | Старт/Стоп кластера | | start | bool | :x: | Старт/Стоп кластера |
## Возвращаемые значения ## Возвращаемые значения
В случае успешного выполнения _resource_ функция **decort_k8s_cp** возвращает в указанную при вызове переменную следующие значения: В случае успешного выполнения _resource_ функция **decort_k8s_cp** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание | | Параметр | Тип | Описание |
| --- | --- | --- | | -------------- | ------------------------------------------------------------ | ----------------------------------- |
| acl | Struct{} [см. ниже](#описание-структуры-списка-acl) | acl | | acl | Struct{} [см. ниже](#описание-структуры-списка-acl) | acl |
| account_id | int | ID аккаунта | | account_id | int | ID аккаунта |
| account_name | string | Имя аккаунта | | account_name | string | Имя аккаунта |
| bservice_id | int | ID bservice | | bservice_id | int | ID bservice |
| k8sci_id | int | ID образа кластера | | k8sci_id | int | ID образа кластера |
| k8s_id | int | ID кластера | | k8s_id | int | ID кластера |
| detailed_info | Struct{} [см.ниже](#описание-структуры-списка-detailed_info) | Информация о ВМ внутри мастер-узла | | detailed_info | Struct{} [см.ниже](#описание-структуры-списка-detailed_info) | Информация о ВМ внутри мастер-узла |
| master_id | int | ID мастер-узла | | master_id | int | ID мастер-узла |
| master_name | string | Наименование мастер-узла | | master_name | string | Наименование мастер-узла |
| num | int | Кол-во ВМ в мастер-узле (1 или 3) | | num | int | Кол-во ВМ в мастер-узле (1 или 3) |
| cpu | int | Кол-во ядер для мастер-узла | | cpu | int | Кол-во ядер для мастер-узла |
| ram | int | Кол-во RAM (в мб) для мастер-узла | | ram | int | Кол-во RAM (в мб) для мастер-узла |
| disk | int | Размер диска мастер-узла | | disk | int | Размер диска мастер-узла |
| sep_id | int | Storage Endpoint ID мастер-узла | | sep_id | int | Storage Endpoint ID мастер-узла |
| sep_pool | string | SEP пул мастер-узла | | sep_pool | string | SEP пул мастер-узла |
| created_by | string | Кем был создан ресурс | | created_by | string | Кем был создан ресурс |
| created_time | int | Время создания ресурса | | created_time | int | Время создания ресурса |
| deleted_by | string | Кем был удален ресурс | | deleted_by | string | Кем был удален ресурс |
| deleted_time | int | Время удаления ресурса | | deleted_time | int | Время удаления ресурса |
| extnet_id | int | ID внешней сети | | extnet_id | int | ID внешней сети |
| k8s_ci_name | string | Имя образа кластера | | k8s_ci_name | string | Имя образа кластера |
| lb_id | int | ID балансировщика нагрзуки | | lb_id | int | ID балансировщика нагрзуки |
| lb_ip | string | IP балансировщика нагрзуки | | lb_ip | string | IP балансировщика нагрзуки |
| name | string | Имя ресурса | | name | string | Имя ресурса |
| network_plugin | string | Сетевой плагин | | network_plugin | string | Сетевой плагин |
| rg_id | int | ID ресурсной группы | | rg_id | int | ID ресурсной группы |
| rg_name | string | Имя ресурсной группы | | rg_name | string | Имя ресурсной группы |
| status | string | Статус ресурса | | status | string | Статус ресурса |
| tech_status | string | Технический статус ресурса | | tech_status | string | Технический статус ресурса |
| updated_by | string | Кем был обновлен ресурс | | updated_by | string | Кем был обновлен ресурс |
| updated_time | int | Время последнего обновления ресурса | | updated_time | int | Время последнего обновления ресурса |
| kubeconfig | string | Конфиг | | kubeconfig | string | Конфиг |
| vins_id | int | ID виртуальной сети | | vins_id | int | ID виртуальной сети |
### Описание структуры списка acl ### Описание структуры списка acl
| Параметр | Тип | Описание | | Параметр | Тип | Описание |
| --- | --- | --- | | ------------- | ------ | -------------- |
| explicit | bool | explicit | | explicit | bool | explicit |
| guid | string | ID ресурса | | guid | string | ID ресурса |
| right | string | right | | right | string | right |
| status | string | Статус ресурса | | status | string | Статус ресурса |
| type | string | Тип ресурса | | type | string | Тип ресурса |
| user_group_id | string | ID группы | | user_group_id | string | ID группы |
### Описание структуры списка detailed_info ### Описание структуры списка detailed_info
| Параметр | Тип | Описание | | Параметр | Тип | Описание |
| --- | --- | --- | | -------------------- | ------------------------------------------------------------ | -------------------------------- |
| compute_id | int | ID компьюта в составе группы | | compute_id | int | ID компьюта в составе группы |
| name | string | Имя компьюта в составе группы | | name | string | Имя компьюта в составе группы |
| status | string | Статус компьюта в составе группы | | status | string | Статус компьюта в составе группы |
| tech_status | string | Статус компьюта в составе группы | | tech_status | string | Статус компьюта в составе группы |
| interfaces | []Struct{} [см. ниже](#описание-структуры-списка-interfaces) | Список интерфейсов группы | | interfaces | []Struct{} [см. ниже](#описание-структуры-списка-interfaces) | Список интерфейсов группы |
| natable_vins_ip | string | IP NAT | | natable_vins_ip | string | IP NAT |
| natable_vins_network | string | IP виртуальной сети | | natable_vins_network | string | IP виртуальной сети |
### Описание структуры списка interfaces ### Описание структуры списка interfaces
| Параметр | Тип | Описание | | Параметр | Тип | Описание |
| --- | --- | --- | | ---------- | ------ | ----------------- |
| def_gw | string | Шлюз по умолчанию | | def_gw | string | Шлюз по умолчанию |
| ip_address | string | IP интерфейса | | ip_address | string | IP интерфейса |
## Пример использования ## Пример использования
Пример вызова _resource_ функции **decort_k8s_cp**: Пример вызова _resource_ функции **decort_k8s_cp**:
```terraform ```terraform
resource "decort_k8s_cp" "cp" { resource "decort_k8s_cp" "cp" {
# Название кластера # Название кластера
@ -279,7 +294,7 @@ resource "decort_k8s_cp" "cp" {
# Опциональный параметр # Опциональный параметр
# int # int
disk = 10 disk = 10
# Описание кластера # Описание кластера
# Опциональный параметр # Опциональный параметр
# string # string
@ -312,4 +327,4 @@ resource "decort_k8s_cp" "cp" {
} }
``` ```
После успешного завершения такого вызова **decort_k8s_cp** в переменной `decort_k8s_cp.cp` будут сохранены возвращаемые значения. После успешного завершения такого вызова **decort_k8s_cp** в переменной `decort_k8s_cp.cp` будут сохранены возвращаемые значения.

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save