# Репозиторий с выполненным заданием 1

## Задание 2.1 - Создание модуля

Выделим создание node group в отдельный модуль, который будем вызывать из корневого модуля. Это позволит создавать node group проще.

- Рядом с директорией проекта создайте директорию `module_service`. Скопируйте туда `versions.tf` и переместите кусок кода из файла `cluster.tf`, который касается node group. К примеру в файл `cluster_node.tf`

- Также переместите `yandex_vpc_security_group.k8s_public_services` в cluster_node.tf. В ней, у `network_id` нужно сменить значение на переменную. Так же можно в модуле вынести этот ресурс в файл sg.tf.

- Из файла variables.tf переменную `yandex_region` скопируйте — она должна быть и там, и там. 

- Создайте для модуля переменные `cluster_id`, `sg_k8s_id`, `for_each_vpc_id`  типа `string`. И `for_each_vpc` типа `map(object)` занести туда ключи `zone`, `id` типа `string`.

- Теперь необходимо в файле cluster_node.tf заменить обращение к ресурсам корневого модуля на созданные переменные. Список ресурсов для замены соответственно: `yandex_vpc_subnet.this`,`yandex_kubernetes_cluster.regional_cluster.id`, `yandex_vpc_security_group.sg_k8s.id`, `yandex_vpc_network.this.id`.

## Задание 2.2 - Использование модуля

Теперь, в корневом модуле, можно создать новый файл cluster_node.tf, в котором объявить сервис из модуля:

```hcl
module "service" {
  source = "../module_service"
  yandex_region = var.yandex_region
  ...
}
```

Передайте в объявление переменные, которые были созданы в предыдущем модуле. Значения для них возьмите те, которые были использованы изначально (ведь в этом модуле эти ресурсы есть).
