Skip to content

Conversation

@preetisht
Copy link
Collaborator

@preetisht preetisht commented Nov 18, 2025

Which issue this PR addresses:

https://issues.redhat.com/browse/ARO-20272

  • VMSS IP Tags for both RP and Gateway
  • ARM Conditional Logic to apply empty ipTag for disabled regions
  • Configuration picked up from RP-Config

Fixes

What this PR does / why we need it:

https://issues.redhat.com/browse/ARO-16025

This is a part of Microsoft Security Wave 5 fix. All our PublicIP's for both MSIT and AME environment for ARO Classic shoudl have FirstPartyUsage tags .

This PR implements IP tags support for Azure Red Hat OpenShift Virtual Machine Scale Sets (VMSS) to comply with Microsoft Security Wave 5 requirements. The implementation adds unified configuration parameters (vmssIpTags, vmssIpTagsDisabledRegions) that enable region-specific IP tagging for both RP and Gateway VMSS public IPs, with ARM template conditional logic that gracefully handles disabled regions by deploying empty IP tags arrays. The solution has ARM conditionals logic and includes edge case handling for missing or empty configuration scenarios.

Test plan for issue:

  • make test.go passes all the test.
  • Deployed in Canary eastus2euap. Post deployment verify if the new VMSS instances both RP and GWY have proper tagged IP's.
  • Create a cluster in Canary and check if the cluster is sending metrics to geneva.
  • Re-deployed in Canary eastus2euap with a different tag ( created after must modifying a comment ). Post deployment verify if the new VMSS instances both RP and GWY have proper tagged IP's.
  • Create a cluster in Canary and check if the cluster is sending metrics to geneva.
  • Reverted back canary to last known good release and it also went fine .

Is there any documentation that needs to be updated for this PR?

  • A doc will be created on how to deploy in regions where we do not FirstPartyUsage tags has not yet been provided to us by Microsoft .
  • We will create a TSG which will be a part of another PR which will be related to monitoring of our Public IP's which does not have a FirstPartyUsage Tag .

How do you know this will function as expected in production?

  • We will do an extensive tests in Canary region and updated all our test cases and results in JIRA .
  • All the artifacts are uploaded and JIRA commets updated .

- Add IPTag struct and RpVmssIpTags field to Configuration
- Add rpVmssIpTags parameter to ARM template with array type
- Implement IP tags in VMSS PublicIPAddressConfiguration
- Use conditional ARM logic for backward compatibility
- Support FirstPartyUsage type with service tag values

Update deployment assets

Trigger new VMSS deployment for IP tags testing - eastus disabled region validation

New commit ID
This allows RP VMSS and Gateway VMSS to have different FirstPartyUsage tags:
- RP VMSS: /aroclassicnonprodinboundsvc (inbound)
- Gateway VMSS: /aroclassicnonprodoutboundsvc (outbound)
@mociarain
Copy link
Member

Might be worth a rebase and a re-run of the E2E.

Copy link
Member

@mociarain mociarain left a comment

Choose a reason for hiding this comment

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

LGTM. I left a comment on an idea but it's not blocking

VMSize *string `json:"vmSize,omitempty" value:"required"`
VMSSCleanupEnabled *bool `json:"vmssCleanupEnabled,omitempty"`
RPVmssIpTags []IPTag `json:"rpVmssIpTags,omitempty"`
RPVmssIpTagsDisabledRegions []string `json:"rpVmssIpTagsDisabledRegions,omitempty"`
Copy link
Member

Choose a reason for hiding this comment

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

I've never considered it until now but could we do better than strings for regions i.e. enums. Outside the scope of this PR but I came across this: https://gist.github.com/ausfestivus/04e55c7d80229069bf3bc75870630ec8

What do you think?

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