Я использую terraform для создания своей среды.
В рамках потока я создаю кластер gke и серверную службу (часть балансировщика нагрузки).
при применении изменения, требующего " уничтожение кластера "(например, изменение типа машины gke), terraform завершится неудачно, потому что кластер зависит от серверной службы.
Я ожидал бы, что terraform распознает эту зависимость, а также уничтожит и воссоздает внутреннюю службу.
есть ли способ добиться такого поведения, или мне придется запустить полное уничтожение и применить в этом сценарии?
пример:
resource "google_container_cluster" "cluster" {
provider = google-beta
name = "my-cluster"
location = "europe-west1-b"
min_master_version = "1.15"
networking_mode = "VPC_NATIVE"
ip_allocation_policy {}
node_pool {
name = "default-pool"
node_count = 1
node_config {
preemptible = true
machine_type = "n1-standard-4"
disk_size_gb = 20
oauth_scopes = [
"https://www.googleapis.com/auth/devstorage.read_only",
"https://www.googleapis.com/auth/logging.write",
"https://www.googleapis.com/auth/monitoring",
"https://www.googleapis.com/auth/service.management.readonly",
"https://www.googleapis.com/auth/servicecontrol",
"https://www.googleapis.com/auth/trace.append",
"https://www.googleapis.com/auth/compute",
]
metadata = {
disable-legacy-endpoints = "true"
}
}
}
network_policy {
enabled = true
}
master_auth {
client_certificate_config {
issue_client_certificate = false
}
}
addons_config {
istio_config {
disabled = false
auth = "AUTH_MUTUAL_TLS"
}
}
}
resource "google_compute_health_check" "tcp-health-check" {
name = "${google_container_cluster.cluster.name}-istioingress-healthcheck"
tcp_health_check {
port = "12345"
port_specification = "USE_FIXED_PORT"
}
}
resource "google_compute_backend_service" "backend-service" {
name = "${google_container_cluster.cluster.name}-https-backend"
health_checks = [google_compute_health_check.tcp-health-check.id]
protocol = "HTTPS"
port_name = "port-12345"
connection_draining_timeout_sec = 0
backend {
balancing_mode = "UTILIZATION"
max_utilization = 0.8
capacity_scaler = 1
group = google_container_cluster.cluster.instance_group_urls.0
}
}
При обновлении типа_машины кластера я получаю следующую ошибку:
Ошибка: Ошибка при удалении кластера: googleapi : Ошибка 409: В кластере есть зависимые ресурсы, которые необходимо сначала удалить: https://www.googleapis.com/compute/v1/projects/tufin-securecloud-dev/global/backendServices/my-cluster-https-backend., уже существует