Activating the Kubernetes Terraform provider
You can use Terraform manifests to create Kubernetes resources. To do this, activate the kubernetes Terraform provider. It supports Terraform resources that are mapped to YAML configuration files for various Kubernetes resources.
For more information about the provider resources, see the relevant provider reference on the Terraform
Getting started
To connect the kubernetes provider, create a Kubernetes cluster using Terraform.
Warning
Do not delete Terraform configuration files after creating the cluster as you will need them to activate the provider.
The kubernetes provider is initialized only after creating and setting up a Kubernetes cluster for the following reasons:
- The provider requires the cluster data.
- The provider is used to create Kubernetes resources. You can only create them when the cluster is ready.
Activating the provider
-
Navigate to the working directory with Terraform files.
-
Open the
.tffile withyandexprovider settings you used when creating the Kubernetes cluster. It must have the following structure:terraform { required_providers { yandex = { source = "yandex-cloud/yandex" } } required_version = ">= 0.13" } provider "yandex" { token = "<IAM_token>" cloud_id = "<cloud_ID>" folder_id = "<folder_ID>" zone = "<default_availability_zone>" } -
In the file, specify the parameters required for the
kubernetesprovider to operate:-
Under
required_providers, add:kubernetes = { source = "hashicorp/kubernetes" } -
Under
required_providers, changerequired_versionto">= 0.14.8". -
Add a new section at the end of the file:
data "yandex_client_config" "client" {} provider "kubernetes" { host = yandex_kubernetes_cluster.<Kubernetes>_cluster_name.master[0].external_v4_endpoint cluster_ca_certificate = yandex_kubernetes_cluster.<Kubernetes>_cluster_name.master[0].cluster_ca_certificate token = data.yandex_client_config.client.iam_token }
-
-
Make sure the resulting file looks like this:
terraform { required_providers { yandex = { source = "yandex-cloud/yandex" } kubernetes = { source = "hashicorp/kubernetes" } } required_version = ">= 0.14.8" } provider "yandex" { token = "<IAM_token>" cloud_id = "<cloud_ID>" folder_id = "<folder_ID>" zone = "<default_availability_zone>" } data "yandex_client_config" "client" {} provider "kubernetes" { host = yandex_kubernetes_cluster.<Kubernetes>_cluster_name.master[0].external_v4_endpoint cluster_ca_certificate = yandex_kubernetes_cluster.<Kubernetes>_cluster_name.master[0].cluster_ca_certificate token = data.yandex_client_config.client.iam_token } -
Initialize the
kubernetesprovider:terraform init