4.4.0
@@ -2,11 +2,21 @@
|
||||
|
||||
_Resource_ функция **decort_k8s** служит для управления кластером.
|
||||
|
||||
## Изменения в 4.4.0
|
||||
|
||||
- добавлено поле _extnet_only_
|
||||
- добавлено поле _oidc_cert_
|
||||
- добавлено поле _cloud_init_
|
||||
- добавлено поле _ha_mode_
|
||||
- добавлено поле _cluster_config_
|
||||
|
||||
## Изменения в 4.0.2
|
||||
|
||||
- Добавлена возможность создавать/удалять воркер-группы напрямую из ресурса k8s
|
||||
- Исправлены возможные ошибки состояния при модификации воркер-групп
|
||||
|
||||
## Изменения в 3.4.0
|
||||
|
||||
- В аргументы добавлено опциональное поле labels.
|
||||
- В аргументы добавлено опциональное поле taints.
|
||||
- В аргументы добавлено опциональное поле annotations.
|
||||
@@ -16,9 +26,10 @@ _Resource_ функция **decort_k8s** служит для управлени
|
||||
- В аргументы добавлено опциональное поле sep_pool в блоке workers.
|
||||
|
||||
## Изменения в 3.3.0
|
||||
|
||||
- Добавлен id виртуальной сети, которая используется с кластером k8s.
|
||||
- Добавлены описания IP адресов для группы воркеров.
|
||||
- Добавлены описания IP адресов для группы мастеров.
|
||||
- Добавлены описания IP адресов для группы воркеров.
|
||||
- Добавлены описания IP адресов для группы мастеров.
|
||||
- Добавлены описания IP адресов виртуальной сети, которая присоеденена к группе воркеров.
|
||||
|
||||
### Работа с cluster_config
|
||||
@@ -32,15 +43,15 @@ _Resource_ функция **decort_k8s** служит для управлени
|
||||
|
||||
```json
|
||||
{
|
||||
"apiServer": {
|
||||
"extraArgs": {
|
||||
"oidc-issuer-url": "https://dex.decs.local/",
|
||||
"oidc-client-id": "dex",
|
||||
"oidc-username-claim": "email",
|
||||
"oidc-groups-claim": "groups",
|
||||
"oidc-ca-file": "/etc/kubernetes/ssl/kc-ca.pem"
|
||||
}
|
||||
"apiServer": {
|
||||
"extraArgs": {
|
||||
"oidc-issuer-url": "https://dex.decs.local/",
|
||||
"oidc-client-id": "dex",
|
||||
"oidc-username-claim": "email",
|
||||
"oidc-groups-claim": "groups",
|
||||
"oidc-ca-file": "/etc/kubernetes/ssl/kc-ca.pem"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -58,14 +69,16 @@ resource "decort_k8s" "cluster1" {
|
||||
|
||||
4. Выполнить `terraform apply`
|
||||
|
||||
### Работа с oidc__cert
|
||||
### Работа с oidc\_\_cert
|
||||
|
||||
Для работы с oidc_cert следует:
|
||||
|
||||
1. Создать файл с ssl-сертификатом в формате x509 pem c названием ca.crt в рабочей директории
|
||||
|
||||
#### ca.crt
|
||||
|
||||
Пример содержания файла ca.crt
|
||||
|
||||
```
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDzTCCArWgAwIBAgIUUW9bFlExT8f/gVX4OrYXegInXi0wDQYJKoZIhvcNAQEL
|
||||
@@ -106,8 +119,6 @@ resource "decort_k8s" "cluster1" {
|
||||
|
||||
3. Выполнить `terraform apply`
|
||||
|
||||
|
||||
|
||||
### Работа с cloud_init
|
||||
|
||||
Cloud Init позволяет запустить ВМ с предустановленными настройками пользователя, группами и доступами. Подробнее про настройку cloud_init можно прочесть по [ссылке](https://cloudinit.readthedocs.io/en/latest/reference/examples.html).
|
||||
@@ -150,152 +161,163 @@ resource "decort_k8s" "cluster1" {
|
||||
|
||||
**Конфигурация cloud_init применяется только при создании кластера, во всех остальных случаях - игнорируется**
|
||||
|
||||
## Работа в параллельном режиме
|
||||
|
||||
Рекомендуется создавать одновременно не более одного экземпляра ресурса.
|
||||
В случае необходимости создания нескольких ресурсов одновременно, необходимо запускать `terraform apply/plan` в режиме `-parallelism=1`.
|
||||
|
||||
## Аргументы
|
||||
|
||||
_Resource_ функция **decort_k8s** для создания кластера принимает следующие аргументы:
|
||||
|
||||
| Аргумент | Тип | Обязательный | Описание |
|
||||
| --- | --- | --- | --- |
|
||||
| name | string | :heavy_check_mark: | Наименование кластера, <br/>при изменении - изменяет наименование кластера |
|
||||
| rg_id | int | :heavy_check_mark: | ID ресурсной группы |
|
||||
| k8sci_id | int | :heavy_check_mark: | ID catalogue item |
|
||||
| wg_name | string | :heavy_check_mark: | Имя для первой worker group, <br/> созданной в кластере |
|
||||
| network_plugin | string | :heavy_check_mark: | Плагин сети для кластера. Допустимые значения: flannel, calico, weavenet |
|
||||
| labels | []string | :x: | Список меток для дефолтной worker-группы k8s |
|
||||
| taints | []string | :x: | Список taints для дефолтной worker-группы k8s |
|
||||
| annotations | []string | :x: | Список аннотаций дефолтной worker-группы k8s |
|
||||
| masters | Struct{} [см. ниже](#описание-блока-masters) | :x: | Настройка мастер-группы |
|
||||
| workers | Struct{} [см. ниже](#описание-блока-workers) | :x: | Настройка worker-групп |
|
||||
| extnet_id | int | :x: | ID внешней сети для соединения workers.<br/>Если не задано,<br/>то сеть будет выбрана платформой. |
|
||||
| cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. |
|
||||
| cluster_config | string | :x: | используется для определения глобальных настроек и конфигураций для всего кластера. Она включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера. вставьте допустимую строку JSON со всеми уровнями вложенности. |
|
||||
| oidc_cert | string | :x: | ssl-сертификат в формате x509 pem |
|
||||
| ha_mode | bool | :x: | Использовать высокодостпуню схему для балансировщика нагрузки |
|
||||
| extnet_only | bool | :x: | Использовать только extnet
|
||||
| start | bool | :x: | Старт/Стоп кластера |
|
||||
| Аргумент | Тип | Обязательный | Описание |
|
||||
| -------------- | -------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| name | string | :heavy_check_mark: | Наименование кластера, <br/>при изменении - изменяет наименование кластера |
|
||||
| rg_id | int | :heavy_check_mark: | ID ресурсной группы |
|
||||
| k8sci_id | int | :heavy_check_mark: | ID catalogue item |
|
||||
| wg_name | string | :heavy_check_mark: | Имя для первой worker group, <br/> созданной в кластере |
|
||||
| network_plugin | string | :heavy_check_mark: | Плагин сети для кластера. Допустимые значения: flannel, calico, weavenet |
|
||||
| labels | []string | :x: | Список меток для дефолтной worker-группы k8s |
|
||||
| taints | []string | :x: | Список taints для дефолтной worker-группы k8s |
|
||||
| annotations | []string | :x: | Список аннотаций дефолтной worker-группы k8s |
|
||||
| masters | Struct{} [см. ниже](#описание-блока-masters) | :x: | Настройка мастер-группы |
|
||||
| workers | Struct{} [см. ниже](#описание-блока-workers) | :x: | Настройка worker-групп |
|
||||
| extnet_id | int | :x: | ID внешней сети для соединения workers.<br/>Если не задано,<br/>то сеть будет выбрана платформой. |
|
||||
| cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. |
|
||||
| cluster_config | string | :x: | используется для определения глобальных настроек и конфигураций для всего кластера. Она включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера. вставьте допустимую строку JSON со всеми уровнями вложенности. |
|
||||
| oidc_cert | string | :x: | ssl-сертификат в формате x509 pem |
|
||||
| extnet_only | bool | :x: | Использовать только extnet для работы кластера |
|
||||
| ha_mode | bool | :x: | Режим высокой доступностью балансировщика нагрузки |
|
||||
| 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'а |
|
||||
|
||||
| Аргумент | Тип | Обязательный | Описание |
|
||||
| -------- | ------ | ------------------ | ------------------------ |
|
||||
| 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
|
||||
| Аргумент | Тип | Обязательный | Описание |
|
||||
| --- | --- | --- | --- |
|
||||
| name | string | :heavy_check_mark: | Наименование воркер-группы |
|
||||
| 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'а |
|
||||
| labels | []string | :x: | Список labels |
|
||||
| annotations | []string | :x: | Список annotations |
|
||||
| taints | []string | :x: | Список taints |
|
||||
|
||||
| Аргумент | Тип | Обязательный | Описание |
|
||||
| ----------- | -------- | ------------------ | -------------------------- |
|
||||
| name | string | :heavy_check_mark: | Наименование воркер-группы |
|
||||
| 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'а |
|
||||
| labels | []string | :x: | Список labels |
|
||||
| annotations | []string | :x: | Список annotations |
|
||||
| taints | []string | :x: | Список taints |
|
||||
|
||||
## Возвращаемые значения
|
||||
|
||||
В случае успешного выполнения _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 | 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 |
|
||||
| Параметр | Тип | Описание |
|
||||
| ----------- | ----------------------------------------------------- | ----------- |
|
||||
| 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 |
|
||||
| Параметр | Тип | Описание |
|
||||
| ------------- | ------ | -------------- |
|
||||
| explicit | bool | explicit |
|
||||
| guid | string | ID ресурса |
|
||||
| right | string | right |
|
||||
| status | string | Статус ресурса |
|
||||
| type | string | Тип ресурса |
|
||||
| user_group_id | string | ID группы |
|
||||
| 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|
|
||||
| Параметр | Тип | Описание |
|
||||
| ------------- | --------------------------------------------------------------- | ------------------------------------- |
|
||||
| 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 |
|
||||
| Параметр | Тип | Описание |
|
||||
| ------------- | --------------------------------------------------------------- | -------------------------------------- |
|
||||
| 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 виртуальной сети |
|
||||
| Параметр | Тип | Описание |
|
||||
| -------------------- | ------------------------------------------------------------ | -------------------------------- |
|
||||
| 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 интерфейса |
|
||||
| Параметр | Тип | Описание |
|
||||
| ---------- | ------ | ----------------- |
|
||||
| def_gw | string | Шлюз по умолчанию |
|
||||
| ip_address | string | IP интерфейса |
|
||||
|
||||
## Пример использования
|
||||
|
||||
Пример вызова _resource_ функции **decort_k8s**:
|
||||
|
||||
```terraform
|
||||
resource "decort_k8s" "cluster" {
|
||||
#имя кластера
|
||||
@@ -309,7 +331,7 @@ resource "decort_k8s" "cluster" {
|
||||
#тип - число
|
||||
rg_id = 776
|
||||
|
||||
#id catalogue item
|
||||
#id catalogue item
|
||||
#обязательный параметр
|
||||
#тип - число
|
||||
k8sci_id = 9
|
||||
@@ -327,19 +349,19 @@ resource "decort_k8s" "cluster" {
|
||||
# список labels для дефолтной worker группы
|
||||
# опциональный параметр
|
||||
# В скором времени параметры labels, annotations, taints будут полностью перенесены в блок workers
|
||||
# тип - массив строк
|
||||
# тип - массив строк
|
||||
labels = ["key1=val1", "key2=val2"]
|
||||
|
||||
# список annotations для дефолтной worker группы
|
||||
# опциональный параметр
|
||||
# В скором времени параметры labels, annotations, taints будут полностью перенесены в блок workers
|
||||
# тип - массив строк
|
||||
# тип - массив строк
|
||||
annotations = ["key1=val1", "key2=val2"]
|
||||
|
||||
# список taints для дефолтной worker группы
|
||||
# опциональный параметр
|
||||
# В скором времени параметры labels, annotations, taints будут полностью перенесены в блок workers
|
||||
# тип - массив строк
|
||||
# тип - массив строк
|
||||
taints = ["key1=val1", "key2=val2"]
|
||||
|
||||
#настройка мастер node
|
||||
@@ -387,7 +409,7 @@ resource "decort_k8s" "cluster" {
|
||||
#наименование worker группы
|
||||
#обязательный параметр
|
||||
#тип - строка
|
||||
name = "workers_wg"
|
||||
name = "workers_wg"
|
||||
|
||||
#кол-во node
|
||||
#обязательный параметр
|
||||
@@ -441,7 +463,7 @@ resource "decort_k8s" "cluster" {
|
||||
#наименование worker группы
|
||||
#обязательный параметр
|
||||
#тип - строка
|
||||
name = "additional_wg"
|
||||
name = "additional_wg"
|
||||
|
||||
#кол-во node
|
||||
#обязательный параметр
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
Функция доступна в провайдере версии 4.2.0 и выше.
|
||||
|
||||
## Изменения в 4.4.0
|
||||
|
||||
- добавлено поле _extnet_only_
|
||||
- добавлено поле _oidc_cert_
|
||||
- добавлено поле _cloud_init_
|
||||
- добавлено поле _ha_mode_
|
||||
- добавлено поле _cluster_config_
|
||||
|
||||
_Resource_ функция **decort_k8s_cp** служит для управления control plane кластера k8s. Функция позволяет:
|
||||
|
||||
- Создать кластер
|
||||
- Удалить кластер
|
||||
- Настроить мастер-узел
|
||||
@@ -10,35 +19,35 @@ _Resource_ функция **decort_k8s_cp** служит для управлен
|
||||
**!** При удалении ресурса `decort_k8s_cp` удалится сам кластер и все зависимые ресурсы (worker-группы) <br/>
|
||||
**!** При использовании `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 конфигурации, следует:
|
||||
|
||||
1. Создать файл с расширением `.json` в рабочей директории.
|
||||
2. Описать в созданном файле конфигурацию cluster_config в формате JSON:
|
||||
|
||||
#### cluster_config.json
|
||||
### cluster_config.json
|
||||
|
||||
```json
|
||||
{
|
||||
"apiServer": {
|
||||
"extraArgs": {
|
||||
"oidc-issuer-url": "https://dex.decs.local/",
|
||||
"oidc-client-id": "dex",
|
||||
"oidc-username-claim": "email",
|
||||
"oidc-groups-claim": "groups",
|
||||
"oidc-ca-file": "/etc/kubernetes/ssl/kc-ca.pem"
|
||||
}
|
||||
"apiServer": {
|
||||
"extraArgs": {
|
||||
"oidc-issuer-url": "https://dex.decs.local/",
|
||||
"oidc-client-id": "dex",
|
||||
"oidc-username-claim": "email",
|
||||
"oidc-groups-claim": "groups",
|
||||
"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
|
||||
resource "decort_k8s_cp" "cluster1" {
|
||||
resource "decort_k8s" "cluster1" {
|
||||
# ...
|
||||
|
||||
cluster_config = file("cluster_config.json")
|
||||
@@ -49,14 +58,16 @@ resource "decort_k8s_cp" "cluster1" {
|
||||
|
||||
4. Выполнить `terraform apply`
|
||||
|
||||
### Работа с oidc__cert
|
||||
## Работа с oidc\_\_cert
|
||||
|
||||
Для работы с oidc_cert следует:
|
||||
|
||||
1. Создать файл с ssl-сертификатом в формате x509 pem c названием ca.crt в рабочей директории
|
||||
|
||||
#### ca.crt
|
||||
### ca.crt
|
||||
|
||||
Пример содержания файла ca.crt
|
||||
|
||||
```
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDzTCCArWgAwIBAgIUUW9bFlExT8f/gVX4OrYXegInXi0wDQYJKoZIhvcNAQEL
|
||||
@@ -83,10 +94,10 @@ KxLl/lm/Y0zhV/VNd7OXsV0LAsyrRiNpuyCaniCOTR1ZRkD4UfWkc/bbNgbLjAfb
|
||||
-----END CERTIFICATE-----
|
||||
```
|
||||
|
||||
2. Указать путь до файла `ca.crt` в качестве значениея параметра `oidc_cert` в ресурсе `decort_k8s_cp`
|
||||
2. Указать путь до файла `ca.crt` в качестве значениея параметра `oidc_cert` в ресурсе `decort_k8s`
|
||||
|
||||
```terraform
|
||||
resource "decort_k8s_cp" "cluster1" {
|
||||
resource "decort_k8s" "cluster1" {
|
||||
# ...
|
||||
|
||||
oidc_cert = file("ca.crt")
|
||||
@@ -97,9 +108,7 @@ resource "decort_k8s_cp" "cluster1" {
|
||||
|
||||
3. Выполнить `terraform apply`
|
||||
|
||||
|
||||
|
||||
### Работа с cloud_init
|
||||
## Работа с cloud_init
|
||||
|
||||
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
|
||||
resource "decort_k8s_cp" "cluster1" {
|
||||
resource "decort_k8s" "cluster1" {
|
||||
# ...
|
||||
|
||||
cloud_init = file("initconfig.tftpl")
|
||||
@@ -139,105 +148,111 @@ resource "decort_k8s_cp" "cluster1" {
|
||||
|
||||
4. Выполнить `terraform apply`
|
||||
|
||||
**Конфигурация cloud_init применяется только при создании кластера, во всех остальных случаях - игнорируется**
|
||||
## Работа в параллельном режиме
|
||||
|
||||
Рекомендуется создавать одновременно не более одного экземпляра ресурса.
|
||||
В случае необходимости создания нескольких ресурсов одновременно, необходимо запускать `terraform apply/plan` в режиме `-parallelism=1`.
|
||||
|
||||
## Аргументы
|
||||
|
||||
_Resource_ функция **decort_k8s_cp** принимает следующие аргументы:
|
||||
|
||||
| Аргумент | Тип | Обязательный | Описание |
|
||||
| --- | --- | :---: | --- |
|
||||
| name | string | :heavy_check_mark: | Наименование кластера |
|
||||
| k8sci_id | int | :heavy_check_mark: | ID k8s CI |
|
||||
| network_plugin | string | :heavy_check_mark: | Плагин сети ("flannel", "weavenet" или "calico") |
|
||||
| rg_id | int | :heavy_check_mark: | ID ресурсной группы |
|
||||
| num | int | :heavy_check_mark: | Кол-во ВМ в мастер-узле (1 или 3) |
|
||||
| cpu | int | :x: | Кол-во ядер для мастер-узла |
|
||||
| ram | int | :x: | Кол-во RAM (в мб) для мастер-узла |
|
||||
| disk | int | :x: | Размер диска мастер-узла |
|
||||
| sep_id | int | :x: | Storage Endpoint ID мастер-узла |
|
||||
| sep_pool | string | :x: | SEP пул мастер-узла |
|
||||
| with_lb | bool | :x: | Создать кластер с/без балансировщика нагрузки |
|
||||
| extnet_id | int | :x: | ID внешний сети для подключения worker'ов |
|
||||
| desc | string | :x: | Описание кластера |
|
||||
| cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. |
|
||||
| cluster_config | string | :x: | используется для определения глобальных настроек и конфигураций для всего кластера. Она включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера. вставьте допустимую строку JSON со всеми уровнями вложенности. |
|
||||
| oidc_cert | string | :x: | ssl-сертификат в формате x509 pem |
|
||||
| ha_mode | bool | :x: | Использовать высокодостпуню схему для балансировщика нагрузки |
|
||||
| extnet_only | bool | :x: | Использовать только extnet
|
||||
| start | bool | :x: | Старт/Стоп кластера |
|
||||
| Аргумент | Тип | Обязательный | Описание |
|
||||
| -------------- | ------ | :----------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| name | string | :heavy_check_mark: | Наименование кластера |
|
||||
| k8sci_id | int | :heavy_check_mark: | ID k8s CI |
|
||||
| network_plugin | string | :heavy_check_mark: | Плагин сети ("flannel", "weavenet" или "calico") |
|
||||
| rg_id | int | :heavy_check_mark: | ID ресурсной группы |
|
||||
| num | int | :heavy_check_mark: | Кол-во ВМ в мастер-узле (1 или 3) |
|
||||
| cpu | int | :x: | Кол-во ядер для мастер-узла |
|
||||
| ram | int | :x: | Кол-во RAM (в мб) для мастер-узла |
|
||||
| disk | int | :x: | Размер диска мастер-узла |
|
||||
| sep_id | int | :x: | Storage Endpoint ID мастер-узла |
|
||||
| sep_pool | string | :x: | SEP пул мастер-узла |
|
||||
| with_lb | bool | :x: | Создать кластер с/без балансировщика нагрузки |
|
||||
| extnet_id | int | :x: | ID внешний сети для подключения worker'ов |
|
||||
| desc | string | :x: | Описание кластера |
|
||||
| cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. |
|
||||
| cluster_config | string | :x: | используется для определения глобальных настроек и конфигураций для всего кластера. Она включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера. вставьте допустимую строку JSON со всеми уровнями вложенности. |
|
||||
| oidc_cert | string | :x: | ssl-сертификат в формате x509 pem |
|
||||
| extnet_only | bool | :x: | Использовать только extnet для работы кластера |
|
||||
| ha_mode | bool | :x: | Режим высокой доступностью балансировщика нагрузки |
|
||||
| start | bool | :x: | Старт/Стоп кластера |
|
||||
|
||||
## Возвращаемые значения
|
||||
|
||||
В случае успешного выполнения _resource_ функция **decort_k8s_cp** возвращает в указанную при вызове переменную следующие значения:
|
||||
|
||||
| Параметр | Тип | Описание |
|
||||
| --- | --- | --- |
|
||||
| acl | Struct{} [см. ниже](#описание-структуры-списка-acl) | acl |
|
||||
| account_id | int | ID аккаунта |
|
||||
| account_name | string | Имя аккаунта |
|
||||
| bservice_id | int | ID bservice |
|
||||
| k8sci_id | int | ID образа кластера |
|
||||
| k8s_id | int | ID кластера |
|
||||
| detailed_info | Struct{} [см.ниже](#описание-структуры-списка-detailed_info) | Информация о ВМ внутри мастер-узла |
|
||||
| master_id | int | ID мастер-узла |
|
||||
| master_name | string | Наименование мастер-узла |
|
||||
| num | int | Кол-во ВМ в мастер-узле (1 или 3) |
|
||||
| cpu | int | Кол-во ядер для мастер-узла |
|
||||
| ram | int | Кол-во RAM (в мб) для мастер-узла |
|
||||
| disk | int | Размер диска мастер-узла |
|
||||
| sep_id | int | Storage Endpoint ID мастер-узла |
|
||||
| sep_pool | string | SEP пул мастер-узла |
|
||||
| created_by | string | Кем был создан ресурс |
|
||||
| created_time | int | Время создания ресурса |
|
||||
| deleted_by | string | Кем был удален ресурс |
|
||||
| deleted_time | int | Время удаления ресурса |
|
||||
| extnet_id | int | ID внешней сети |
|
||||
| k8s_ci_name | string | Имя образа кластера |
|
||||
| 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 | Struct{} [см. ниже](#описание-структуры-списка-acl) | acl |
|
||||
| account_id | int | ID аккаунта |
|
||||
| account_name | string | Имя аккаунта |
|
||||
| bservice_id | int | ID bservice |
|
||||
| k8sci_id | int | ID образа кластера |
|
||||
| k8s_id | int | ID кластера |
|
||||
| detailed_info | Struct{} [см.ниже](#описание-структуры-списка-detailed_info) | Информация о ВМ внутри мастер-узла |
|
||||
| master_id | int | ID мастер-узла |
|
||||
| master_name | string | Наименование мастер-узла |
|
||||
| num | int | Кол-во ВМ в мастер-узле (1 или 3) |
|
||||
| cpu | int | Кол-во ядер для мастер-узла |
|
||||
| ram | int | Кол-во RAM (в мб) для мастер-узла |
|
||||
| disk | int | Размер диска мастер-узла |
|
||||
| sep_id | int | Storage Endpoint ID мастер-узла |
|
||||
| sep_pool | string | SEP пул мастер-узла |
|
||||
| created_by | string | Кем был создан ресурс |
|
||||
| created_time | int | Время создания ресурса |
|
||||
| deleted_by | string | Кем был удален ресурс |
|
||||
| deleted_time | int | Время удаления ресурса |
|
||||
| extnet_id | int | ID внешней сети |
|
||||
| k8s_ci_name | string | Имя образа кластера |
|
||||
| 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
|
||||
|
||||
| Параметр | Тип | Описание |
|
||||
| --- | --- | --- |
|
||||
| explicit | bool | explicit |
|
||||
| guid | string | ID ресурса |
|
||||
| right | string | right |
|
||||
| Параметр | Тип | Описание |
|
||||
| ------------- | ------ | -------------- |
|
||||
| explicit | bool | explicit |
|
||||
| guid | string | ID ресурса |
|
||||
| right | string | right |
|
||||
| status | string | Статус ресурса |
|
||||
| type | string | Тип ресурса |
|
||||
| user_group_id | string | ID группы |
|
||||
| type | string | Тип ресурса |
|
||||
| user_group_id | string | ID группы |
|
||||
|
||||
### Описание структуры списка 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 виртуальной сети |
|
||||
| Параметр | Тип | Описание |
|
||||
| -------------------- | ------------------------------------------------------------ | -------------------------------- |
|
||||
| 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 интерфейса |
|
||||
| Параметр | Тип | Описание |
|
||||
| ---------- | ------ | ----------------- |
|
||||
| def_gw | string | Шлюз по умолчанию |
|
||||
| ip_address | string | IP интерфейса |
|
||||
|
||||
## Пример использования
|
||||
|
||||
Пример вызова _resource_ функции **decort_k8s_cp**:
|
||||
|
||||
```terraform
|
||||
resource "decort_k8s_cp" "cp" {
|
||||
# Название кластера
|
||||
@@ -279,7 +294,7 @@ resource "decort_k8s_cp" "cp" {
|
||||
# Опциональный параметр
|
||||
# int
|
||||
disk = 10
|
||||
|
||||
|
||||
# Описание кластера
|
||||
# Опциональный параметр
|
||||
# string
|
||||
@@ -312,4 +327,4 @@ resource "decort_k8s_cp" "cp" {
|
||||
}
|
||||
```
|
||||
|
||||
После успешного завершения такого вызова **decort_k8s_cp** в переменной `decort_k8s_cp.cp` будут сохранены возвращаемые значения.
|
||||
После успешного завершения такого вызова **decort_k8s_cp** в переменной `decort_k8s_cp.cp` будут сохранены возвращаемые значения.
|
||||
|
||||
76
Home.md
76
Home.md
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user