Skip to content

Conversation

@ianc769
Copy link
Contributor

@ianc769 ianc769 commented Jan 6, 2026

Add Computed: true to optional zone fields that are set by the Read function. This prevents Terraform from detecting false drift when these fields are not explicitly set in the configuration but have values returned by the CloudStack API.

Fields fixed:

  • guest_cidr_address
  • dns2
  • internal_dns2
  • ip6_dns1
  • ip6_dns2

The issue occurred because these fields were Optional but not Computed. When a user removed a previously set value from their config, Terraform would:

  1. Expect the field to be null (not in config)
  2. Read a non-null value from the API
  3. Detect drift and plan to remove it
  4. Send an update with the field omitted
  5. CloudStack would retain the old value (no explicit clear)
  6. Loop back to step 2

With Optional + Computed, Terraform accepts API-provided values even when not explicitly set in the configuration, breaking the update loop.

Add Computed: true to optional zone fields that are set by the Read function.
This prevents Terraform from detecting false drift when these fields are not
explicitly set in the configuration but have values returned by the CloudStack API.

Fields fixed:
- guest_cidr_address
- dns2
- internal_dns2
- ip6_dns1
- ip6_dns2

The issue occurred because these fields were Optional but not Computed. When a user
removed a previously set value from their config, Terraform would:
1. Expect the field to be null (not in config)
2. Read a non-null value from the API
3. Detect drift and plan to remove it
4. Send an update with the field omitted
5. CloudStack would retain the old value (no explicit clear)
6. Loop back to step 2

With Optional + Computed, Terraform accepts API-provided values even when not
explicitly set in the configuration, breaking the update loop.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes an infinite update loop that occurs when users remove previously configured optional zone fields from their Terraform configuration. The fix adds Computed: true to five optional zone fields, allowing Terraform to accept API-provided values even when not explicitly set in the configuration.

  • Adds Computed: true to optional zone fields that are populated by the CloudStack API
  • Prevents false drift detection when fields are not explicitly set in user configuration
  • Aligns with existing patterns used for other optional fields in the same resource

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant