Test Verification Report: PR #9171

PROCPBUGS-100054: Azure Private clusters without external DNS fail to complete
URLgithub.com/openshift/hypershift/pull/9171
Branchfix-OCPBUGS-100054
Date2026-08-05
TesterBryan Cox
PlatformAzure self-managed (Private topology)
Release5.0.0-ec.5
CPO Imagequay.io/rh_ee_brcox/hypershift:OCPBUGS-100054-2026-08-05-1
Clusterbrcox-100054-hc (2 nodes, eastus)
42/42
Unit Tests Passing
8/8
Scenarios Verified
21/21
Guest COs Healthy
47/47
Control Plane Pods

Summary

CategoryStatus
Scenario 1: Private Cluster Without External DNSPASS (11/11 checks)
Scenario 2: KAS Route DefaultingPASS (4/4 checks)
Scenario 3: CPO External Route BehaviorPASS (3/3 checks)
Scenario 4: Private DNS Zone NamingPASS (2/2 checks)
Scenario 5: Guest dns.cluster ConfigPASS (3/3 checks)
Scenario 6: PublicAndPrivate RegressionPASS (3/3 checks — CI endpoint access transition tests)
Scenario 7: Infra Destroy Both FormatsPASS (3/3 checks)
Scenario 8: Unit Test VerificationPASS (42/42 tests)

Unit tests passing: 42/42 across 4 test suites (globalconfig, core, infra, azure CLI)
Scenarios verified: 8/8 — 5 live Private cluster + 1 CI endpoint access transition + 1 unit tests + 1 infra destroy
Cluster version: 5.0.0-ec.5 (Completed at 2026-08-05T12:54:35Z)
Machines: 2/2 Running, RHCOS 9.8, version 5.0.0-ec.5


Regression Checklist

CheckResultNotes
Azure Private without external DNS provisionsPASSScenario 1 — cluster Available=True, all 21 COs healthy
KAS defaults to Route for Private topologyPASSScenario 2 — all 4 services use Route strategy
CPO skips external routes when no hostnamePASSScenario 3 — only internal route exists
Private DNS zone uses correct namingPASSScenario 4 — {name}.{baseDomain} (no -azurecluster suffix)
Guest dns.cluster has both zonesPASSScenario 5 — publicZone and privateZone both present
PublicAndPrivate topology unaffected (unit tests)PASSCLI fixture tests pass for all topologies
IBMCloud BaseDomain handling preservedPASSDNS config test: hcp.Spec.DNS.BaseDomain used directly for IBM
AWS SharedVPC PrivateZoneIAMRole preservedPASSDNS config test: SharedVPC sets PrivateZoneIAMRole
Non-Private callers pass isPrivate=falsePASSUnit tests confirm non-Private uses LoadBalancer for KAS
Ingress ClusterOperator healthyPASSAvailable=True, Degraded=False, no issues with public zone

HostedCluster Conditions

ConditionStatus
AvailableTrue
ProgressingFalse
DegradedFalse
AzureInternalLoadBalancerAvailableTrue
AzurePLSCreatedTrue
AzurePrivateDNSAvailableTrue
AzurePrivateEndpointAvailableTrue
AzurePrivateLinkServiceAvailableTrue
ClusterVersionAvailableTrue
ClusterVersionSucceedingTrue
ControlPlaneConnectionAvailableTrue
DataPlaneConnectionAvailableTrue
EtcdAvailableTrue
IgnitionEndpointAvailableTrue
InfrastructureReadyTrue
KubeAPIServerAvailableTrue
PlatformCredentialsFoundTrue
ReconciliationActiveTrue
ReconciliationSucceededTrue
SupportedHostedClusterTrue
ValidConfigurationTrue
ValidHostedControlPlaneConfigurationTrue
ValidReleaseImageTrue