Подключение Terraform-провайдера Kubernetes
Вы можете создать ресурсы Kubernetes с помощью манифестов Terraform. Для этого подключите Terraform-провайдер kubernetes
. Он поддерживает Terraform-ресурсы, которые соответствуют конфигурационным файлам YAML для различных Kubernetes-ресурсов.
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Перед началом работы
Чтобы подключить провайдер kubernetes
, создайте кластер Kubernetes с помощью Terraform.
Важно
После создания кластера не удаляйте конфигурационные файлы Terraform — они понадобятся для подключения провайдера.
Провайдер kubernetes
инициализируется только после создания и настройки кластера Kubernetes, так как:
- Провайдеру нужны данные кластера.
- Провайдер служит для создания ресурсов Kubernetes. Их можно создать только когда готов кластер.
Подключение провайдера
-
Перейдите в рабочую директорию с файлами Terraform.
-
Откройте файл
.tf
с настройками провайдераyandex
, который вы использовали при создании кластера Kubernetes. У него должна быть следующая структура:terraform { required_providers { yandex = { source = "yandex-cloud/yandex" } } required_version = ">= 0.13" } provider "yandex" { token = "<IAM-токен>" cloud_id = "<идентификатор_облака>" folder_id = "<идентификатор_каталога>" zone = "<зона_доступности_по_умолчанию>" }
-
Укажите в файле параметры, необходимые для работы провайдера
kubernetes
:-
В блок
required_providers
добавьте:kubernetes = { source = "hashicorp/kubernetes" }
-
В блоке
required_providers
измените значениеrequired_version
на">= 0.14.8"
. -
В конце файла разместите новый блок:
data "yandex_client_config" "client" {} provider "kubernetes" { host = yandex_kubernetes_cluster.<имя_кластера_Kubernetes>.master[0].external_v4_endpoint cluster_ca_certificate = yandex_kubernetes_cluster.<имя_кластера_Kubernetes>.master[0].cluster_ca_certificate token = data.yandex_client_config.client.iam_token }
-
-
Убедитесь, что в результате файл выглядит так:
terraform { required_providers { yandex = { source = "yandex-cloud/yandex" } kubernetes = { source = "hashicorp/kubernetes" } } required_version = ">= 0.14.8" } provider "yandex" { token = "<IAM-токен>" cloud_id = "<идентификатор_облака>" folder_id = "<идентификатор_каталога>" zone = "<зона_доступности_по_умолчанию>" } data "yandex_client_config" "client" {} provider "kubernetes" { host = yandex_kubernetes_cluster.<имя_кластера_Kubernetes>.master[0].external_v4_endpoint cluster_ca_certificate = yandex_kubernetes_cluster.<имя_кластера_Kubernetes>.master[0].cluster_ca_certificate token = data.yandex_client_config.client.iam_token }
-
Инициализируйте провайдер
kubernetes
:terraform init
См. также
Руководство Управление ресурсами Kubernetes с помощью провайдера Terraform.