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_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" } inputs = { environment = local.env_name topics = local.kafka_topics 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", "") }