Skip to content

feat (iac): [secure-hybrid-network] add e2e validation and DNAT rules#263

Merged
ckittel merged 4 commits into
mainfrom
feature/421252_add-validation-steps
May 27, 2026
Merged

feat (iac): [secure-hybrid-network] add e2e validation and DNAT rules#263
ckittel merged 4 commits into
mainfrom
feature/421252_add-validation-steps

Conversation

@ferantivero
Copy link
Copy Markdown
Contributor

@ferantivero ferantivero commented May 13, 2026

Why

The README has deploy and cleanup steps but no way to verify the deployment works end-to-end. The DNAT rule must be deployed separately because the firewall's private IP is dynamically assigned and not known at initial creation time.

What

  • Add azure-network-azuredeploy-v2.bicep — deploys DNAT rule using runtime-queried FW/ILB private IPs
  • Add "Deploy DNAT" and "Validate deployment" sections to README
  • Fix CLI query casing: privateIpAddress → privateIPAddress
  • Fix LB resource name: InternalLoadBalancer → lb-internal
  • Fix az network lb show → az network lb frontend-ip list

Test

  • v2 deploys without wiping existing FW configuration
  • Private DNAT flow: on-prem VM → VPN → FW private IP → ILB → VMSS returns HTTP 200
  • CLI queries return correct IP values

@ferantivero ferantivero marked this pull request as draft May 13, 2026 17:28
@ferantivero ferantivero force-pushed the feature/421252_add-validation-steps branch from 6999314 to f1f0576 Compare May 13, 2026 22:27
@ferantivero ferantivero changed the base branch from main to feature/421252_sol-sec-net-hybrid-use-vmss May 13, 2026 22:28
@ferantivero ferantivero force-pushed the feature/421252_add-validation-steps branch from f1f0576 to 40dd11d Compare May 18, 2026 14:00
@ferantivero ferantivero changed the title feat (docs): [secure-hybrid-network] add validation steps to README feat (iac): [secure-hybrid-network] add e2e validation and DNAT rules May 18, 2026
Base automatically changed from feature/421252_sol-sec-net-hybrid-use-vmss to main May 27, 2026 17:00
ferantivero and others added 2 commits May 27, 2026 14:06
Document how to verify the deployment end-to-end from the mock
on-premises VM through the VPN tunnel and firewall DNAT:

- Option 1: Bastion RDP + browser to firewall private IP
- Option 2: CLI using az vm run-command from on-prem VM

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Azure validates DNAT destinationAddresses against the firewall's
assigned IP during resource creation, but the IP isn't available yet
on fresh deploys. Extract DNAT into a separate deployment step (v2)
that runs after the base infrastructure is provisioned.

- Add azure-network-azuredeploy-v2.bicep/json using existing resources
- Remove inline DNAT and firewallPrivateIp variable from base template
- Update README with v2 deployment step and parameter table

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@ferantivero ferantivero force-pushed the feature/421252_add-validation-steps branch from 40dd11d to 77281b6 Compare May 27, 2026 17:21
@ferantivero ferantivero marked this pull request as ready for review May 27, 2026 17:40
@ckittel ckittel requested review from ckittel and Copilot May 27, 2026 17:49
Copy link
Copy Markdown
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

Adds a post-deploy “v2” template and documentation to validate the secure-hybrid-network solution end-to-end, including a separate deployment step to apply Azure Firewall DNAT after the firewall’s private IP is known.

Changes:

  • Added a second-stage Bicep/ARM template to apply Azure Firewall DNAT rules after the base infrastructure deployment.
  • Updated README with a “Deploy DNAT” step and end-to-end validation instructions (Bastion + browser or CLI run-command).
  • Updated CLI query/resource naming in docs to match current Azure CLI output and deployed resource names.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
solutions/secure-hybrid-network/README.md Documents the post-deploy DNAT step and provides e2e validation instructions via the on-prem VM.
solutions/secure-hybrid-network/nestedtemplates/azure-network-azuredeploy-v2.bicep Introduces the v2 deployment intended to add DNAT rules after the firewall private IP is assigned.
solutions/secure-hybrid-network/nestedtemplates/azure-network-azuredeploy-v2.json Generated ARM template counterpart of the v2 Bicep deployment.

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

ferantivero and others added 2 commits May 27, 2026 15:37
…N tag

- Keep the existing 'all-internet' application rule collection from the
  base deployment so v2 doesn't overwrite outbound firewall behavior
- Add separate 'spoke-windows-update' collection using the WindowsUpdate
  FQDN tag instead of listing individual target FQDNs
- Apply to both Bicep and JSON v2 templates

Co-authored-by: GitHub Copilot (Claude Opus 4.6) <noreply@github.com>
@ckittel ckittel merged commit b0d7aad into main May 27, 2026
5 checks passed
@ckittel ckittel deleted the feature/421252_add-validation-steps branch May 27, 2026 19:08
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.

3 participants