I got this error:
Dev Instance name output is incorrect
This is my work:
locals {
common_prefix = "datacenter-${terraform.workspace}"
default_tags = {
Project = "datacenter",
Environment = terraform.workspace
}
}
module "network" {
source = "./modules/network"
KKE_NAME_PREFIX = local.common_prefix
KKE_VPC_CIDR = var.KKE_VPC_CIDR
KKE_TAGS = local.default_tags
}
module "compute" {
source = "./modules/compute"
KKE_NAME_PREFIX = local.common_prefix
KKE_SUBNET_ID = module.network.kke_subnet_id
KKE_INSTANCE_TYPE = var.KKE_INSTANCE_TYPE
KKE_TAGS = local.default_tags
}
===
variable "KKE_VPC_CIDR" {
type = string
default = "10.0.0.0/16"
}
variable "KKE_INSTANCE_TYPE" {
type = string
validation {
condition = contains(["t3.micro", "t3.large"], var.KKE_INSTANCE_TYPE)
error_message = "KKE_INSTANCE_TYPE must be: t3.micro, t3.large."
}
}
===
KKE_INSTANCE_TYPE = "t3.micro"
===
KKE_INSTANCE_TYPE = "t3.large"
===
output "kke_vpc_name" {
value = module.network.kke_vpc_name
}
output "kke_subnet_name" {
value = module.network.kke_subnet_name
}
output "kke_instance_name" {
value = module.compute.kke_instance_name
}
===
variable "KKE_NAME_PREFIX" {
type = string
}
variable "KKE_VPC_CIDR" {
type = string
}
variable "KKE_TAGS" {
type = map(string)
}
===
output "kke_vpc_name" {
value = aws_vpc.vpc.tags.Name
}
output "kke_subnet_name" {
value = aws_subnet.subnet.tags.Name
}
output "kke_subnet_id" {
value = aws_subnet.subnet.id
}
===
resource "aws_vpc" "vpc" {
cidr_block = var.KKE_VPC_CIDR
tags = merge(
var.KKE_TAGS,
{ Name = "${var.KKE_NAME_PREFIX}-vpc" }
)
}
resource "aws_subnet" "subnet" {
vpc_id = aws_vpc.vpc.id
cidr_block = "10.0.1.0/24"
tags = merge(
var.KKE_TAGS,
{ Name = "${var.KKE_NAME_PREFIX}-subnet" }
)
}
===
variable "KKE_NAME_PREFIX" {
type = string
}
variable "KKE_SUBNET_ID" {
type = string
}
variable "KKE_INSTANCE_TYPE" {
type = string
}
variable "KKE_TAGS" {
type = map(string)
}
===
output "kke_instance_name" {
value = aws_instance.ec2.tags.Name
}
===
resource "aws_instance" "ec2" {
ami = "ami-0c94855ba95c71c99"
instance_type = var.KKE_INSTANCE_TYPE
subnet_id = var.KKE_SUBNET_ID
tags = merge(
var.KKE_TAGS,
{ Name = "${var.KKE_NAME_PREFIX}-ec2" }
)
}
Here is my tfstates:
dev/terraform.tfstate
{
"version": 4,
"terraform_version": "1.11.0",
"serial": 4,
"lineage": "026bd997-f81d-a879-d46b-158c23f274ac",
"outputs": {
"kke_instance_name": {
"value": "datacenter-dev-ec2",
"type": "string"
},
"kke_subnet_name": {
"value": "datacenter-dev-subnet",
"type": "string"
},
"kke_vpc_name": {
"value": "datacenter-dev-vpc",
"type": "string"
}
},
"resources": [
{
"module": "module.compute",
"mode": "managed",
"type": "aws_instance",
"name": "ec2",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": [
{
"schema_version": 1,
"attributes": {
"ami": "ami-0c94855ba95c71c99",
"arn": "arn:aws:ec2:us-east-1::instance/i-a93dcb23b609a7660",
"associate_public_ip_address": false,
"availability_zone": "us-east-1e",
"capacity_reservation_specification": [],
"cpu_core_count": null,
"cpu_options": [],
"cpu_threads_per_core": null,
"credit_specification": [],
"disable_api_stop": false,
"disable_api_termination": false,
"ebs_block_device": [],
"ebs_optimized": false,
"enable_primary_ipv6": null,
"enclave_options": [],
"ephemeral_block_device": [],
"get_password_data": false,
"hibernation": false,
"host_id": "",
"host_resource_group_arn": null,
"iam_instance_profile": "",
"id": "i-a93dcb23b609a7660",
"instance_initiated_shutdown_behavior": "stop",
"instance_lifecycle": "",
"instance_market_options": [],
"instance_state": "running",
"instance_type": "t3.micro",
"ipv6_address_count": 0,
"ipv6_addresses": [],
"key_name": "",
"launch_template": [],
"maintenance_options": [],
"metadata_options": [
{
"http_endpoint": "enabled",
"http_protocol_ipv6": "disabled",
"http_put_response_hop_limit": 1,
"http_tokens": "optional",
"instance_metadata_tags": "disabled"
}
],
"monitoring": false,
"network_interface": [],
"outpost_arn": "",
"password_data": "",
"placement_group": "",
"placement_partition_number": 0,
"primary_network_interface_id": "eni-033023dc4b4efa44e",
"private_dns": "ip-10-0-1-4.ec2.internal",
"private_dns_name_options": [],
"private_ip": "10.0.1.4",
"public_dns": "None",
"public_ip": "",
"root_block_device": [
{
"delete_on_termination": true,
"device_name": "/dev/sda1",
"encrypted": false,
"iops": 0,
"kms_key_id": "",
"tags": {},
"tags_all": {},
"throughput": 0,
"volume_id": "vol-8bf8e365aed35fc72",
"volume_size": 8,
"volume_type": "gp2"
}
],
"secondary_private_ips": [],
"security_groups": [],
"source_dest_check": true,
"spot_instance_request_id": "",
"subnet_id": "subnet-0e13a762aebe2c0cf",
"tags": {
"Environment": "dev",
"Name": "datacenter-dev-ec2",
"Project": "datacenter"
},
"tags_all": {
"Environment": "dev",
"Name": "datacenter-dev-ec2",
"Project": "datacenter"
},
"tenancy": "default",
"timeouts": null,
"user_data": null,
"user_data_base64": null,
"user_data_replace_on_change": false,
"volume_tags": null,
"vpc_security_group_ids": []
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6MTIwMDAwMDAwMDAwMCwicmVhZCI6OTAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMSJ9",
"dependencies": [
"module.network.aws_subnet.subnet",
"module.network.aws_vpc.vpc"
]
}
]
},
{
"module": "module.network",
"mode": "managed",
"type": "aws_subnet",
"name": "subnet",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": [
{
"schema_version": 1,
"attributes": {
"arn": "arn:aws:ec2:us-east-1:000000000000:subnet/subnet-0e13a762aebe2c0cf",
"assign_ipv6_address_on_creation": false,
"availability_zone": "us-east-1e",
"availability_zone_id": "use1-az3",
"cidr_block": "10.0.1.0/24",
"customer_owned_ipv4_pool": "",
"enable_dns64": false,
"enable_lni_at_device_index": 0,
"enable_resource_name_dns_a_record_on_launch": false,
"enable_resource_name_dns_aaaa_record_on_launch": false,
"id": "subnet-0e13a762aebe2c0cf",
"ipv6_cidr_block": "",
"ipv6_cidr_block_association_id": "",
"ipv6_native": false,
"map_customer_owned_ip_on_launch": false,
"map_public_ip_on_launch": false,
"outpost_arn": "",
"owner_id": "000000000000",
"private_dns_hostname_type_on_launch": "ip-name",
"tags": {
"Environment": "dev",
"Name": "datacenter-dev-subnet",
"Project": "datacenter"
},
"tags_all": {
"Environment": "dev",
"Name": "datacenter-dev-subnet",
"Project": "datacenter"
},
"timeouts": null,
"vpc_id": "vpc-f675e83a9a305ab7f"
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6MTIwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMSJ9",
"dependencies": [
"module.network.aws_vpc.vpc"
]
}
]
},
{
"module": "module.network",
"mode": "managed",
"type": "aws_vpc",
"name": "vpc",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": [
{
"schema_version": 1,
"attributes": {
"arn": "arn:aws:ec2:us-east-1:000000000000:vpc/vpc-f675e83a9a305ab7f",
"assign_generated_ipv6_cidr_block": false,
"cidr_block": "10.0.0.0/16",
"default_network_acl_id": "acl-4354644bbeb7aaeb2",
"default_route_table_id": "rtb-634f3175ba6bed99d",
"default_security_group_id": "sg-696597b756e13cb7f",
"dhcp_options_id": "default",
"enable_dns_hostnames": false,
"enable_dns_support": true,
"enable_network_address_usage_metrics": false,
"id": "vpc-f675e83a9a305ab7f",
"instance_tenancy": "default",
"ipv4_ipam_pool_id": null,
"ipv4_netmask_length": null,
"ipv6_association_id": "",
"ipv6_cidr_block": "",
"ipv6_cidr_block_network_border_group": "",
"ipv6_ipam_pool_id": "",
"ipv6_netmask_length": 0,
"main_route_table_id": "rtb-634f3175ba6bed99d",
"owner_id": "000000000000",
"tags": {
"Environment": "dev",
"Name": "datacenter-dev-vpc",
"Project": "datacenter"
},
"tags_all": {
"Environment": "dev",
"Name": "datacenter-dev-vpc",
"Project": "datacenter"
}
},
"sensitive_attributes": [],
"private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ=="
}
]
}
],
"check_results": [
{
"object_kind": "var",
"config_addr": "var.KKE_INSTANCE_TYPE",
"status": "pass",
"objects": [
{
"object_addr": "var.KKE_INSTANCE_TYPE",
"status": "pass"
}
]
}
]
}
prod/terraform.tfstate
{
"version": 4,
"terraform_version": "1.11.0",
"serial": 4,
"lineage": "d84d82b8-1f26-7ef2-b5cb-d619473eedfe",
"outputs": {
"kke_instance_name": {
"value": "datacenter-prod-ec2",
"type": "string"
},
"kke_subnet_name": {
"value": "datacenter-prod-subnet",
"type": "string"
},
"kke_vpc_name": {
"value": "datacenter-prod-vpc",
"type": "string"
}
},
"resources": [
{
"module": "module.compute",
"mode": "managed",
"type": "aws_instance",
"name": "ec2",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": [
{
"schema_version": 1,
"attributes": {
"ami": "ami-0c94855ba95c71c99",
"arn": "arn:aws:ec2:us-east-1::instance/i-7a3d79504ddf6a653",
"associate_public_ip_address": false,
"availability_zone": "us-east-1d",
"capacity_reservation_specification": [],
"cpu_core_count": null,
"cpu_options": [],
"cpu_threads_per_core": null,
"credit_specification": [],
"disable_api_stop": false,
"disable_api_termination": false,
"ebs_block_device": [],
"ebs_optimized": false,
"enable_primary_ipv6": null,
"enclave_options": [],
"ephemeral_block_device": [],
"get_password_data": false,
"hibernation": false,
"host_id": "",
"host_resource_group_arn": null,
"iam_instance_profile": "",
"id": "i-7a3d79504ddf6a653",
"instance_initiated_shutdown_behavior": "stop",
"instance_lifecycle": "",
"instance_market_options": [],
"instance_state": "running",
"instance_type": "t3.large",
"ipv6_address_count": 0,
"ipv6_addresses": [],
"key_name": "",
"launch_template": [],
"maintenance_options": [],
"metadata_options": [
{
"http_endpoint": "enabled",
"http_protocol_ipv6": "disabled",
"http_put_response_hop_limit": 1,
"http_tokens": "optional",
"instance_metadata_tags": "disabled"
}
],
"monitoring": false,
"network_interface": [],
"outpost_arn": "",
"password_data": "",
"placement_group": "",
"placement_partition_number": 0,
"primary_network_interface_id": "eni-c05653dda83504b09",
"private_dns": "ip-10-0-1-4.ec2.internal",
"private_dns_name_options": [],
"private_ip": "10.0.1.4",
"public_dns": "None",
"public_ip": "",
"root_block_device": [
{
"delete_on_termination": true,
"device_name": "/dev/sda1",
"encrypted": false,
"iops": 0,
"kms_key_id": "",
"tags": {},
"tags_all": {},
"throughput": 0,
"volume_id": "vol-71a7bf3cbe1eca5e7",
"volume_size": 8,
"volume_type": "gp2"
}
],
"secondary_private_ips": [],
"security_groups": [],
"source_dest_check": true,
"spot_instance_request_id": "",
"subnet_id": "subnet-98e2525034dedb910",
"tags": {
"Environment": "prod",
"Name": "datacenter-prod-ec2",
"Project": "datacenter"
},
"tags_all": {
"Environment": "prod",
"Name": "datacenter-prod-ec2",
"Project": "datacenter"
},
"tenancy": "default",
"timeouts": null,
"user_data": null,
"user_data_base64": null,
"user_data_replace_on_change": false,
"volume_tags": null,
"vpc_security_group_ids": []
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6MTIwMDAwMDAwMDAwMCwicmVhZCI6OTAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMSJ9",
"dependencies": [
"module.network.aws_subnet.subnet",
"module.network.aws_vpc.vpc"
]
}
]
},
{
"module": "module.network",
"mode": "managed",
"type": "aws_subnet",
"name": "subnet",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": [
{
"schema_version": 1,
"attributes": {
"arn": "arn:aws:ec2:us-east-1:000000000000:subnet/subnet-98e2525034dedb910",
"assign_ipv6_address_on_creation": false,
"availability_zone": "us-east-1d",
"availability_zone_id": "use1-az4",
"cidr_block": "10.0.1.0/24",
"customer_owned_ipv4_pool": "",
"enable_dns64": false,
"enable_lni_at_device_index": 0,
"enable_resource_name_dns_a_record_on_launch": false,
"enable_resource_name_dns_aaaa_record_on_launch": false,
"id": "subnet-98e2525034dedb910",
"ipv6_cidr_block": "",
"ipv6_cidr_block_association_id": "",
"ipv6_native": false,
"map_customer_owned_ip_on_launch": false,
"map_public_ip_on_launch": false,
"outpost_arn": "",
"owner_id": "000000000000",
"private_dns_hostname_type_on_launch": "ip-name",
"tags": {
"Environment": "prod",
"Name": "datacenter-prod-subnet",
"Project": "datacenter"
},
"tags_all": {
"Environment": "prod",
"Name": "datacenter-prod-subnet",
"Project": "datacenter"
},
"timeouts": null,
"vpc_id": "vpc-f4f695e60e7eae108"
},
"sensitive_attributes": [],
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6MTIwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMSJ9",
"dependencies": [
"module.network.aws_vpc.vpc"
]
}
]
},
{
"module": "module.network",
"mode": "managed",
"type": "aws_vpc",
"name": "vpc",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": [
{
"schema_version": 1,
"attributes": {
"arn": "arn:aws:ec2:us-east-1:000000000000:vpc/vpc-f4f695e60e7eae108",
"assign_generated_ipv6_cidr_block": false,
"cidr_block": "10.0.0.0/16",
"default_network_acl_id": "acl-8c1ea6150fd367f21",
"default_route_table_id": "rtb-a12110e5fdab68e29",
"default_security_group_id": "sg-8162cd64576c88140",
"dhcp_options_id": "default",
"enable_dns_hostnames": false,
"enable_dns_support": true,
"enable_network_address_usage_metrics": false,
"id": "vpc-f4f695e60e7eae108",
"instance_tenancy": "default",
"ipv4_ipam_pool_id": null,
"ipv4_netmask_length": null,
"ipv6_association_id": "",
"ipv6_cidr_block": "",
"ipv6_cidr_block_network_border_group": "",
"ipv6_ipam_pool_id": "",
"ipv6_netmask_length": 0,
"main_route_table_id": "rtb-a12110e5fdab68e29",
"owner_id": "000000000000",
"tags": {
"Environment": "prod",
"Name": "datacenter-prod-vpc",
"Project": "datacenter"
},
"tags_all": {
"Environment": "prod",
"Name": "datacenter-prod-vpc",
"Project": "datacenter"
}
},
"sensitive_attributes": [],
"private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ=="
}
]
}
],
"check_results": [
{
"object_kind": "var",
"config_addr": "var.KKE_INSTANCE_TYPE",
"status": "pass",
"objects": [
{
"object_addr": "var.KKE_INSTANCE_TYPE",
"status": "pass"
}
]
}
]
}