Я рассматривал внедрение Kubernetes с помощью Terraform на прошлой неделе, и у меня, похоже, возникла проблема с жизненным циклом.
Хотя я могу сделать ресурс Kubernetes зависимым от запуска кластера, KUBECONFIG
файл не обновляется в середине terraform apply
.
kubernete
resource "kubernetes_service" "example" {
...
depends_on = ["digitalocean_kubernetes_cluster.example"]
}
resource "digitalocean_kubernetes_cluster" "example" {
name = "example"
region = "${var.region}"
version = "1.12.1-do.2"
node_pool {
name = "woker-pool"
size = "s-1vcpu-2gb"
node_count = 1
}
provisioner "local-exec" {
command = "sh ./get-kubeconfig.sh" // gets KUBECONFIG file from digitalocean API.
environment = {
digitalocean_kubernetes_cluster_id = "${digitalocean_kubernetes_cluster.k8s.id}"
digitalocean_kubernetes_cluster_name = "${digitalocean_kubernetes_cluster.k8s.name}"
digitalocean_api_token = "${var.digitalocean_token}"
}
}
Хотя я могу извлечь файл CONFIG с помощью API, terraform не будетиспользуйте этот файл, потому что terraform plan
уже находится в движении
Я видел несколько примеров использования троичных операторов (resource ? 1 : 0
), но я не нашел обходного пути для не count
созданных кластеров, кроме -target
В идеале я хотел бы создать это с одним репозиторием terraform.