Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add support for creating instances using the new VNI #737

Merged
merged 17 commits into from
Nov 11, 2024
Merged

Conversation

Aashiq-J
Copy link
Member

@Aashiq-J Aashiq-J commented Oct 22, 2024

Description

Release required?

  • No release
  • Patch release (x.x.X)
  • Minor release (x.X.x)
  • Major release (X.x.x)
Release notes content

Run the pipeline

If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.

Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:

/run pipeline

Checklist for reviewers

  • If relevant, a test for the change is included or updated with this PR.
  • If relevant, documentation for the change is included or updated with this PR.

For mergers

  • Use a conventional commit message to set the release level. Follow the guidelines.
  • Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
  • Use the Squash and merge option.

@Aashiq-J Aashiq-J requested a review from toddgiguere as a code owner October 22, 2024 04:37
@Aashiq-J
Copy link
Member Author

/run pipeline

@Aashiq-J
Copy link
Member Author

/run pipeline

@Aashiq-J
Copy link
Member Author

Aashiq-J commented Oct 22, 2024

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create
  ~ update in-place
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # module.slz_vsi.ibm_is_floating_ip.latest_secondary_fip["vni-comp-second-subnet-a"] will be created
  + resource "ibm_is_floating_ip" "latest_secondary_fip" {
      + access_tags             = (known after apply)
      + address                 = (known after apply)
      + crn                     = (known after apply)
      + id                      = (known after apply)
      + name                    = "vni-comp-second-subnet-a"
      + resource_controller_url = (known after apply)
      + resource_crn            = (known after apply)
      + resource_group          = "12d9491e4d0f4e958c29a679cbeaa237"
      + resource_group_name     = (known after apply)
      + resource_name           = (known after apply)
      + resource_status         = (known after apply)
      + status                  = (known after apply)
      + tags                    = (known after apply)
      + target                  = (known after apply)
      + target_list             = (known after apply)
      + zone                    = (known after apply)
    }

  # module.slz_vsi.ibm_is_floating_ip.latest_secondary_fip["vni-comp-second-subnet-b"] will be created
  + resource "ibm_is_floating_ip" "latest_secondary_fip" {
      + access_tags             = (known after apply)
      + address                 = (known after apply)
      + crn                     = (known after apply)
      + id                      = (known after apply)
      + name                    = "vni-comp-second-subnet-b"
      + resource_controller_url = (known after apply)
      + resource_crn            = (known after apply)
      + resource_group          = "12d9491e4d0f4e958c29a679cbeaa237"
      + resource_group_name     = (known after apply)
      + resource_name           = (known after apply)
      + resource_status         = (known after apply)
      + status                  = (known after apply)
      + tags                    = (known after apply)
      + target                  = (known after apply)
      + target_list             = (known after apply)
      + zone                    = (known after apply)
    }

  # module.slz_vsi.ibm_is_floating_ip.latest_secondary_fip["vni-comp-second-subnet-c"] will be created
  + resource "ibm_is_floating_ip" "latest_secondary_fip" {
      + access_tags             = (known after apply)
      + address                 = (known after apply)
      + crn                     = (known after apply)
      + id                      = (known after apply)
      + name                    = "vni-comp-second-subnet-c"
      + resource_controller_url = (known after apply)
      + resource_crn            = (known after apply)
      + resource_group          = "12d9491e4d0f4e958c29a679cbeaa237"
      + resource_group_name     = (known after apply)
      + resource_name           = (known after apply)
      + resource_status         = (known after apply)
      + status                  = (known after apply)
      + tags                    = (known after apply)
      + target                  = (known after apply)
      + target_list             = (known after apply)
      + zone                    = (known after apply)
    }

  # module.slz_vsi.ibm_is_floating_ip.vsi_fip["vni-comp-vpc-subnet-a-0"] will be updated in-place
  ~ resource "ibm_is_floating_ip" "vsi_fip" {
        id                      = "r006-661ca139-62a3-4ada-85cb-c0ed6a1c9b82"
        name                    = "vni-comp-51c9-001-fip"
        tags                    = []
      ~ target                  = "0717-7ab0cdd9-8546-487f-96f0-7d8fa531745a" -> (known after apply)
        # (12 unchanged attributes hidden)
    }

  # module.slz_vsi.ibm_is_floating_ip.vsi_fip["vni-comp-vpc-subnet-b-0"] will be updated in-place
  ~ resource "ibm_is_floating_ip" "vsi_fip" {
        id                      = "r006-ea53dabf-67fd-46e0-afe1-8c93287e3062"
        name                    = "vni-comp-5b9b-001-fip"
        tags                    = []
      ~ target                  = "0727-210d667d-dbf0-4943-b69b-2da31c2ba691" -> (known after apply)
        # (12 unchanged attributes hidden)
    }

  # module.slz_vsi.ibm_is_floating_ip.vsi_fip["vni-comp-vpc-subnet-c-0"] will be updated in-place
  ~ resource "ibm_is_floating_ip" "vsi_fip" {
        id                      = "r006-f3516743-ddee-44f5-ad4c-5b7a0dd4eb97"
        name                    = "vni-comp-cc44-001-fip"
        tags                    = []
      ~ target                  = "0737-f8bd8e66-48f0-4799-a450-0e124a4eae83" -> (known after apply)
        # (12 unchanged attributes hidden)
    }

  # module.slz_vsi.ibm_is_instance.vsi["vni-comp-vpc-subnet-a-0"] must be replaced
-/+ resource "ibm_is_instance" "vsi" {
      ~ access_tags                       = [] -> (known after apply)
      ~ availability_policy_host_failure  = "restart" -> (known after apply)
      ~ bandwidth                         = 4000 -> (known after apply)
      ~ confidential_compute_mode         = "disabled" -> (known after apply)
      ~ crn                               = "crn:v1:bluemix:public:is:us-south-1:a/abac0df06b644a9cabc6e44f55b3880e::instance:0717_20aa8f2d-05eb-4e14-b9ce-d4b83568879f" -> (known after apply)
      + default_trusted_profile_auto_link = (known after apply)
      ~ disks                             = [] -> (known after apply)
      ~ enable_secure_boot                = false -> (known after apply)
      ~ gpu                               = [] -> (known after apply)
      ~ id                                = "0717_20aa8f2d-05eb-4e14-b9ce-d4b83568879f" -> (known after apply)
      ~ lifecycle_reasons                 = [] -> (known after apply)
      ~ lifecycle_state                   = "stable" -> (known after apply)
      ~ memory                            = 4 -> (known after apply)
      ~ metadata_service_enabled          = false -> (known after apply)
        name                              = "vni-comp-51c9-001"
      ~ numa_count                        = 1 -> (known after apply)
      ~ placement_target                  = [
          - {
              - crn           = "crn:v1:bluemix:public:is:us-south:a/abac0df06b644a9cabc6e44f55b3880e::placement-group:r006-d3c382b5-9ed6-4af2-afa1-b5e907a83562"
              - deleted       = []
              - href          = "https://us-south.iaas.cloud.ibm.com/v1/placement_groups/r006-d3c382b5-9ed6-4af2-afa1-b5e907a83562"
              - id            = "r006-d3c382b5-9ed6-4af2-afa1-b5e907a83562"
              - name          = "vni-comp-host-spread"
              - resource_type = "placement_group"
            },
        ] -> (known after apply)
      ~ reservation                       = [] -> (known after apply)
      ~ resource_controller_url           = "https://cloud.ibm.com/vpc-ext/compute/vs" -> (known after apply)
      ~ resource_crn                      = "crn:v1:bluemix:public:is:us-south-1:a/abac0df06b644a9cabc6e44f55b3880e::instance:0717_20aa8f2d-05eb-4e14-b9ce-d4b83568879f" -> (known after apply)
      ~ resource_group_name               = "vni-comp-resource-group" -> (known after apply)
      ~ resource_name                     = "vni-comp-51c9-001" -> (known after apply)
      ~ resource_status                   = "running" -> (known after apply)
      ~ status                            = "running" -> (known after apply)
      ~ status_reasons                    = [] -> (known after apply)
      ~ tags                              = [] -> (known after apply)
      ~ total_network_bandwidth           = 3000 -> (known after apply)
      ~ total_volume_bandwidth            = 1000 -> (known after apply)
      ~ vcpu                              = [
          - {
              - architecture = "amd64"
              - count        = 2
              - manufacturer = "intel"
            },
        ] -> (known after apply)
      ~ volume_attachments                = [
          - {
              - id          = "0717-e393c487-36c4-4d08-8348-12e0a6cc3c7f"
              - name        = "concert-shine-usable-surgery"
              - volume_crn  = "crn:v1:bluemix:public:is:us-south-1:a/abac0df06b644a9cabc6e44f55b3880e::volume:r006-8a99d928-f44b-44a9-9b0d-08acd428ff5d"
              - volume_id   = "r006-8a99d928-f44b-44a9-9b0d-08acd428ff5d"
              - volume_name = "shudder-singular-stretch-chapman"
            },
          - {
              - id          = "0717-1c7a0ee5-759a-43ae-b078-91bb374ddcb7"
              - name        = "yoyo-gatherer-hunger-neuron"
              - volume_crn  = "crn:v1:bluemix:public:is:us-south-1:a/abac0df06b644a9cabc6e44f55b3880e::volume:r006-a2f2ac66-f825-4ed4-9a5f-df69ae176cde"
              - volume_id   = "r006-a2f2ac66-f825-4ed4-9a5f-df69ae176cde"
              - volume_name = "vni-comp-51c9-001-vni-comp"
            },
        ] -> (known after apply)
        # (10 unchanged attributes hidden)

      ~ boot_volume {
          ~ iops               = 3000 -> (known after apply)
          ~ name               = "shudder-singular-stretch-chapman" -> (known after apply)
          ~ profile            = "general-purpose" -> (known after apply)
          ~ size               = 100 -> (known after apply)
          + snapshot           = (known after apply)
          + snapshot_crn       = (known after apply)
          ~ tags               = [] -> (known after apply)
          ~ volume_id          = "r006-8a99d928-f44b-44a9-9b0d-08acd428ff5d" -> (known after apply)
            # (2 unchanged attributes hidden)
        }

      ~ metadata_service {
          + access_tags                       = (known after apply)
          + action                            = (known after apply)
          + auto_delete_volume                = (known after apply)
          + availability_policy_host_failure  = (known after apply)
          + bandwidth                         = (known after apply)
          + confidential_compute_mode         = (known after apply)
          + crn                               = (known after apply)
          + dedicated_host                    = (known after apply)
          + dedicated_host_group              = (known after apply)
          + default_trusted_profile_auto_link = (known after apply)
          + default_trusted_profile_target    = (known after apply)
          + disks                             = (known after apply)
          + enable_secure_boot                = (known after apply)
          + force_action                      = (known after apply)
          + force_recovery_time               = (known after apply)
          + gpu                               = (known after apply)
          + id                                = (known after apply)
          + image                             = (known after apply)
          + instance_template                 = (known after apply)
          + keys                              = (known after apply)
          + lifecycle_reasons                 = (known after apply)
          + lifecycle_state                   = (known after apply)
          + memory                            = (known after apply)
          + metadata_service_enabled          = (known after apply)
          + name                              = (known after apply)
          + numa_count                        = (known after apply)
          + placement_group                   = (known after apply)
          + placement_target                  = (known after apply)
          + profile                           = (known after apply)
          + reservation                       = (known after apply)
          + resource_controller_url           = (known after apply)
          + resource_crn                      = (known after apply)
          + resource_group                    = (known after apply)
          + resource_group_name               = (known after apply)
          + resource_name                     = (known after apply)
          + resource_status                   = (known after apply)
          + status                            = (known after apply)
          + status_reasons                    = (known after apply)
          + tags                              = (known after apply)
          + total_network_bandwidth           = (known after apply)
          + total_volume_bandwidth            = (known after apply)
          + user_data                         = (known after apply)
          + vcpu                              = (known after apply)
          + volume_attachments                = (known after apply)
          + volumes                           = (known after apply)
          + vpc                               = (known after apply)
          + wait_before_delete                = (known after apply)
          + zone                              = (known after apply)
        } -> (known after apply)

      + network_attachments {
          + deleted       = (known after apply)
          + href          = (known after apply)
          + id            = (known after apply)
          + name          = "vni-comp-second-subnet-a"
          + resource_type = (known after apply)

          + virtual_network_interface {
              + allow_ip_spoofing             = false
              + auto_delete                   = true
              + enable_infrastructure_nat     = true
              + id                            = (known after apply)
              + name                          = (known after apply)
              + protocol_state_filtering_mode = (known after apply)
              + resource_group                = (known after apply)
              + resource_type                 = (known after apply)
              + security_groups               = [
                  + "r006-3cb85e5f-38a0-4773-8a32-f853c8bd44ca",
                ]
              + subnet                        = "0717-0bf00337-b1ce-4bf9-b30f-fd98874509a1"

              + ips (known after apply)

              + primary_ip (known after apply)
            }
        }

      ~ network_interfaces {
          + access_tags                       = (known after apply)
          + action                            = (known after apply)
          + auto_delete_volume                = (known after apply)
          + availability_policy_host_failure  = (known after apply)
          + bandwidth                         = (known after apply)
          + confidential_compute_mode         = (known after apply)
          + crn                               = (known after apply)
          + dedicated_host                    = (known after apply)
          + dedicated_host_group              = (known after apply)
          + default_trusted_profile_auto_link = (known after apply)
          + default_trusted_profile_target    = (known after apply)
          + disks                             = (known after apply)
          + enable_secure_boot                = (known after apply)
          + force_action                      = (known after apply)
          + force_recovery_time               = (known after apply)
          + gpu                               = (known after apply)
          + id                                = (known after apply)
          + image                             = (known after apply)
          + instance_template                 = (known after apply)
          + keys                              = (known after apply)
          + lifecycle_reasons                 = (known after apply)
          + lifecycle_state                   = (known after apply)
          + memory                            = (known after apply)
          + metadata_service_enabled          = (known after apply)
          + name                              = (known after apply)
          + numa_count                        = (known after apply)
          + placement_group                   = (known after apply)
          + placement_target                  = (known after apply)
          + profile                           = (known after apply)
          + reservation                       = (known after apply)
          + resource_controller_url           = (known after apply)
          + resource_crn                      = (known after apply)
          + resource_group                    = (known after apply)
          + resource_group_name               = (known after apply)
          + resource_name                     = (known after apply)
          + resource_status                   = (known after apply)
          + status                            = (known after apply)
          + status_reasons                    = (known after apply)
          + tags                              = (known after apply)
          + total_network_bandwidth           = (known after apply)
          + total_volume_bandwidth            = (known after apply)
          + user_data                         = (known after apply)
          + vcpu                              = (known after apply)
          + volume_attachments                = (known after apply)
          + volumes                           = (known after apply)
          + vpc                               = (known after apply)
          + wait_before_delete                = (known after apply)
          + zone                              = (known after apply)
        } -> (known after apply)

      + primary_network_attachment {
          + deleted       = (known after apply)
          + href          = (known after apply)
          + id            = (known after apply)
          + name          = "vni-comp-vpc-subnet-a-eth0"
          + resource_type = (known after apply)

          + virtual_network_interface {
              + allow_ip_spoofing             = false
              + auto_delete                   = true
              + enable_infrastructure_nat     = true
              + id                            = (known after apply)
              + name                          = (known after apply)
              + protocol_state_filtering_mode = (known after apply)
              + resource_group                = (known after apply)
              + resource_type                 = (known after apply)
              + security_groups               = [ # forces replacement
                  + "r006-3cb85e5f-38a0-4773-8a32-f853c8bd44ca",
                ]
              + subnet                        = "0717-77a4eb5f-8ad9-4439-b515-33f303b551c9" # forces replacement

              + ips (known after apply)

              + primary_ip (known after apply)
            }
        }

      ~ primary_network_interface {
          + access_tags                       = (known after apply)
          + action                            = (known after apply)
          + auto_delete_volume                = (known after apply)
          + availability_policy_host_failure  = (known after apply)
          + bandwidth                         = (known after apply)
          + confidential_compute_mode         = (known after apply)
          + crn                               = (known after apply)
          + dedicated_host                    = (known after apply)
          + dedicated_host_group              = (known after apply)
          + default_trusted_profile_auto_link = (known after apply)
          + default_trusted_profile_target    = (known after apply)
          + disks                             = (known after apply)
          + enable_secure_boot                = (known after apply)
          + force_action                      = (known after apply)
          + force_recovery_time               = (known after apply)
          + gpu                               = (known after apply)
          + id                                = (known after apply)
          + image                             = (known after apply)
          + instance_template                 = (known after apply)
          + keys                              = (known after apply)
          + lifecycle_reasons                 = (known after apply)
          + lifecycle_state                   = (known after apply)
          + memory                            = (known after apply)
          + metadata_service_enabled          = (known after apply)
          + name                              = (known after apply)
          + numa_count                        = (known after apply)
          + placement_group                   = (known after apply)
          + placement_target                  = (known after apply)
          + profile                           = (known after apply)
          + reservation                       = (known after apply)
          + resource_controller_url           = (known after apply)
          + resource_crn                      = (known after apply)
          + resource_group                    = (known after apply)
          + resource_group_name               = (known after apply)
          + resource_name                     = (known after apply)
          + resource_status                   = (known after apply)
          + status                            = (known after apply)
          + status_reasons                    = (known after apply)
          + tags                              = (known after apply)
          + total_network_bandwidth           = (known after apply)
          + total_volume_bandwidth            = (known after apply)
          + user_data                         = (known after apply)
          + vcpu                              = (known after apply)
          + volume_attachments                = (known after apply)
          + volumes                           = (known after apply)
          + vpc                               = (known after apply)
          + wait_before_delete                = (known after apply)
          + zone                              = (known after apply)
        } -> (known after apply)

      ~ reservation_affinity {
          + access_tags                       = (known after apply)
          + action                            = (known after apply)
          + auto_delete_volume                = (known after apply)
          + availability_policy_host_failure  = (known after apply)
          + bandwidth                         = (known after apply)
          + confidential_compute_mode         = (known after apply)
          + crn                               = (known after apply)
          + dedicated_host                    = (known after apply)
          + dedicated_host_group              = (known after apply)
          + default_trusted_profile_auto_link = (known after apply)
          + default_trusted_profile_target    = (known after apply)
          + disks                             = (known after apply)
          + enable_secure_boot                = (known after apply)
          + force_action                      = (known after apply)
          + force_recovery_time               = (known after apply)
          + gpu                               = (known after apply)
          + id                                = (known after apply)
          + image                             = (known after apply)
          + instance_template                 = (known after apply)
          + keys                              = (known after apply)
          + lifecycle_reasons                 = (known after apply)
          + lifecycle_state                   = (known after apply)
          + memory                            = (known after apply)
          + metadata_service_enabled          = (known after apply)
          + name                              = (known after apply)
          + numa_count                        = (known after apply)
          + placement_group                   = (known after apply)
          + placement_target                  = (known after apply)
          + profile                           = (known after apply)
          + reservation                       = (known after apply)
          + resource_controller_url           = (known after apply)
          + resource_crn                      = (known after apply)
          + resource_group                    = (known after apply)
          + resource_group_name               = (known after apply)
          + resource_name                     = (known after apply)
          + resource_status                   = (known after apply)
          + status                            = (known after apply)
          + status_reasons                    = (known after apply)
          + tags                              = (known after apply)
          + total_network_bandwidth           = (known after apply)
          + total_volume_bandwidth            = (known after apply)
          + user_data                         = (known after apply)
          + vcpu                              = (known after apply)
          + volume_attachments                = (known after apply)
          + volumes                           = (known after apply)
          + vpc                               = (known after apply)
          + wait_before_delete                = (known after apply)
          + zone                              = (known after apply)
        } -> (known after apply)
    }

  # module.slz_vsi.ibm_is_instance.vsi["vni-comp-vpc-subnet-b-0"] must be replaced
-/+ resource "ibm_is_instance" "vsi" {
      ~ access_tags                       = [] -> (known after apply)
      ~ availability_policy_host_failure  = "restart" -> (known after apply)
      ~ bandwidth                         = 4000 -> (known after apply)
      ~ confidential_compute_mode         = "disabled" -> (known after apply)
      ~ crn                               = "crn:v1:bluemix:public:is:us-south-2:a/abac0df06b644a9cabc6e44f55b3880e::instance:0727_5e624c56-c614-46e5-9d8a-869b6696fadc" -> (known after apply)
      + default_trusted_profile_auto_link = (known after apply)
      ~ disks                             = [] -> (known after apply)
      ~ enable_secure_boot                = false -> (known after apply)
      ~ gpu                               = [] -> (known after apply)
      ~ id                                = "0727_5e624c56-c614-46e5-9d8a-869b6696fadc" -> (known after apply)
      ~ lifecycle_reasons                 = [] -> (known after apply)
      ~ lifecycle_state                   = "stable" -> (known after apply)
      ~ memory                            = 4 -> (known after apply)
      ~ metadata_service_enabled          = false -> (known after apply)
        name                              = "vni-comp-5b9b-001"
      ~ numa_count                        = 1 -> (known after apply)
      ~ placement_target                  = [
          - {
              - crn           = "crn:v1:bluemix:public:is:us-south:a/abac0df06b644a9cabc6e44f55b3880e::placement-group:r006-d3c382b5-9ed6-4af2-afa1-b5e907a83562"
              - deleted       = []
              - href          = "https://us-south.iaas.cloud.ibm.com/v1/placement_groups/r006-d3c382b5-9ed6-4af2-afa1-b5e907a83562"
              - id            = "r006-d3c382b5-9ed6-4af2-afa1-b5e907a83562"
              - name          = "vni-comp-host-spread"
              - resource_type = "placement_group"
            },
        ] -> (known after apply)
      ~ reservation                       = [] -> (known after apply)
      ~ resource_controller_url           = "https://cloud.ibm.com/vpc-ext/compute/vs" -> (known after apply)
      ~ resource_crn                      = "crn:v1:bluemix:public:is:us-south-2:a/abac0df06b644a9cabc6e44f55b3880e::instance:0727_5e624c56-c614-46e5-9d8a-869b6696fadc" -> (known after apply)
      ~ resource_group_name               = "vni-comp-resource-group" -> (known after apply)
      ~ resource_name                     = "vni-comp-5b9b-001" -> (known after apply)
      ~ resource_status                   = "running" -> (known after apply)
      ~ status                            = "running" -> (known after apply)
      ~ status_reasons                    = [] -> (known after apply)
      ~ tags                              = [] -> (known after apply)
      ~ total_network_bandwidth           = 3000 -> (known after apply)
      ~ total_volume_bandwidth            = 1000 -> (known after apply)
      ~ vcpu                              = [
          - {
              - architecture = "amd64"
              - count        = 2
              - manufacturer = "intel"
            },
        ] -> (known after apply)
      ~ volume_attachments                = [
          - {
              - id          = "0727-bf36e7c2-864e-497e-86ca-de6688b6b8be"
              - name        = "tshirt-ground-slug-lily"
              - volume_crn  = "crn:v1:bluemix:public:is:us-south-2:a/abac0df06b644a9cabc6e44f55b3880e::volume:r006-85cbbe53-bfca-4874-818b-41dedc0db971"
              - volume_id   = "r006-85cbbe53-bfca-4874-818b-41dedc0db971"
              - volume_name = "half-evidence-wrecking-cabin"
            },
          - {
              - id          = "0727-4b486265-97e6-4662-a27f-6fbf57835475"
              - name        = "unstuck-grinning-agreeably-dripping"
              - volume_crn  = "crn:v1:bluemix:public:is:us-south-2:a/abac0df06b644a9cabc6e44f55b3880e::volume:r006-2b093772-d4ac-4ad2-8cd3-e675577e56e1"
              - volume_id   = "r006-2b093772-d4ac-4ad2-8cd3-e675577e56e1"
              - volume_name = "vni-comp-5b9b-001-vni-comp"
            },
        ] -> (known after apply)
        # (10 unchanged attributes hidden)

      ~ boot_volume {
          ~ iops               = 3000 -> (known after apply)
          ~ name               = "half-evidence-wrecking-cabin" -> (known after apply)
          ~ profile            = "general-purpose" -> (known after apply)
          ~ size               = 100 -> (known after apply)
          + snapshot           = (known after apply)
          + snapshot_crn       = (known after apply)
          ~ tags               = [] -> (known after apply)
          ~ volume_id          = "r006-85cbbe53-bfca-4874-818b-41dedc0db971" -> (known after apply)
            # (2 unchanged attributes hidden)
        }

      ~ metadata_service {
          + access_tags                       = (known after apply)
          + action                            = (known after apply)
          + auto_delete_volume                = (known after apply)
          + availability_policy_host_failure  = (known after apply)
          + bandwidth                         = (known after apply)
          + confidential_compute_mode         = (known after apply)
          + crn                               = (known after apply)
          + dedicated_host                    = (known after apply)
          + dedicated_host_group              = (known after apply)
          + default_trusted_profile_auto_link = (known after apply)
          + default_trusted_profile_target    = (known after apply)
          + disks                             = (known after apply)
          + enable_secure_boot                = (known after apply)
          + force_action                      = (known after apply)
          + force_recovery_time               = (known after apply)
          + gpu                               = (known after apply)
          + id                                = (known after apply)
          + image                             = (known after apply)
          + instance_template                 = (known after apply)
          + keys                              = (known after apply)
          + lifecycle_reasons                 = (known after apply)
          + lifecycle_state                   = (known after apply)
          + memory                            = (known after apply)
          + metadata_service_enabled          = (known after apply)
          + name                              = (known after apply)
          + numa_count                        = (known after apply)
          + placement_group                   = (known after apply)
          + placement_target                  = (known after apply)
          + profile                           = (known after apply)
          + reservation                       = (known after apply)
          + resource_controller_url           = (known after apply)
          + resource_crn                      = (known after apply)
          + resource_group                    = (known after apply)
          + resource_group_name               = (known after apply)
          + resource_name                     = (known after apply)
          + resource_status                   = (known after apply)
          + status                            = (known after apply)
          + status_reasons                    = (known after apply)
          + tags                              = (known after apply)
          + total_network_bandwidth           = (known after apply)
          + total_volume_bandwidth            = (known after apply)
          + user_data                         = (known after apply)
          + vcpu                              = (known after apply)
          + volume_attachments                = (known after apply)
          + volumes                           = (known after apply)
          + vpc                               = (known after apply)
          + wait_before_delete                = (known after apply)
          + zone                              = (known after apply)
        } -> (known after apply)

      + network_attachments {
          + deleted       = (known after apply)
          + href          = (known after apply)
          + id            = (known after apply)
          + name          = "vni-comp-second-subnet-b"
          + resource_type = (known after apply)

          + virtual_network_interface {
              + allow_ip_spoofing             = false
              + auto_delete                   = true
              + enable_infrastructure_nat     = true
              + id                            = (known after apply)
              + name                          = (known after apply)
              + protocol_state_filtering_mode = (known after apply)
              + resource_group                = (known after apply)
              + resource_type                 = (known after apply)
              + security_groups               = [
                  + "r006-3cb85e5f-38a0-4773-8a32-f853c8bd44ca",
                ]
              + subnet                        = "0727-ff70d830-9fcc-4c4e-be4c-9c617fc16a2b"

              + ips (known after apply)

              + primary_ip (known after apply)
            }
        }

      ~ network_interfaces {
          + access_tags                       = (known after apply)
          + action                            = (known after apply)
          + auto_delete_volume                = (known after apply)
          + availability_policy_host_failure  = (known after apply)
          + bandwidth                         = (known after apply)
          + confidential_compute_mode         = (known after apply)
          + crn                               = (known after apply)
          + dedicated_host                    = (known after apply)
          + dedicated_host_group              = (known after apply)
          + default_trusted_profile_auto_link = (known after apply)
          + default_trusted_profile_target    = (known after apply)
          + disks                             = (known after apply)
          + enable_secure_boot                = (known after apply)
          + force_action                      = (known after apply)
          + force_recovery_time               = (known after apply)
          + gpu                               = (known after apply)
          + id                                = (known after apply)
          + image                             = (known after apply)
          + instance_template                 = (known after apply)
          + keys                              = (known after apply)
          + lifecycle_reasons                 = (known after apply)
          + lifecycle_state                   = (known after apply)
          + memory                            = (known after apply)
          + metadata_service_enabled          = (known after apply)
          + name                              = (known after apply)
          + numa_count                        = (known after apply)
          + placement_group                   = (known after apply)
          + placement_target                  = (known after apply)
          + profile                           = (known after apply)
          + reservation                       = (known after apply)
          + resource_controller_url           = (known after apply)
          + resource_crn                      = (known after apply)
          + resource_group                    = (known after apply)
          + resource_group_name               = (known after apply)
          + resource_name                     = (known after apply)
          + resource_status                   = (known after apply)
          + status                            = (known after apply)
          + status_reasons                    = (known after apply)
          + tags                              = (known after apply)
          + total_network_bandwidth           = (known after apply)
          + total_volume_bandwidth            = (known after apply)
          + user_data                         = (known after apply)
          + vcpu                              = (known after apply)
          + volume_attachments                = (known after apply)
          + volumes                           = (known after apply)
          + vpc                               = (known after apply)
          + wait_before_delete                = (known after apply)
          + zone                              = (known after apply)
        } -> (known after apply)

      + primary_network_attachment {
          + deleted       = (known after apply)
          + href          = (known after apply)
          + id            = (known after apply)
          + name          = "vni-comp-vpc-subnet-b-eth0"
          + resource_type = (known after apply)

          + virtual_network_interface {
              + allow_ip_spoofing             = false
              + auto_delete                   = true
              + enable_infrastructure_nat     = true
              + id                            = (known after apply)
              + name                          = (known after apply)
              + protocol_state_filtering_mode = (known after apply)
              + resource_group                = (known after apply)
              + resource_type                 = (known after apply)
              + security_groups               = [ # forces replacement
                  + "r006-3cb85e5f-38a0-4773-8a32-f853c8bd44ca",
                ]
              + subnet                        = "0727-fa73fc1e-7913-4fe7-b64a-3b3683215b9b" # forces replacement

              + ips (known after apply)

              + primary_ip (known after apply)
            }
        }

      ~ primary_network_interface {
          + access_tags                       = (known after apply)
          + action                            = (known after apply)
          + auto_delete_volume                = (known after apply)
          + availability_policy_host_failure  = (known after apply)
          + bandwidth                         = (known after apply)
          + confidential_compute_mode         = (known after apply)
          + crn                               = (known after apply)
          + dedicated_host                    = (known after apply)
          + dedicated_host_group              = (known after apply)
          + default_trusted_profile_auto_link = (known after apply)
          + default_trusted_profile_target    = (known after apply)
          + disks                             = (known after apply)
          + enable_secure_boot                = (known after apply)
          + force_action                      = (known after apply)
          + force_recovery_time               = (known after apply)
          + gpu                               = (known after apply)
          + id                                = (known after apply)
          + image                             = (known after apply)
          + instance_template                 = (known after apply)
          + keys                              = (known after apply)
          + lifecycle_reasons                 = (known after apply)
          + lifecycle_state                   = (known after apply)
          + memory                            = (known after apply)
          + metadata_service_enabled          = (known after apply)
          + name                              = (known after apply)
          + numa_count                        = (known after apply)
          + placement_group                   = (known after apply)
          + placement_target                  = (known after apply)
          + profile                           = (known after apply)
          + reservation                       = (known after apply)
          + resource_controller_url           = (known after apply)
          + resource_crn                      = (known after apply)
          + resource_group                    = (known after apply)
          + resource_group_name               = (known after apply)
          + resource_name                     = (known after apply)
          + resource_status                   = (known after apply)
          + status                            = (known after apply)
          + status_reasons                    = (known after apply)
          + tags                              = (known after apply)
          + total_network_bandwidth           = (known after apply)
          + total_volume_bandwidth            = (known after apply)
          + user_data                         = (known after apply)
          + vcpu                              = (known after apply)
          + volume_attachments                = (known after apply)
          + volumes                           = (known after apply)
          + vpc                               = (known after apply)
          + wait_before_delete                = (known after apply)
          + zone                              = (known after apply)
        } -> (known after apply)

      ~ reservation_affinity {
          + access_tags                       = (known after apply)
          + action                            = (known after apply)
          + auto_delete_volume                = (known after apply)
          + availability_policy_host_failure  = (known after apply)
          + bandwidth                         = (known after apply)
          + confidential_compute_mode         = (known after apply)
          + crn                               = (known after apply)
          + dedicated_host                    = (known after apply)
          + dedicated_host_group              = (known after apply)
          + default_trusted_profile_auto_link = (known after apply)
          + default_trusted_profile_target    = (known after apply)
          + disks                             = (known after apply)
          + enable_secure_boot                = (known after apply)
          + force_action                      = (known after apply)
          + force_recovery_time               = (known after apply)
          + gpu                               = (known after apply)
          + id                                = (known after apply)
          + image                             = (known after apply)
          + instance_template                 = (known after apply)
          + keys                              = (known after apply)
          + lifecycle_reasons                 = (known after apply)
          + lifecycle_state                   = (known after apply)
          + memory                            = (known after apply)
          + metadata_service_enabled          = (known after apply)
          + name                              = (known after apply)
          + numa_count                        = (known after apply)
          + placement_group                   = (known after apply)
          + placement_target                  = (known after apply)
          + profile                           = (known after apply)
          + reservation                       = (known after apply)
          + resource_controller_url           = (known after apply)
          + resource_crn                      = (known after apply)
          + resource_group                    = (known after apply)
          + resource_group_name               = (known after apply)
          + resource_name                     = (known after apply)
          + resource_status                   = (known after apply)
          + status                            = (known after apply)
          + status_reasons                    = (known after apply)
          + tags                              = (known after apply)
          + total_network_bandwidth           = (known after apply)
          + total_volume_bandwidth            = (known after apply)
          + user_data                         = (known after apply)
          + vcpu                              = (known after apply)
          + volume_attachments                = (known after apply)
          + volumes                           = (known after apply)
          + vpc                               = (known after apply)
          + wait_before_delete                = (known after apply)
          + zone                              = (known after apply)
        } -> (known after apply)
    }

  # module.slz_vsi.ibm_is_instance.vsi["vni-comp-vpc-subnet-c-0"] must be replaced
-/+ resource "ibm_is_instance" "vsi" {
      ~ access_tags                       = [] -> (known after apply)
      ~ availability_policy_host_failure  = "restart" -> (known after apply)
      ~ bandwidth                         = 4000 -> (known after apply)
      ~ confidential_compute_mode         = "disabled" -> (known after apply)
      ~ crn                               = "crn:v1:bluemix:public:is:us-south-3:a/abac0df06b644a9cabc6e44f55b3880e::instance:0737_ad621335-f764-4c4f-9678-6969dbc4341d" -> (known after apply)
      + default_trusted_profile_auto_link = (known after apply)
      ~ disks                             = [] -> (known after apply)
      ~ enable_secure_boot                = false -> (known after apply)
      ~ gpu                               = [] -> (known after apply)
      ~ id                                = "0737_ad621335-f764-4c4f-9678-6969dbc4341d" -> (known after apply)
      ~ lifecycle_reasons                 = [] -> (known after apply)
      ~ lifecycle_state                   = "stable" -> (known after apply)
      ~ memory                            = 4 -> (known after apply)
      ~ metadata_service_enabled          = false -> (known after apply)
        name                              = "vni-comp-cc44-001"
      ~ numa_count                        = 1 -> (known after apply)
      ~ placement_target                  = [
          - {
              - crn           = "crn:v1:bluemix:public:is:us-south:a/abac0df06b644a9cabc6e44f55b3880e::placement-group:r006-d3c382b5-9ed6-4af2-afa1-b5e907a83562"
              - deleted       = []
              - href          = "https://us-south.iaas.cloud.ibm.com/v1/placement_groups/r006-d3c382b5-9ed6-4af2-afa1-b5e907a83562"
              - id            = "r006-d3c382b5-9ed6-4af2-afa1-b5e907a83562"
              - name          = "vni-comp-host-spread"
              - resource_type = "placement_group"
            },
        ] -> (known after apply)
      ~ reservation                       = [] -> (known after apply)
      ~ resource_controller_url           = "https://cloud.ibm.com/vpc-ext/compute/vs" -> (known after apply)
      ~ resource_crn                      = "crn:v1:bluemix:public:is:us-south-3:a/abac0df06b644a9cabc6e44f55b3880e::instance:0737_ad621335-f764-4c4f-9678-6969dbc4341d" -> (known after apply)
      ~ resource_group_name               = "vni-comp-resource-group" -> (known after apply)
      ~ resource_name                     = "vni-comp-cc44-001" -> (known after apply)
      ~ resource_status                   = "running" -> (known after apply)
      ~ status                            = "running" -> (known after apply)
      ~ status_reasons                    = [] -> (known after apply)
      ~ tags                              = [] -> (known after apply)
      ~ total_network_bandwidth           = 3000 -> (known after apply)
      ~ total_volume_bandwidth            = 1000 -> (known after apply)
      ~ vcpu                              = [
          - {
              - architecture = "amd64"
              - count        = 2
              - manufacturer = "intel"
            },
        ] -> (known after apply)
      ~ volume_attachments                = [
          - {
              - id          = "0737-dbb13d29-ff0c-4a33-bc8a-902830147e90"
              - name        = "goon-craftsman-magnify-wriggly"
              - volume_crn  = "crn:v1:bluemix:public:is:us-south-3:a/abac0df06b644a9cabc6e44f55b3880e::volume:r006-a501abab-e283-4d64-9051-76d97bef0d68"
              - volume_id   = "r006-a501abab-e283-4d64-9051-76d97bef0d68"
              - volume_name = "relapsing-voter-mondos-catapult"
            },
          - {
              - id          = "0737-1bf6c11d-d90d-45ee-9709-cee0884f5f5d"
              - name        = "demilune-coronary-popular-ruined"
              - volume_crn  = "crn:v1:bluemix:public:is:us-south-3:a/abac0df06b644a9cabc6e44f55b3880e::volume:r006-82caaf72-52e4-4fc0-a087-1e9c41b3713d"
              - volume_id   = "r006-82caaf72-52e4-4fc0-a087-1e9c41b3713d"
              - volume_name = "vni-comp-cc44-001-vni-comp"
            },
        ] -> (known after apply)
        # (10 unchanged attributes hidden)

      ~ boot_volume {
          ~ iops               = 3000 -> (known after apply)
          ~ name               = "relapsing-voter-mondos-catapult" -> (known after apply)
          ~ profile            = "general-purpose" -> (known after apply)
          ~ size               = 100 -> (known after apply)
          + snapshot           = (known after apply)
          + snapshot_crn       = (known after apply)
          ~ tags               = [] -> (known after apply)
          ~ volume_id          = "r006-a501abab-e283-4d64-9051-76d97bef0d68" -> (known after apply)
            # (2 unchanged attributes hidden)
        }

      ~ metadata_service {
          + access_tags                       = (known after apply)
          + action                            = (known after apply)
          + auto_delete_volume                = (known after apply)
          + availability_policy_host_failure  = (known after apply)
          + bandwidth                         = (known after apply)
          + confidential_compute_mode         = (known after apply)
          + crn                               = (known after apply)
          + dedicated_host                    = (known after apply)
          + dedicated_host_group              = (known after apply)
          + default_trusted_profile_auto_link = (known after apply)
          + default_trusted_profile_target    = (known after apply)
          + disks                             = (known after apply)
          + enable_secure_boot                = (known after apply)
          + force_action                      = (known after apply)
          + force_recovery_time               = (known after apply)
          + gpu                               = (known after apply)
          + id                                = (known after apply)
          + image                             = (known after apply)
          + instance_template                 = (known after apply)
          + keys                              = (known after apply)
          + lifecycle_reasons                 = (known after apply)
          + lifecycle_state                   = (known after apply)
          + memory                            = (known after apply)
          + metadata_service_enabled          = (known after apply)
          + name                              = (known after apply)
          + numa_count                        = (known after apply)
          + placement_group                   = (known after apply)
          + placement_target                  = (known after apply)
          + profile                           = (known after apply)
          + reservation                       = (known after apply)
          + resource_controller_url           = (known after apply)
          + resource_crn                      = (known after apply)
          + resource_group                    = (known after apply)
          + resource_group_name               = (known after apply)
          + resource_name                     = (known after apply)
          + resource_status                   = (known after apply)
          + status                            = (known after apply)
          + status_reasons                    = (known after apply)
          + tags                              = (known after apply)
          + total_network_bandwidth           = (known after apply)
          + total_volume_bandwidth            = (known after apply)
          + user_data                         = (known after apply)
          + vcpu                              = (known after apply)
          + volume_attachments                = (known after apply)
          + volumes                           = (known after apply)
          + vpc                               = (known after apply)
          + wait_before_delete                = (known after apply)
          + zone                              = (known after apply)
        } -> (known after apply)

      + network_attachments {
          + deleted       = (known after apply)
          + href          = (known after apply)
          + id            = (known after apply)
          + name          = "vni-comp-second-subnet-c"
          + resource_type = (known after apply)

          + virtual_network_interface {
              + allow_ip_spoofing             = false
              + auto_delete                   = true
              + enable_infrastructure_nat     = true
              + id                            = (known after apply)
              + name                          = (known after apply)
              + protocol_state_filtering_mode = (known after apply)
              + resource_group                = (known after apply)
              + resource_type                 = (known after apply)
              + security_groups               = [
                  + "r006-3cb85e5f-38a0-4773-8a32-f853c8bd44ca",
                ]
              + subnet                        = "0737-2e7b31d4-73ba-4489-a1be-fa61471a45d4"

              + ips (known after apply)

              + primary_ip (known after apply)
            }
        }

      ~ network_interfaces {
          + access_tags                       = (known after apply)
          + action                            = (known after apply)
          + auto_delete_volume                = (known after apply)
          + availability_policy_host_failure  = (known after apply)
          + bandwidth                         = (known after apply)
          + confidential_compute_mode         = (known after apply)
          + crn                               = (known after apply)
          + dedicated_host                    = (known after apply)
          + dedicated_host_group              = (known after apply)
          + default_trusted_profile_auto_link = (known after apply)
          + default_trusted_profile_target    = (known after apply)
          + disks                             = (known after apply)
          + enable_secure_boot                = (known after apply)
          + force_action                      = (known after apply)
          + force_recovery_time               = (known after apply)
          + gpu                               = (known after apply)
          + id                                = (known after apply)
          + image                             = (known after apply)
          + instance_template                 = (known after apply)
          + keys                              = (known after apply)
          + lifecycle_reasons                 = (known after apply)
          + lifecycle_state                   = (known after apply)
          + memory                            = (known after apply)
          + metadata_service_enabled          = (known after apply)
          + name                              = (known after apply)
          + numa_count                        = (known after apply)
          + placement_group                   = (known after apply)
          + placement_target                  = (known after apply)
          + profile                           = (known after apply)
          + reservation                       = (known after apply)
          + resource_controller_url           = (known after apply)
          + resource_crn                      = (known after apply)
          + resource_group                    = (known after apply)
          + resource_group_name               = (known after apply)
          + resource_name                     = (known after apply)
          + resource_status                   = (known after apply)
          + status                            = (known after apply)
          + status_reasons                    = (known after apply)
          + tags                              = (known after apply)
          + total_network_bandwidth           = (known after apply)
          + total_volume_bandwidth            = (known after apply)
          + user_data                         = (known after apply)
          + vcpu                              = (known after apply)
          + volume_attachments                = (known after apply)
          + volumes                           = (known after apply)
          + vpc                               = (known after apply)
          + wait_before_delete                = (known after apply)
          + zone                              = (known after apply)
        } -> (known after apply)

      + primary_network_attachment {
          + deleted       = (known after apply)
          + href          = (known after apply)
          + id            = (known after apply)
          + name          = "vni-comp-vpc-subnet-c-eth0"
          + resource_type = (known after apply)

          + virtual_network_interface {
              + allow_ip_spoofing             = false
              + auto_delete                   = true
              + enable_infrastructure_nat     = true
              + id                            = (known after apply)
              + name                          = (known after apply)
              + protocol_state_filtering_mode = (known after apply)
              + resource_group                = (known after apply)
              + resource_type                 = (known after apply)
              + security_groups               = [ # forces replacement
                  + "r006-3cb85e5f-38a0-4773-8a32-f853c8bd44ca",
                ]
              + subnet                        = "0737-cb72e8c1-591d-4564-9c25-bbab215bcc44" # forces replacement

              + ips (known after apply)

              + primary_ip (known after apply)
            }
        }

      ~ primary_network_interface {
          + access_tags                       = (known after apply)
          + action                            = (known after apply)
          + auto_delete_volume                = (known after apply)
          + availability_policy_host_failure  = (known after apply)
          + bandwidth                         = (known after apply)
          + confidential_compute_mode         = (known after apply)
          + crn                               = (known after apply)
          + dedicated_host                    = (known after apply)
          + dedicated_host_group              = (known after apply)
          + default_trusted_profile_auto_link = (known after apply)
          + default_trusted_profile_target    = (known after apply)
          + disks                             = (known after apply)
          + enable_secure_boot                = (known after apply)
          + force_action                      = (known after apply)
          + force_recovery_time               = (known after apply)
          + gpu                               = (known after apply)
          + id                                = (known after apply)
          + image                             = (known after apply)
          + instance_template                 = (known after apply)
          + keys                              = (known after apply)
          + lifecycle_reasons                 = (known after apply)
          + lifecycle_state                   = (known after apply)
          + memory                            = (known after apply)
          + metadata_service_enabled          = (known after apply)
          + name                              = (known after apply)
          + numa_count                        = (known after apply)
          + placement_group                   = (known after apply)
          + placement_target                  = (known after apply)
          + profile                           = (known after apply)
          + reservation                       = (known after apply)
          + resource_controller_url           = (known after apply)
          + resource_crn                      = (known after apply)
          + resource_group                    = (known after apply)
          + resource_group_name               = (known after apply)
          + resource_name                     = (known after apply)
          + resource_status                   = (known after apply)
          + status                            = (known after apply)
          + status_reasons                    = (known after apply)
          + tags                              = (known after apply)
          + total_network_bandwidth           = (known after apply)
          + total_volume_bandwidth            = (known after apply)
          + user_data                         = (known after apply)
          + vcpu                              = (known after apply)
          + volume_attachments                = (known after apply)
          + volumes                           = (known after apply)
          + vpc                               = (known after apply)
          + wait_before_delete                = (known after apply)
          + zone                              = (known after apply)
        } -> (known after apply)

      ~ reservation_affinity {
          + access_tags                       = (known after apply)
          + action                            = (known after apply)
          + auto_delete_volume                = (known after apply)
          + availability_policy_host_failure  = (known after apply)
          + bandwidth                         = (known after apply)
          + confidential_compute_mode         = (known after apply)
          + crn                               = (known after apply)
          + dedicated_host                    = (known after apply)
          + dedicated_host_group              = (known after apply)
          + default_trusted_profile_auto_link = (known after apply)
          + default_trusted_profile_target    = (known after apply)
          + disks                             = (known after apply)
          + enable_secure_boot                = (known after apply)
          + force_action                      = (known after apply)
          + force_recovery_time               = (known after apply)
          + gpu                               = (known after apply)
          + id                                = (known after apply)
          + image                             = (known after apply)
          + instance_template                 = (known after apply)
          + keys                              = (known after apply)
          + lifecycle_reasons                 = (known after apply)
          + lifecycle_state                   = (known after apply)
          + memory                            = (known after apply)
          + metadata_service_enabled          = (known after apply)
          + name                              = (known after apply)
          + numa_count                        = (known after apply)
          + placement_group                   = (known after apply)
          + placement_target                  = (known after apply)
          + profile                           = (known after apply)
          + reservation                       = (known after apply)
          + resource_controller_url           = (known after apply)
          + resource_crn                      = (known after apply)
          + resource_group                    = (known after apply)
          + resource_group_name               = (known after apply)
          + resource_name                     = (known after apply)
          + resource_status                   = (known after apply)
          + status                            = (known after apply)
          + status_reasons                    = (known after apply)
          + tags                              = (known after apply)
          + total_network_bandwidth           = (known after apply)
          + total_volume_bandwidth            = (known after apply)
          + user_data                         = (known after apply)
          + vcpu                              = (known after apply)
          + volume_attachments                = (known after apply)
          + volumes                           = (known after apply)
          + vpc                               = (known after apply)
          + wait_before_delete                = (known after apply)
          + zone                              = (known after apply)
        } -> (known after apply)
    }

  # module.slz_vsi.ibm_is_lb_pool_member.alb_pool_members[0] will be updated in-place
  ~ resource "ibm_is_lb_pool_member" "alb_pool_members" {
        id                  = "r006-bc56df66-aea7-4991-a9c6-840fe4064f22/r006-faca3822-1ead-4094-a191-a2387b7f9497/r006-18300eb5-7a63-4330-9176-d5109459e0ca"
      ~ target_address      = "10.10.10.4" -> (known after apply)
        # (8 unchanged attributes hidden)
    }

  # module.slz_vsi.ibm_is_lb_pool_member.alb_pool_members[1] will be updated in-place
  ~ resource "ibm_is_lb_pool_member" "alb_pool_members" {
        id                  = "r006-bc56df66-aea7-4991-a9c6-840fe4064f22/r006-faca3822-1ead-4094-a191-a2387b7f9497/r006-b9359da9-539f-4ee4-b2e7-e517559453ef"
      ~ target_address      = "10.20.10.4" -> (known after apply)
        # (8 unchanged attributes hidden)
    }

  # module.slz_vsi.ibm_is_lb_pool_member.alb_pool_members[2] will be updated in-place
  ~ resource "ibm_is_lb_pool_member" "alb_pool_members" {
        id                  = "r006-bc56df66-aea7-4991-a9c6-840fe4064f22/r006-faca3822-1ead-4094-a191-a2387b7f9497/r006-6fd6f6e1-a03e-43c7-9b04-0e0cd888193e"
      ~ target_address      = "10.30.10.5" -> (known after apply)
        # (8 unchanged attributes hidden)
    }

  # module.slz_vsi.ibm_is_lb_pool_member.nlb_pool_members[0] will be updated in-place
  ~ resource "ibm_is_lb_pool_member" "nlb_pool_members" {
        id                  = "r006-202e64a2-8f89-419e-82f8-1efcd9b6a2ae/r006-f0814eca-3604-4e98-aab2-99a1b0539e38/r006-0bd2f347-0dfc-452c-8bba-296b69954a7e"
      ~ target_id           = "0717_20aa8f2d-05eb-4e14-b9ce-d4b83568879f" -> (known after apply)
        # (9 unchanged attributes hidden)
    }

  # module.slz_vsi.ibm_is_lb_pool_member.nlb_pool_members[1] will be updated in-place
  ~ resource "ibm_is_lb_pool_member" "nlb_pool_members" {
        id                  = "r006-202e64a2-8f89-419e-82f8-1efcd9b6a2ae/r006-f0814eca-3604-4e98-aab2-99a1b0539e38/r006-8146fd2a-8dfb-4abe-9168-c2af6390cf4d"
      ~ target_id           = "0727_5e624c56-c614-46e5-9d8a-869b6696fadc" -> (known after apply)
        # (9 unchanged attributes hidden)
    }

  # module.slz_vsi.ibm_is_lb_pool_member.nlb_pool_members[2] will be updated in-place
  ~ resource "ibm_is_lb_pool_member" "nlb_pool_members" {
        id                  = "r006-202e64a2-8f89-419e-82f8-1efcd9b6a2ae/r006-f0814eca-3604-4e98-aab2-99a1b0539e38/r006-e514f8a8-dde7-4241-ae9b-699bb7822f81"
      ~ target_id           = "0737_ad621335-f764-4c4f-9678-6969dbc4341d" -> (known after apply)
        # (9 unchanged attributes hidden)
    }

Plan: 6 to add, 9 to change, 3 to destroy.

The VSIs will be re-created.

@Aashiq-J
Copy link
Member Author

/run pipeline

@Aashiq-J
Copy link
Member Author

/run pipeline

main.tf Outdated Show resolved Hide resolved
main.tf Show resolved Hide resolved
variables.tf Show resolved Hide resolved
@Aashiq-J
Copy link
Member Author

/run pipeline

main.tf Outdated
# Create Virtual Network Interface
##############################################################################
resource "ibm_is_virtual_network_interface" "primary_vni" {
for_each = !var.use_legacy_network_interface ? local.vsi_map : {}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have had issues with this type of for_each in the past (using a conditional for a map). See line 96 of this file for a safer way to do this, or https://github.com/terraform-ibm-modules/terraform-ibm-landing-zone-vpc/blob/main/network_acls.tf#L163 to see how we discovered the issue with this pattern.

variables.tf Show resolved Hide resolved
main.tf Outdated
@@ -99,6 +162,13 @@ resource "ibm_is_subnet_reserved_ip" "vsi_ip" {
auto_delete = false
}

resource "ibm_is_subnet_reserved_ip" "secondary_vsi_ip" {
for_each = var.number_of_secondary_reserved_ips > 0 && !var.use_legacy_network_interface ? local.secondary_reserved_ips_map : {}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see the for_each in the vsi_ip above for how to avoid a bug in terraform with a conditional returning map

}
content {
name = network_attachments.value.name
virtual_network_interface {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think all of the VNIs should be managed by terraform outside the VSI block, just like you have done with the primary. That will make it much easier to leave them alone and simply reattach if the VSI gets recreated, and they will retain all of their settings and IPs. Basically we want the VSI block here to manage as little as possible and we would "attach" resources managed outside the block instead. This way if a rollback occurs (or the VSI gets recreated for any reason) it will not destroy some of these other attachments (like VNIs) so that they maintain their state when reattached.

@Aashiq-J
Copy link
Member Author

/run pipeline

main.tf Show resolved Hide resolved
@Aashiq-J
Copy link
Member Author

Aashiq-J commented Nov 4, 2024

/run pipeline

@Aashiq-J Aashiq-J requested a review from toddgiguere November 7, 2024 15:12
variables.tf Outdated
@@ -116,6 +116,13 @@ variable "manage_reserved_ips" {
default = false
}

variable "number_of_secondary_reserved_ips" {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm worried that at some point, someone is going to ask for this same feature for the secondary VNI, so we might need to change this input name. maybe instead of "secondary" something like "additional"? Also this setting only applies to the primary VNI, so that could be part of the name as well? then if we ever needed an entry here for the secondary VNI we could name it that way.

So perhaps something like primary_vni_additional_ip_count? What do you think? Then later if someone really wants this same thing but for the secondary VNI, you could have a secondary_vni_ variable

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good.

@Aashiq-J
Copy link
Member Author

Aashiq-J commented Nov 8, 2024

/run pipeline

@Aashiq-J
Copy link
Member Author

/run pipeline

@Aashiq-J Aashiq-J merged commit 46cd958 into main Nov 11, 2024
2 checks passed
@Aashiq-J Aashiq-J deleted the vni branch November 11, 2024 13:41
@terraform-ibm-modules-ops
Copy link
Contributor

🎉 This PR is included in version 4.3.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants