locals { node_name = "prodnxsr0011" config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml")) config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml")) config = merge(local.config_common, local.config_specific) instance_name = basename(get_terragrunt_dir()) } inputs = merge( { name = local.instance_name }, local.config ) include "root" { path = find_in_parent_folders("root.hcl") } include "instances" { path = find_in_parent_folders("instances.hcl") expose = true merge_strategy = "deep" } dependencies { paths = ["${get_repo_root()}/config/nodes/${local.node_name}"] } generate "incus" { path = "incus.tf" if_exists = "overwrite_terragrunt" contents = <<-EOF provider "incus" { generate_client_certificates = false accept_remote_certificate = true config_dir = "${get_env("INCUS_CONFIG_DIR")}" remote { name = "${basename(get_terragrunt_dir())}" scheme = "https" address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}" port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}" token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}" default = true } } EOF } terraform { source = "${get_repo_root()}/modules/instance" }