chore(terraform/main): migrated to new terraform templating API

This commit is contained in:
ITQ
2026-07-27 13:06:14 +03:00
parent 7237a5d5db
commit 9c55d363e0
6 changed files with 72 additions and 75 deletions
+3 -1
View File
@@ -17,5 +17,7 @@ resource "yandex_api_gateway" "frontend" {
min_level = "INFO" min_level = "INFO"
} }
spec = data.template_file.frontend_api_gateway_spec.rendered spec = templatefile("${path.module}/configs/api_gateway/spec.yaml", {
bucket_name = yandex_storage_bucket.frontend.bucket
})
} }
+14 -1
View File
@@ -14,6 +14,13 @@ resource "yandex_compute_instance" "k8s_main_master" {
ansible = "master" ansible = "master"
} }
lifecycle {
prevent_destroy = true
ignore_changes = [
hostname,
]
}
resources { resources {
cores = 2 cores = 2
memory = 2 memory = 2
@@ -57,7 +64,13 @@ resource "yandex_compute_instance" "k8s_main_master" {
enable-oslogin = true enable-oslogin = true
serial-port-enable = 1 serial-port-enable = 1
install-unified-agent = 0 install-unified-agent = 0
user-data = data.template_file.k8s_main_master_cloud_init.rendered user-data = templatefile("${path.module}/configs/cloud_init/main_master.yaml", {
k3s_credential_provider_config = base64encode(file("${path.module}/configs/k3s/credentialprovider.yaml"))
k3s_credential_provider = base64encode(file("${path.module}/configs/k3s/yc-credential-provider"))
k3s_dir = local.k3s_data_dir
k3s_token = random_password.k3s_token.result
yc_cloud_id = var.cloud_id
})
} }
metadata_options { metadata_options {
+19 -5
View File
@@ -68,17 +68,24 @@ resource "yandex_compute_instance_group" "k8s_master" {
enable-oslogin = true enable-oslogin = true
serial-port-enable = 1 serial-port-enable = 1
install-unified-agent = 0 install-unified-agent = 0
user-data = data.template_file.k8s_master_cloud_init.rendered user-data = templatefile("${path.module}/configs/cloud_init/master.yaml", {
k3s_credential_provider_config = base64encode(file("${path.module}/configs/k3s/credentialprovider.yaml"))
k3s_credential_provider = base64encode(file("${path.module}/configs/k3s/yc-credential-provider"))
k3s_dir = local.k3s_data_dir
k3s_token = random_password.k3s_token.result
k3s_master_ip = local.k8s_main_master_fqdn
yc_cloud_id = var.cloud_id
})
} }
} }
scale_policy { scale_policy {
fixed_scale { fixed_scale {
size = 2 size = 3
} }
} }
allocation_policy { allocation_policy {
zones = ["ru-central1-a", "ru-central1-b"] zones = ["ru-central1-a", "ru-central1-b", "ru-central1-d"]
} }
deploy_policy { deploy_policy {
max_creating = 3 max_creating = 3
@@ -185,13 +192,20 @@ resource "yandex_compute_instance_group" "k8s_worker" {
enable-oslogin = true enable-oslogin = true
serial-port-enable = 1 serial-port-enable = 1
install-unified-agent = 0 install-unified-agent = 0
user-data = data.template_file.k8s_worker_cloud_init.rendered user-data = templatefile("${path.module}/configs/cloud_init/worker.yaml", {
k3s_credential_provider_config = base64encode(file("${path.module}/configs/k3s/credentialprovider.yaml"))
k3s_credential_provider = base64encode(file("${path.module}/configs/k3s/yc-credential-provider"))
k3s_dir = local.k3s_data_dir
k3s_token = random_password.k3s_token.result
k3s_master_ip = local.k8s_main_master_fqdn
yc_cloud_id = var.cloud_id
})
} }
} }
scale_policy { scale_policy {
fixed_scale { fixed_scale {
size = 1 size = 2
} }
} }
allocation_policy { allocation_policy {
+16
View File
@@ -11,6 +11,22 @@ resource "yandex_lb_network_load_balancer" "k8s_lb" {
ip_version = "ipv4" ip_version = "ipv4"
} }
} }
listener {
name = "http"
port = 80
external_address_spec {
address = yandex_vpc_address.nlb.external_ipv4_address[0].address
ip_version = "ipv4"
}
}
listener {
name = "https"
port = 443
external_address_spec {
address = yandex_vpc_address.nlb.external_ipv4_address[0].address
ip_version = "ipv4"
}
}
attached_target_group { attached_target_group {
target_group_id = yandex_lb_target_group.k8s_main_master.id target_group_id = yandex_lb_target_group.k8s_main_master.id
+20 -20
View File
@@ -4,11 +4,11 @@ output "registry_data" {
} }
} }
output "frontend_api_gateway_data" { # output "frontend_api_gateway_data" {
value = { # value = {
domain = yandex_api_gateway.frontend.domain # domain = yandex_api_gateway.frontend.domain
} # }
} # }
output "registry_push_sa_key" { output "registry_push_sa_key" {
value = jsonencode({ value = jsonencode({
@@ -34,18 +34,18 @@ output "registry_pull_sa_key" {
sensitive = true sensitive = true
} }
output "frontend_push_sa_key" { # output "frontend_push_sa_key" {
value = jsonencode({ # value = jsonencode({
id = yandex_iam_service_account_key.frontend_push_sa_key.id # id = yandex_iam_service_account_key.frontend_push_sa_key.id
service_account_id = yandex_iam_service_account_key.frontend_push_sa_key.service_account_id # service_account_id = yandex_iam_service_account_key.frontend_push_sa_key.service_account_id
created_at = yandex_iam_service_account_key.frontend_push_sa_key.created_at # created_at = yandex_iam_service_account_key.frontend_push_sa_key.created_at
key_algorithm = yandex_iam_service_account_key.frontend_push_sa_key.key_algorithm # key_algorithm = yandex_iam_service_account_key.frontend_push_sa_key.key_algorithm
public_key = yandex_iam_service_account_key.frontend_push_sa_key.public_key # public_key = yandex_iam_service_account_key.frontend_push_sa_key.public_key
private_key = yandex_iam_service_account_key.frontend_push_sa_key.private_key # private_key = yandex_iam_service_account_key.frontend_push_sa_key.private_key
}) # })
sensitive = true # sensitive = true
} # }
#
output "lets_encrypt_challenges" { # output "lets_encrypt_challenges" {
value = yandex_cm_certificate.default.challenges # value = yandex_cm_certificate.default.challenges
} # }
-48
View File
@@ -1,48 +0,0 @@
data "template_file" "k8s_main_master_cloud_init" {
template = file("${path.module}/configs/cloud_init/main_master.yaml")
vars = {
k3s_credential_provider_config = base64encode(file("${path.module}/configs/k3s/credentialprovider.yaml"))
k3s_credential_provider = base64encode(file("${path.module}/configs/k3s/yc-credential-provider"))
k3s_dir = local.k3s_data_dir
k3s_token = random_password.k3s_token.result
yc_cloud_id = var.cloud_id
}
}
data "template_file" "k8s_master_cloud_init" {
template = file("${path.module}/configs/cloud_init/master.yaml")
vars = {
k3s_credential_provider_config = base64encode(file("${path.module}/configs/k3s/credentialprovider.yaml"))
k3s_credential_provider = base64encode(file("${path.module}/configs/k3s/yc-credential-provider"))
k3s_dir = local.k3s_data_dir
k3s_token = random_password.k3s_token.result
k3s_master_ip = local.k8s_main_master_fqdn
yc_cloud_id = var.cloud_id
}
}
data "template_file" "k8s_worker_cloud_init" {
template = file("${path.module}/configs/cloud_init/worker.yaml")
vars = {
k3s_credential_provider_config = base64encode(file("${path.module}/configs/k3s/credentialprovider.yaml"))
k3s_credential_provider = base64encode(file("${path.module}/configs/k3s/yc-credential-provider"))
k3s_dir = local.k3s_data_dir
k3s_token = random_password.k3s_token.result
k3s_master_ip = local.k8s_main_master_fqdn
yc_cloud_id = var.cloud_id
}
}
data "template_file" "frontend_api_gateway_spec" {
template = file("${path.module}/configs/api_gateway/spec.yaml")
vars = {
bucket_name = yandex_storage_bucket.frontend.bucket
}
}
data "template_file" "frontend_develop_api_gateway_spec" {
template = file("${path.module}/configs/api_gateway/spec.yaml")
vars = {
bucket_name = yandex_storage_bucket.frontend_develop.bucket
}
}