mirror of
https://gitlab.sarex.io/infra/terraform-contour-mirror.git
synced 2026-08-05 18:31:00 +03:00
62 lines
2.0 KiB
HCL
62 lines
2.0 KiB
HCL
include "root" {
|
|
path = find_in_parent_folders()
|
|
}
|
|
|
|
include "env" {
|
|
path = find_in_parent_folders("env.hcl")
|
|
expose = true
|
|
merge_strategy = "deep"
|
|
}
|
|
|
|
locals {
|
|
repo_root = try(get_repo_root(), "${get_terragrunt_dir()}/../../..")
|
|
infra_config = yamldecode(file("${local.repo_root}/infrastructure.yaml"))
|
|
env_name = basename(dirname(get_terragrunt_dir()))
|
|
env_config = local.infra_config.environments[local.env_name]
|
|
|
|
kafka_topics = try(local.env_config.kafka.topics, [])
|
|
kafka_users = try(local.env_config.kafka.users, [])
|
|
|
|
kafka_cluster_refs = {
|
|
for ref, cfg in local.env_config.kafka_cluster_refs : ref => merge(cfg, {
|
|
cluster_id = startswith(tostring(cfg.cluster_id), "env:") ? get_env(trimprefix(tostring(cfg.cluster_id), "env:"), "") : tostring(cfg.cluster_id)
|
|
})
|
|
}
|
|
}
|
|
|
|
terraform {
|
|
source = "${get_terragrunt_dir()}/../../../modules//kafka-topics-yc"
|
|
}
|
|
|
|
generate "import_existing" {
|
|
path = "import_existing.tf"
|
|
if_exists = "overwrite"
|
|
contents = join("\n\n", [
|
|
for user in local.kafka_users : <<-EOF
|
|
import {
|
|
to = yandex_mdb_kafka_user.this["${user.clusterRef}:${user.name}"]
|
|
id = "${local.kafka_cluster_refs[user.clusterRef].cluster_id}:${user.name}"
|
|
}
|
|
EOF
|
|
if try(user.adopt, false)
|
|
])
|
|
}
|
|
|
|
inputs = {
|
|
environment = local.env_name
|
|
topics = local.kafka_topics
|
|
users = local.kafka_users
|
|
kafka_cluster_refs = local.kafka_cluster_refs
|
|
kafka_policy = local.env_config.kafka_policy
|
|
create_users = true
|
|
default_user_roles = ["ACCESS_ROLE_PRODUCER", "ACCESS_ROLE_CONSUMER"]
|
|
user_password_length = 32
|
|
|
|
yc_token = get_env("YC_TOKEN", "")
|
|
yc_service_account_key_file = get_env("YC_SERVICE_ACCOUNT_KEY_FILE", "")
|
|
yc_cloud_id = get_env("YC_CLOUD_ID", "")
|
|
yc_folder_id = get_env("YC_PROD_FOLDER_ID", get_env("YC_FOLDER_ID", ""))
|
|
kubeconfig_path = get_env("KUBECONFIG", "")
|
|
kube_context = get_env("KUBE_CONTEXT", "")
|
|
}
|