Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

coder metadata not shown #428

Open
Open
@anasfanani

Description

@anasfanani

Im using coder template aws.

resource "aws_vpc" "main" {  cidr_block           = "10.0.0.0/16"  enable_dns_hostnames = true  enable_dns_support   = true  tags = {    Name = "coder-vpc"  }}resource "aws_subnet" "main" {  vpc_id                  = aws_vpc.main.id  cidr_block              = "10.0.1.0/24"  availability_zone       = "${data.coder_parameter.region.value}a"  map_public_ip_on_launch = true  tags = {    Name = "coder-subnet"  }}resource "aws_internet_gateway" "main" {  vpc_id = aws_vpc.main.id  tags = {    Name = "coder-igw"  }}resource "aws_route_table" "main" {  vpc_id = aws_vpc.main.id  route {    cidr_block = "0.0.0.0/0"    gateway_id = aws_internet_gateway.main.id  }  tags = {    Name = "coder-rt"  }}resource "aws_route_table_association" "main" {  subnet_id      = aws_subnet.main.id  route_table_id = aws_route_table.main.id}resource "aws_security_group" "allow_all" {  name        = "allow_all"  description = "Allow all inbound traffic and all outbound traffic"  vpc_id      = aws_vpc.main.id  tags = {    Name = "allow_all"  }}resource "aws_vpc_security_group_ingress_rule" "allow_all_traffic_ipv4" {  security_group_id = aws_security_group.allow_all.id  cidr_ipv4         = "0.0.0.0/0"  ip_protocol       = "-1" # semantically equivalent to all ports}resource "aws_vpc_security_group_ingress_rule" "allow_all_traffic_ipv6" {  security_group_id = aws_security_group.allow_all.id  cidr_ipv6         = "::/0"  ip_protocol       = "-1" # semantically equivalent to all ports}resource "aws_vpc_security_group_egress_rule" "allow_all_traffic_ipv4" {  security_group_id = aws_security_group.allow_all.id  cidr_ipv4         = "0.0.0.0/0"  ip_protocol       = "-1" # semantically equivalent to all ports}resource "aws_vpc_security_group_egress_rule" "allow_all_traffic_ipv6" {  security_group_id = aws_security_group.allow_all.id  cidr_ipv6         = "::/0"  ip_protocol       = "-1" # semantically equivalent to all ports}resource "aws_eip" "dev" {  instance = aws_instance.dev.id  domain   = "vpc"}resource "aws_eip_association" "eip_assoc" {  instance_id   = aws_instance.dev.id  allocation_id = aws_eip.dev.id}resource "aws_instance" "dev" {  ami               = data.aws_ami.ubuntu.id  availability_zone = "${data.coder_parameter.region.value}a"  instance_type     = data.coder_parameter.instance_type.value  subnet_id         = aws_subnet.main.id  vpc_security_group_ids = [    aws_security_group.allow_all.id  ]  key_name  = data.coder_workspace.me.name  user_data = data.cloudinit_config.user_data.rendered  tags = {    Name = "coder-${data.coder_workspace_owner.me.name}-${data.coder_workspace.me.name}"    # Required if you are using our example policy, see template README    Coder_Provisioned = "true"  }  lifecycle {    ignore_changes = [ami]  }}resource "coder_metadata" "workspace_info" {  count       = data.coder_workspace.me.start_count  resource_id = aws_instance.dev.id  hide        = false  item {    key   = "region"    value = data.coder_parameter.region.value  }  item {    key   = "instance type"    value = aws_instance.dev.instance_type  }  item {    key   = "disk"    value = "${aws_instance.dev.root_block_device[0].volume_size} GiB"  }  item {    key   = "public ip"    value = aws_eip.dev.public_ip  }  item {    key   = "public dns"    value = aws_eip.dev.public_dns  }}

Log:

Terraform 1.12.2coder_agent.main: Plan to createmodule.vscode-web[0].coder_app.vscode-web: Plan to createmodule.vscode-web[0].coder_script.vscode-web: Plan to createaws_key_pair.owner: Plan to createaws_vpc.main: Plan to createdata.cloudinit_config.user_data: Plan to readaws_internet_gateway.main: Plan to createaws_subnet.main: Plan to createaws_security_group.allow_all: Plan to createaws_route_table.main: Plan to createaws_route_table_association.main: Plan to createaws_vpc_security_group_egress_rule.allow_all_traffic_ipv4: Plan to createaws_vpc_security_group_egress_rule.allow_all_traffic_ipv6: Plan to createaws_vpc_security_group_ingress_rule.allow_all_traffic_ipv4: Plan to createaws_vpc_security_group_ingress_rule.allow_all_traffic_ipv6: Plan to createaws_instance.dev: Plan to createaws_ec2_instance_state.dev: Plan to createaws_eip.dev: Plan to createaws_eip_association.eip_assoc: Plan to createcoder_metadata.workspace_info[0]: Plan to createcoder_agent.main: Creating...coder_agent.main: Creation complete after 0s [id=4722719b-7e5a-4173-bc89-b3a365787936]module.vscode-web[0].coder_app.vscode-web: Creating...module.vscode-web[0].coder_script.vscode-web: Creating...module.vscode-web[0].coder_app.vscode-web: Creation complete after 0s [id=a0f3f414-9f98-4af1-a9d1-20f2bf1bb796]module.vscode-web[0].coder_script.vscode-web: Creation complete after 1s [id=d1587801-5f16-4c53-943c-f89fabc192b6]aws_key_pair.owner: Creating...aws_vpc.main: Creating...aws_key_pair.owner: Creation complete after 1s [id=amber-chimpanzee-4]data.cloudinit_config.user_data: Refreshing...data.cloudinit_config.user_data: Refresh complete after 0s [id=3779634824]aws_vpc.main: Still creating... [10s elapsed]aws_vpc.main: Creation complete after 13s [id=vpc-0dd5cbcffeac77348]aws_internet_gateway.main: Creating...aws_security_group.allow_all: Creating...aws_subnet.main: Creating...aws_internet_gateway.main: Creation complete after 0s [id=igw-0431d4adce409cfd3]aws_route_table.main: Creating...aws_route_table.main: Creation complete after 1s [id=rtb-0f3e9ea396c45f29c]aws_security_group.allow_all: Creation complete after 2s [id=sg-008d9f0ee46fdeb2f]aws_vpc_security_group_ingress_rule.allow_all_traffic_ipv4: Creating...aws_vpc_security_group_egress_rule.allow_all_traffic_ipv6: Creating...aws_vpc_security_group_ingress_rule.allow_all_traffic_ipv6: Creating...aws_vpc_security_group_egress_rule.allow_all_traffic_ipv4: Creating...aws_vpc_security_group_ingress_rule.allow_all_traffic_ipv4: Creation complete after 0s [id=sgr-0f2c9c9c3c9bbfb31]aws_vpc_security_group_egress_rule.allow_all_traffic_ipv6: Creation complete after 0s [id=sgr-066eb7d7a91198ae6]aws_vpc_security_group_ingress_rule.allow_all_traffic_ipv6: Creation complete after 1s [id=sgr-03a75204087d488bf]aws_vpc_security_group_egress_rule.allow_all_traffic_ipv4: Creation complete after 1s [id=sgr-050a28edbcafc501e]aws_subnet.main: Still creating... [10s elapsed]aws_subnet.main: Creation complete after 11s [id=subnet-09c86742a6fbe355b]aws_route_table_association.main: Creating...aws_instance.dev: Creating...aws_route_table_association.main: Creation complete after 1s [id=rtbassoc-01fd7c6c8deae5189]aws_instance.dev: Still creating... [10s elapsed]aws_instance.dev: Creation complete after 14s [id=i-0afe55eb7577a7fc2]aws_ec2_instance_state.dev: Creating...aws_eip.dev: Creating...aws_eip.dev: Creation complete after 2s [id=eipalloc-0bf226c8779a86b76]aws_eip_association.eip_assoc: Creating...coder_metadata.workspace_info[0]: Creating...coder_metadata.workspace_info[0]: Creation complete after 0s [id=b74a5d2d-ead7-4d9d-bdc5-e5a6b509722e]aws_eip_association.eip_assoc: Creation complete after 1s [id=eipassoc-0945951d48c66d90a]aws_ec2_instance_state.dev: Still creating... [10s elapsed]aws_ec2_instance_state.dev: Creation complete after 10s [id=i-0afe55eb7577a7fc2]Apply complete! Resources: 19 added, 0 changed, 0 destroyed.Outputs: 0

Output is:

Image

Then i remove aws_eip

# resource "aws_eip" "dev" {#   instance = aws_instance.dev.id#   domain   = "vpc"# }# resource "aws_eip_association" "eip_assoc" {#   instance_id   = aws_instance.dev.id#   allocation_id = aws_eip.dev.id# }

Change coder metadata

  item {    key   = "public ip"    value = aws_instance.dev.public_ip  }  item {    key   = "public dns"    value = aws_instance.dev.public_dns  }

Log:

Terraform 1.12.2coder_agent.main: Plan to createmodule.vscode-web[0].coder_app.vscode-web: Plan to createmodule.vscode-web[0].coder_script.vscode-web: Plan to createaws_key_pair.owner: Plan to createaws_vpc.main: Plan to createdata.cloudinit_config.user_data: Plan to readaws_internet_gateway.main: Plan to createaws_subnet.main: Plan to createaws_security_group.allow_all: Plan to createaws_route_table.main: Plan to createaws_route_table_association.main: Plan to createaws_vpc_security_group_ingress_rule.allow_all_traffic_ipv6: Plan to createaws_vpc_security_group_egress_rule.allow_all_traffic_ipv6: Plan to createaws_vpc_security_group_ingress_rule.allow_all_traffic_ipv4: Plan to createaws_vpc_security_group_egress_rule.allow_all_traffic_ipv4: Plan to createaws_instance.dev: Plan to createaws_ec2_instance_state.dev: Plan to createcoder_metadata.workspace_info[0]: Plan to createcoder_agent.main: Creating...coder_agent.main: Creation complete after 0s [id=f488ed37-a6ea-47ba-a8a4-14e7040e51fb]module.vscode-web[0].coder_app.vscode-web: Creating...module.vscode-web[0].coder_app.vscode-web: Creation complete after 0s [id=46daf579-c62c-46fb-80aa-bf373969b209]module.vscode-web[0].coder_script.vscode-web: Creating...module.vscode-web[0].coder_script.vscode-web: Creation complete after 0s [id=536c3227-ebe7-4803-b965-5e14f053ed62]aws_key_pair.owner: Creating...aws_vpc.main: Creating...aws_key_pair.owner: Creation complete after 1s [id=magenta-halibut-69]data.cloudinit_config.user_data: Refreshing...data.cloudinit_config.user_data: Refresh complete after 0s [id=873515121]aws_vpc.main: Still creating... [10s elapsed]aws_vpc.main: Creation complete after 12s [id=vpc-0501c39d417ae43d5]aws_internet_gateway.main: Creating...aws_security_group.allow_all: Creating...aws_subnet.main: Creating...aws_internet_gateway.main: Creation complete after 1s [id=igw-093cef8088979d687]aws_route_table.main: Creating...aws_route_table.main: Creation complete after 2s [id=rtb-097655b71e5574d70]aws_security_group.allow_all: Creation complete after 3s [id=sg-0a0a2d95770e73890]aws_vpc_security_group_egress_rule.allow_all_traffic_ipv4: Creating...aws_vpc_security_group_egress_rule.allow_all_traffic_ipv6: Creating...aws_vpc_security_group_ingress_rule.allow_all_traffic_ipv4: Creating...aws_vpc_security_group_ingress_rule.allow_all_traffic_ipv6: Creating...aws_vpc_security_group_ingress_rule.allow_all_traffic_ipv4: Creation complete after 0s [id=sgr-02eacedfba7d7bb4c]aws_vpc_security_group_egress_rule.allow_all_traffic_ipv4: Creation complete after 0s [id=sgr-03872bbd4b721bc6b]aws_vpc_security_group_egress_rule.allow_all_traffic_ipv6: Creation complete after 0s [id=sgr-0ddaefbd6ae55f302]aws_vpc_security_group_ingress_rule.allow_all_traffic_ipv6: Creation complete after 0s [id=sgr-006d4b68a781d4c69]aws_subnet.main: Still creating... [10s elapsed]aws_subnet.main: Creation complete after 12s [id=subnet-03305999f8bbef5aa]aws_route_table_association.main: Creating...aws_instance.dev: Creating...aws_route_table_association.main: Creation complete after 0s [id=rtbassoc-03e83c7177894ca9e]aws_instance.dev: Still creating... [10s elapsed]aws_instance.dev: Creation complete after 13s [id=i-06499f1df61f4e2bc]aws_ec2_instance_state.dev: Creating...coder_metadata.workspace_info[0]: Creating...coder_metadata.workspace_info[0]: Creation complete after 0s [id=3038dd14-7081-4589-adb2-82cb12bc26c0]aws_ec2_instance_state.dev: Still creating... [10s elapsed]aws_ec2_instance_state.dev: Creation complete after 10s [id=i-06499f1df61f4e2bc]Apply complete! Resources: 17 added, 0 changed, 0 destroyed.Outputs: 0

Output:
Image

The problem usingaws_instance.dev.public_ip is output blank when restart workspace.

Log:

Terraform 1.12.2module.vscode-web[0].coder_app.vscode-web: Plan to createmodule.vscode-web[0].coder_script.vscode-web: Plan to createcoder_metadata.workspace_info[0]: Plan to createaws_ec2_instance_state.dev: Plan to updatemodule.vscode-web[0].coder_script.vscode-web: Creating...module.vscode-web[0].coder_app.vscode-web: Creating...module.vscode-web[0].coder_app.vscode-web: Creation complete after 0s [id=531d48ca-40db-4b52-9a3a-9286cca9c755]module.vscode-web[0].coder_script.vscode-web: Creation complete after 0s [id=862f4e51-c611-4065-ac75-ad4671d4fb92]coder_metadata.workspace_info[0]: Creating...aws_ec2_instance_state.dev: Modifying... [id=i-06499f1df61f4e2bc]coder_metadata.workspace_info[0]: Creation complete after 0s [id=706b61ea-ad0a-4991-8a37-903c577ea4f5]aws_ec2_instance_state.dev: Still modifying... [10s elapsed]aws_ec2_instance_state.dev: Still modifying... [20s elapsed]aws_ec2_instance_state.dev: Modifications complete after 22s [id=i-06499f1df61f4e2bc]Apply complete! Resources: 3 added, 1 changed, 0 destroyed.Outputs: 0
Image

Edit:

I was ask gpt and got this solution.

To always show the current public IP (even after restart), use adata source to fetch the instance details dynamically.

Add this data source:

data "aws_instance" "dev" {  instance_id = aws_instance.dev.id}

Then update your coder_metadata to use the data source:

item {  key   = "public ip"  value = data.aws_instance.dev.public_ip}item {  key   = "public dns"  value = data.aws_instance.dev.public_dns}

This way, the metadata will always reflect the current public IP and DNS, even after restarts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions


      [8]ページ先頭

      ©2009-2025 Movatter.jp