Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to manage multiple kubernetes clusters via Terraform?

I want to create a secret in several k8s clusters in the Google Kubernetes Engine using the Terraform.

I know that I can use "host", "token" and some else parameters in "kubernetes" provider, but I can describe these parameters only once, and I don’t know how to connect to another cluster during the file of terraform.

My question is how to create a secret (or do other operations) in multiple k8s cluster via Terraform. Maybe you know some tools on github or other tips for doing via single terraform file?

like image 280
Stepan K. Avatar asked Sep 09 '19 21:09

Stepan K.


1 Answers

You can use alias for provider in terraform like described in documentation

So you can define multiple providers for multiple k8s clusters and then refer them by alias.

e.g.

provider "kubernetes" {
  config_context_auth_info = "ops1"
  config_context_cluster   = "mycluster1"
  alias = "cluster1"
}

provider "kubernetes" {
  config_context_auth_info = "ops2"
  config_context_cluster   = "mycluster2"
  alias = "cluster2"
}

resource "kubernetes_secret" "example" {
  ...
  provider = kubernetes.cluster1
}
like image 65
Jakub Bujny Avatar answered Nov 09 '22 01:11

Jakub Bujny