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

[AVM Question/Feedback]: Ignore changes to some parameters #180

Open
1 task done
Cyr-Az opened this issue Dec 1, 2024 · 5 comments
Open
1 task done

[AVM Question/Feedback]: Ignore changes to some parameters #180

Cyr-Az opened this issue Dec 1, 2024 · 5 comments
Assignees
Labels
Language: Terraform 🌐 This is related to the Terraform IaC language Status: Long Term ⏳ We will do it, but will take a longer amount of time due to complexity/priorities Type: Question/Feedback 🙋 Further information is requested or just some feedback

Comments

@Cyr-Az
Copy link

Cyr-Az commented Dec 1, 2024

Check for previous/existing GitHub issues

  • I have checked for previous/existing GitHub issues

Description

Hi,

We're facing a scenario where the network team is responsible for network-related terraform code and same goes for system team and system-related code, each with dedicated projects and tfstates. Network team uses the avm vnet module to deploy vnets, peerings etc.
System resources (including DNS VMs) are deployed afterwards, and these VMs IPs are configured as the vnet's dns servers using azurerm_virtual_network_dns_servers.
The issue is that when Network team does some modifications to its code, the DNS servers are removed from the configuration.

There are/were similar issues in the Keyvault or container registry modules, (ie. Azure/terraform-azurerm-avm-res-containerregistry-registry@0a74706 ) , but not too sure how this could be implemented in the vnet module since it's based on azapi instead of azurerm provider.

Any idea how we could solve that situation?

Thanks !

@Cyr-Az Cyr-Az added Language: Terraform 🌐 This is related to the Terraform IaC language Needs: Triage 🔍 Maintainers need to triage still Type: Question/Feedback 🙋 Further information is requested or just some feedback labels Dec 1, 2024
@Cyr-Az Cyr-Az changed the title [AVM Question/Feedback]: [AVM Question/Feedback]: Ignore changes to some parameters Dec 2, 2024
@jaredfholgate
Copy link
Member

Hi. Just to confirm, are you saying that every VNET you deploy has its own DNS VMs deployed inside it and then has its own DNS updated to point to the VMs inside that VNET?

If that is the case, then there are a few options:

1 - Reserve the static ip addresses of the DNS servers and the network team sets them up front.

2 - The network team re-run their pipeline once the DNS ip addresses are known.

3 - If 1 or 2 are not possible, we may need to make an update to the module to handle this edge case.

@jaredfholgate jaredfholgate self-assigned this Dec 2, 2024
@jaredfholgate jaredfholgate added Needs: Author Feedback 👂 Awaiting feedback from the issue/PR author and removed Needs: Triage 🔍 Maintainers need to triage still labels Dec 2, 2024
@Cyr-Az
Copy link
Author

Cyr-Az commented Dec 2, 2024

Hi @jaredfholgate and sorry for the confusion, I was trying to simplify my explanation but as often in that case it resulted in less clarity.
The actual scenario is that the system team deploys AD domain controllers in the "Identity" subscription and then their IP addresses need to be used as DNS servers in every subsequent "platform" and "corp landing zone" peered vnet.

  1. not fan of reserving the IPs as we're trying to maintain the code as modular and dynamic as possible, but that would of course be an option
  2. also not fan of that solution as we would like to prefer to maintain the projects as independed from each other as possible. However I was thinking of a (nasty) workaround were the "Identity" project would publish the domain controllers as gitlab CI variables and the "Network" project would use that variable as an input. If variable empty or not set yet, the vnets are created without dns servers as expected; once the variable is set the vnets are known to the "Netowrk" project and so it won't try to remove them.
  3. of course that would be the best solution for me, but I would totally understand if it's not a priorty :)

@microsoft-github-policy-service microsoft-github-policy-service bot added Needs: Attention 👋 Reply has been added to issue, maintainer to review and removed Needs: Author Feedback 👂 Awaiting feedback from the issue/PR author labels Dec 2, 2024
@jaredfholgate
Copy link
Member

I’m afraid I am still a bit confused. If you are using our standard Azure Platform Landing Zone pattern, I am unsure why you would not know the ip address of the DNS servers when vending subscriptions and creating / peering the vnets?

I appreciate you have siloed teams, but given the ip address of those AD domain controllers will never change, why can’t the DNS servers be set when the VNET is created?

Or are you saying that you are creating new domain controllers in the identity sub for each workload?

@Cyr-Az
Copy link
Author

Cyr-Az commented Dec 2, 2024

Once again you're correct, I got a bit carried away in my explanation; only the subsequents vnets in identity and management subscriptions are an issue here

@jaredfholgate jaredfholgate added Status: Long Term ⏳ We will do it, but will take a longer amount of time due to complexity/priorities and removed Needs: Attention 👋 Reply has been added to issue, maintainer to review labels Dec 11, 2024
@jaredfholgate
Copy link
Member

I've added the long term label as would like to take a look at supporting updates to DNS zones independently.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Language: Terraform 🌐 This is related to the Terraform IaC language Status: Long Term ⏳ We will do it, but will take a longer amount of time due to complexity/priorities Type: Question/Feedback 🙋 Further information is requested or just some feedback
Projects
None yet
Development

No branches or pull requests

2 participants