I’ll try to make it as simple and as short as I can.
Essentially I have a module that creates an EKS cluster.
This module can be invoked N times (a list).
To interact with each module I need to declare a kubernetes provider:
provider "kubernetes" {
host = module.my_eks_module[0].eks_cluster_endpoint
cluster_ca_certificate = base64decode(module.my_eks_module[0].eks_cluster_certificate_authority_data)
token = module.my_eks_module[0].eks_cluster_id
experiments {
manifest_resource = true
}
exec {
api_version = "client.authentication.k8s.io/v1beta1"
args = ["eks", "get-token", "--cluster-name", module.my_eks_module[0].cluster_name]
command = "aws"
}
}
As you can see I added an index [0]
but this is just to validate its basic usage for a single cluster.
My question is: what is the proper way to do it? I need to execute some kubernetes commands for each cluster but I don’t know how to declare this provider.
The same happens if I include my_eks_module a single time but with
count = var.create_cluster ? 1 : 0
Thank you