diff --git a/05.07-Миграция-k8s-кластеров-на-версию-4.2.0.md b/05.07-Миграция-k8s-кластеров-на-версию-4.2.0.md
new file mode 100644
index 0000000..a1ab8ff
--- /dev/null
+++ b/05.07-Миграция-k8s-кластеров-на-версию-4.2.0.md
@@ -0,0 +1,179 @@
+Начиная с версии `4.2.0` провайдера была добавлена новая логика работы с k8s кластерами. Заключается она в разделении ответственности между двумя ресурсами:
+- `decort_k8s_cp` - используется для первичного создания и управления control plane кластера
+- `decort_k8s_wg` - используется для управления worker-группами
+
+### `decort_k8s_cp` - мастер-узел кластера
+В отличии от ресурса `decort_k8s` не имеет возможности управления worker-группами и может быть создан без указания названия дефолтной группы. При успешном создании ресурса, кластер будет создан без рабочих узлов.
+
+### `decort_k8s_wg` - worker-группы кластера
+Ресурс используется для создания, удаления или изменения рабочих узлов, которых у одного кластера может быть как ни одного, так и множество.
+
+**При использовании `decort_k8s_cp` не рекомендуется параллельное использование `decort_k8s` для управления одним и тем же кластером во избежание проблем с идемпотентностью**
+
+## Инструкция по миграции созданных кластеров
+
+Ниже приведен пример ресурса, миграция которого будет проведена:
+```terraform
+resource "decort_k8s" "cluster" {
+ name = "tf-wiki"
+ rg_id = 1649
+ k8sci_id = 55
+ extnet_id = 13
+ wg_name = "wiki-wg"
+ network_plugin = "flannel"
+
+ # Описание мастер-узла
+ masters {
+ cpu = 2
+ ram = 2048
+ num = 3
+ disk = 15
+ }
+
+ # Описание дефолтной воркер-группы
+ workers {
+ name = "wiki-wg"
+ cpu = 1
+ num = 1
+ ram = 1024
+ disk = 15
+ }
+
+ # Описание дополнительной воркер-группы
+ workers {
+ name = "additional-wg"
+ cpu = 1
+ num = 1
+ ram = 1024
+ disk = 15
+ }
+}
+```
+
+1. Для начала, создадим в файле конфигурации ресурс `decort_k8s_cp`:
+```terraform
+resource "decort_k8s_cp" "control_plane" {}
+```
+
+2. Выполним команду импортирования с указанием ID кластера:
+```
+terraform import decort_k8s_cp.
+```
+Для кластера выше:
+```
+terraform import decort_k8s_cp.control_plane 556
+```
+
+2.1: В случае, если в кластере присутствуют worker группы, провайдер напомнит об этом:
+```
+Warning: Found worker-group with ID 1353. Make sure to import it to decort_k8s_wg resource if you wish to manage it
+
+Warning: Found worker-group with ID 1354. Make sure to import it to decort_k8s_wg resource if you wish to manage it
+```
+
+3. После этого, заполним поля ресурса данными из `decort_k8s`:
+```terraform
+resource "decort_k8s_cp" "control_plane" {
+ name = "tf-wiki"
+ rg_id = 1649
+ k8sci_id = 55
+ extnet_id = 13
+ network_plugin = "flannel"
+
+ # Описание мастер-узла вынесено в корень ресурса
+ cpu = 2
+ num = 2048
+ num = 3
+ disk = 15
+
+ # Данных о рабочих узлов в ресурсе нет - они описываются в decort_k8s_wg
+}
+```
+
+4. В случае, если есть уже созданные рабочие узлы, стоит добавить ресурсы `decort_k8s_wg` для каждого в конфигурационный файл:
+```terraform
+resource "decort_k8s_wg" " {
+ # Для удобства можно сразу указать k8s_id из ранее созданного ресурса decort_k8s_cp
+ k8s_id = decort_k8s_cp..k8s_id
+}
+```
+4.1 Для кластера в примере:
+```terraform
+resource "decort_k8s_wg" "wg1" {
+ k8s_id = decort_k8s_cp.control_plane.k8s_id
+ name = "wiki-wg"
+ cpu = 1
+ num = 1
+ ram = 1024
+ disk = 15
+}
+
+resource "decort_k8s_wg" "wg2" {
+ k8s_id = decort_k8s_cp.control_plane.k8s_id
+ name = "additional-wg"
+ cpu = 1
+ num = 1
+ ram = 1024
+ disk = 15
+}
+```
+
+5. Выполним команду `terraform import` (отдельно для каждого ресурса):
+```
+terraform import decort_k8s_wg. #
+```
+```
+terraform import decort_k8s_wg.wg1 1353#556
+
+terraform import decort_k8s_wg.wg2 1354#556
+```
+6. В случае успеха, команда `terraform plan` успешно завершится со статусом*:
+```
+No changes. Your infrastructure matches the configuration.
+```
+**кроме случаев, когда терраформ пытается записать автоматически генерируемые (дефолтные) значения параметров в стейт (например, start меняется с null на true) или ресурс был изменен вне терраформа*
+
+7. После успешной миграции стоит удалить описание ресурса `decort_k8s`.
+
+8. Теперь k8s кластер находится под полным управлением terraform.
+
+### Конф. файл после всех изменений:
+```terraform
+resource "decort_k8s_cp" "control_plane" {
+ name = "tf-wiki"
+ rg_id = 1649
+ k8sci_id = 55
+ extnet_id = 13
+ network_plugin = "flannel"
+
+ # Описание мастер-узла вынесено в корень ресурса
+ cpu = 2
+ num = 2048
+ num = 3
+ disk = 15
+
+ # Данных о рабочих узлов в ресурсе нет - они описываются в decort_k8s_wg
+}
+
+resource "decort_k8s_wg" "wg1" {
+ k8s_id = decort_k8s_cp.control_plane.k8s_id
+ name = "wiki-wg"
+ cpu = 1
+ num = 1
+ ram = 1024
+ disk = 15
+}
+
+resource "decort_k8s_wg" "wg2" {
+ k8s_id = decort_k8s_cp.control_plane.k8s_id
+ name = "additional-wg"
+ cpu = 1
+ num = 1
+ ram = 1024
+ disk = 15
+}
+```
+
+## P. S
+1. После успешной миграции **не рекомендуется** использовать `decort_k8s` параллельно с `decort_k8s_cp` - это может привести к нежелательным проблемам идемпотентности
+2. При удалении `decort_k8s_cp` удалится как сам кластер, так и все зависимые воркер-группы, а соответственно и `decort_k8s_wg`
\ No newline at end of file
diff --git a/06.01.59-Data-функция-decort_kvmvm_list-получение-информации-о-списке-компьютов.md b/06.01.59-Data-функция-decort_kvmvm_list-получение-информации-о-списке-компьютов.md
index c06aa7e..e6f52c7 100644
--- a/06.01.59-Data-функция-decort_kvmvm_list-получение-информации-о-списке-компьютов.md
+++ b/06.01.59-Data-функция-decort_kvmvm_list-получение-информации-о-списке-компьютов.md
@@ -10,6 +10,7 @@ _Data source_ функция **decort_kvmvm_list** принимает следу
| includedeleted | bool| :x: | Включить в результат удаленные ресурсы |
| page | int | :x: | Номер страниц |
| size | int | :x: | Размер страницы |
+| ignore_k8s | bool | :x: | При значении true - показать все ВМ, не относящиеся к любому из кластеров k8s |
## Возвращаемые значения
В случае успешного выполнения _data source_ функция **decort_kvmvm_list** возвращает в указанную при вызове переменную, в поле _items_ массив, каждый элемент которого состоит из следующих параметров:
@@ -144,6 +145,9 @@ data "decort_kvmvm_list" "kvmvm_list" {
includedeleted = false
page = 1
size = 10
+
+ # Показать все ВМ, включая ВМ внутри k8s кластеров
+ ignore_k8s = false
}
```
diff --git a/07.01.21-Resource-функция-decort_k8s_cp-управление-control-plane-кластера.md b/07.01.21-Resource-функция-decort_k8s_cp-управление-control-plane-кластера.md
new file mode 100644
index 0000000..182e9e9
--- /dev/null
+++ b/07.01.21-Resource-функция-decort_k8s_cp-управление-control-plane-кластера.md
@@ -0,0 +1,181 @@
+Функция доступна в провайдере версии 4.2.0 и выше.
+
+_Resource_ функция **decort_k8s_cp** служит для управления control plane кластера k8s. Функция позволяет:
+- Создать кластер
+- Удалить кластер
+- Настроить мастер-узел
+- Изменить кол-во ВМ в мастер-узле
+
+Созданный с помощью данного ресурса кластер не имеет стандартных рабочих узлов и логики управления ими. Для управления worker-группами используется отдельный ресурс `decort_k8s_wg`.
+**!** При удалении ресурса `decort_k8s_cp` удалится сам кластер и все зависимые ресурсы (worker-группы)
+**!** При использовании `decort_k8s_cp` не рекомендуется параллельное использование `decort_k8s` для управления одним и тем же кластером во избежание проблем с идемпотентностью
+
+**Данный способ управления кластерами стал предпочтительным с версии провайдера 4.2.0 - для упрощения процесса миграции обратитесь к статье. (ссылка)**
+
+## Аргументы
+_Resource_ функция **decort_flipgroup** принимает следующие аргументы:
+
+| Аргумент | Тип | Обязательный | Описание |
+| --- | --- | :---: | --- |
+| 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: | Описание кластера |
+| 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
+
+| Параметр | Тип | Описание |
+| --- | --- | --- |
+| explicit | bool | explicit |
+| guid | string | ID ресурса |
+| right | string | right |
+| status | string | Статус ресурса |
+| 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 виртуальной сети |
+
+### Описание структуры списка interfaces
+
+| Параметр | Тип | Описание |
+| --- | --- | --- |
+| def_gw | string | Шлюз по умолчанию |
+| ip_address | string | IP интерфейса |
+
+## Пример использования
+Пример вызова _resource_ функции **decort_k8s_cp**:
+```terraform
+resource "decort_k8s_cp" "cp" {
+ # Название кластера
+ # Обязательный параметр
+ # string
+ name =
+
+ # K8sCI ID
+ # Обязательный параметр
+ # int
+ k8sci_id =
+
+ # Плагин сети (flannel, weavenet или calico)
+ # Обязательный параметр
+ # string
+ network_plugin = "flannel"
+
+ # ID ресурсной группы
+ # Обязательный параметр
+ # int
+ rg_id =
+
+ # Кол-во ядер мастер-узла
+ # Опциональный параметр
+ # int
+ cpu = 2
+
+ # Объем RAM мастер-узла
+ # Опциональный параметр
+ # int
+ ram = 2048
+
+ # Кол-во ВМ мастер-узла (1 или 3)
+ # Опциональный параметр
+ # int
+ num = 1
+
+ # Размер диска мастер-узла
+ # Опциональный параметр
+ # int
+ disk = 10
+
+ # Описание кластера
+ # Опциональный параметр
+ # string
+ desc = ""
+
+ # ID внешней сети
+ # Опциональный параметр
+ # id
+ extnet_id =
+
+ # Storage Endpoint ID
+ # Опциональный параметр
+ # id
+ sep_id =
+
+ # SEP Pool
+ # Опциональный параметр
+ # string
+ sep_pool =
+
+ # Старт/Стоп кластера
+ # Опциональный параметр
+ # bool
+ start =
+
+ # Создать кластер с/без балансировщика нагрузки
+ # Опциональный параметр
+ # bool
+ with_lb =
+}
+```
+
+После успешного завершения такого вызова **decort_k8s_cp** в переменной `decort_k8s_cp.cp` будут сохранены возвращаемые значения.
\ No newline at end of file