4.4.0

dev
stSolo 2 years ago
parent ca19606299
commit 2841d34eed

@ -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,6 +26,7 @@ _Resource_ функция **decort_k8s** служит для управлени
- В аргументы добавлено опциональное поле sep_pool в блоке workers.
## Изменения в 3.3.0
- Добавлен id виртуальной сети, которая используется с кластером k8s.
- Добавлены описания IP адресов для группы воркеров.
- Добавлены описания IP адресов для группы мастеров.
@ -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,11 +161,17 @@ 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 |
@ -169,13 +186,14 @@ _Resource_ функция **decort_k8s** для создания кластер
| 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
| 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байтах |
@ -184,8 +202,9 @@ _Resource_ функция **decort_k8s** для создания кластер
| sep_pool | string | :x: | Название SEP pool'а |
### Описание блока workers
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| ----------- | -------- | ------------------ | -------------------------- |
| name | string | :heavy_check_mark: | Наименование воркер-группы |
| num | int | :heavy_check_mark: | Количество nodes |
| cpu | int | :heavy_check_mark: | Количество cpu |
@ -198,10 +217,11 @@ _Resource_ функция **decort_k8s** для создания кластер
| taints | []string | :x: | Список taints |
## Возвращаемые значения
В случае успешного выполнения _resource_ функция **decort_k8s** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание |
| --- | --- | --- |
| -------------- | -------------------------------------------------- | ----------------------------------- |
| acl | Struct{} [см. ниже](#описание-структуры-acl) | acl |
| account_id | int | ID аккаунта |
| account_name | string | Имя аккаунта |
@ -231,7 +251,7 @@ _Resource_ функция **decort_k8s** для создания кластер
### Описание структуры acl
| Параметр | Тип | Описание |
| --- | --- | --- |
| ----------- | ----------------------------------------------------- | ----------- |
| account_acl | []Struct{} [см. ниже](#описание-структуры-списка-acl) | account_acl |
| k8s_acl | []Struct{} [см. ниже](#описание-структуры-списка-acl) | k8s_acl |
| rg_acl | []Struct{} [см. ниже](#описание-структуры-списка-acl) | rg_acl |
@ -239,7 +259,7 @@ _Resource_ функция **decort_k8s** для создания кластер
### Описание структуры списка acl
| Параметр | Тип | Описание |
| --- | --- | --- |
| ------------- | ------ | -------------- |
| explicit | bool | explicit |
| guid | string | ID ресурса |
| right | string | right |
@ -250,7 +270,7 @@ _Resource_ функция **decort_k8s** для создания кластер
### Описание структуры masters
| Параметр | Тип | Описание |
| --- | --- | --- |
| ------------- | --------------------------------------------------------------- | ------------------------------------- |
| cpu | int | Кол-во cpu на компьютах master |
| detailed_info | []Struct{} [см. ниже](#описание-структуры-списка-detailed_info) | Детальная информация masters |
| disk | int | ID диска |
@ -262,7 +282,7 @@ _Resource_ функция **decort_k8s** для создания кластер
### Описание структуры workers
| Параметр | Тип | Описание |
| --- | --- | --- |
| ------------- | --------------------------------------------------------------- | -------------------------------------- |
| annotations | []string | Аннотации группы workers |
| cpu | int | Кол-во cpu на компьютах workers |
| detailed_info | []Struct{} [см. ниже](#описание-структуры-списка-detailed_info) | Детальная информация masters |
@ -278,7 +298,7 @@ _Resource_ функция **decort_k8s** для создания кластер
### Описание структуры списка detailed_info
| Параметр | Тип | Описание |
| --- | --- | --- |
| -------------------- | ------------------------------------------------------------ | -------------------------------- |
| compute_id | int | ID компьюта в составе группы |
| name | string | Имя компьюта в составе группы |
| status | string | Статус компьюта в составе группы |
@ -290,12 +310,14 @@ _Resource_ функция **decort_k8s** для создания кластер
### Описание структуры списка interfaces
| Параметр | Тип | Описание |
| --- | --- | --- |
| ---------- | ------ | ----------------- |
| def_gw | string | Шлюз по умолчанию |
| ip_address | string | IP интерфейса |
## Пример использования
Пример вызова _resource_ функции **decort_k8s**:
```terraform
resource "decort_k8s" "cluster" {
#имя кластера

@ -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,16 +19,16 @@ _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
{
@ -35,10 +44,10 @@ _Resource_ функция **decort_k8s_cp** служит для управлен
}
```
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,13 +148,17 @@ 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") |
@ -162,8 +175,8 @@ _Resource_ функция **decort_k8s_cp** принимает следующи
| 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
| extnet_only | bool | :x: | Использовать только extnet для работы кластера |
| ha_mode | bool | :x: | Режим высокой доступностью балансировщика нагрузки |
| start | bool | :x: | Старт/Стоп кластера |
## Возвращаемые значения
@ -171,7 +184,7 @@ _Resource_ функция **decort_k8s_cp** принимает следующи
В случае успешного выполнения _resource_ функция **decort_k8s_cp** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание |
| --- | --- | --- |
| -------------- | ------------------------------------------------------------ | ----------------------------------- |
| acl | Struct{} [см. ниже](#описание-структуры-списка-acl) | acl |
| account_id | int | ID аккаунта |
| account_name | string | Имя аккаунта |
@ -209,7 +222,7 @@ _Resource_ функция **decort_k8s_cp** принимает следующи
### Описание структуры списка acl
| Параметр | Тип | Описание |
| --- | --- | --- |
| ------------- | ------ | -------------- |
| explicit | bool | explicit |
| guid | string | ID ресурса |
| right | string | right |
@ -220,7 +233,7 @@ _Resource_ функция **decort_k8s_cp** принимает следующи
### Описание структуры списка detailed_info
| Параметр | Тип | Описание |
| --- | --- | --- |
| -------------------- | ------------------------------------------------------------ | -------------------------------- |
| compute_id | int | ID компьюта в составе группы |
| name | string | Имя компьюта в составе группы |
| status | string | Статус компьюта в составе группы |
@ -232,12 +245,14 @@ _Resource_ функция **decort_k8s_cp** принимает следующи
### Описание структуры списка interfaces
| Параметр | Тип | Описание |
| --- | --- | --- |
| ---------- | ------ | ----------------- |
| def_gw | string | Шлюз по умолчанию |
| ip_address | string | IP интерфейса |
## Пример использования
Пример вызова _resource_ функции **decort_k8s_cp**:
```terraform
resource "decort_k8s_cp" "cp" {
# Название кластера

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