linode / terraform-provider-linode

Terraform Linode provider
https://www.terraform.io/docs/providers/linode/
Mozilla Public License 2.0
191 stars 92 forks source link

Add RequiresReplace plan modifier to linode_id for linode_instance_shared_ips resource #1464

Closed zliang-akamai closed 3 weeks ago

zliang-akamai commented 1 month ago

Resolves #1446

šŸ“ Description

Add RequiresReplace plan modifier to the linode_id attribute of linode_instance_shared_ips resource to fix the Linode ID update issue.

āœ”ļø How to Test

Automated Testing

make PKG_NAME=linode/instancesharedips int-test

Manual Testing

Step 1

terraform apply or tofu apply

resource "linode_instance" "primary" {
  label           = "primary"
  image           = "linode/ubuntu22.04"
  region          = "us-mia"
  type            = "g6-nanode-1"
}

resource "linode_instance" "secondary" {
  label           = "secondary"
  image           = "linode/ubuntu22.04"
  region          = "us-mia"
  type            = "g6-nanode-1"
}

resource "linode_instance_shared_ips" "share-primary" {
  linode_id = linode_instance.secondary.id
  addresses = [linode_instance_ip.primary.address]
}

resource "linode_instance_ip" "primary" {
  linode_id = linode_instance.primary.id
}

Step 2

terraform apply or tofu apply

resource "linode_instance" "primary" {
  label           = "primary"
  image           = "linode/ubuntu22.04"
  region          = "us-mia"
  type            = "g6-nanode-1"
}

resource "linode_instance" "tertiary" {
  label           = "tertiary"
  image           = "linode/ubuntu22.04"
  region          = "us-mia"
  type            = "g6-nanode-1"
}

resource "linode_instance_shared_ips" "share-primary" {
  linode_id = linode_instance.tertiary.id
  addresses = [linode_instance_ip.primary.address]
}

resource "linode_instance_ip" "primary" {
  linode_id = linode_instance.primary.id
}

Checking the tertiary instance in Linode Cloud Manager, make sure the shared IP is in its networking configuration.

image