You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The internal LB monitor for bare metal HyperShift clusters was trying to connect to the API server on port 6443, but getting "connection refused" errors. This is because bare metal HyperShift clusters expose the API server via a NodePort service (e.g., port 30172) instead of the standard port 6443.
5
+
6
+
## Root Cause
7
+
The existing code only handled ARO HCP clusters with a special port (7443), but didn't account for bare metal HyperShift clusters that use NodePort services for API server exposure.
8
+
9
+
## Solution
10
+
Added detection for bare metal HyperShift clusters and updated the port logic to use the correct NodePort.
11
+
12
+
### Changes Made
13
+
14
+
1.**Added bare metal HyperShift detection**:
15
+
- Added `isBareMetalHypershift` field to `InvariantInClusterDisruption` struct
16
+
- Used existing `exutil.IsBareMetalHyperShiftCluster()` function to detect bare metal clusters by checking platform type ("None" or "Agent")
17
+
18
+
2.**Updated port configuration logic**:
19
+
- Modified the environment variable setting logic to handle bare metal HyperShift
20
+
- For bare metal HyperShift: uses the port from `adminRESTConfig.Host` (which contains the actual NodePort assigned by Kubernetes)
21
+
- For ARO HCP: continues to use port 7443
22
+
- For other clusters: uses the standard `apiIntPort`
23
+
24
+
3.**Updated host configuration**:
25
+
- Also updated `KUBERNETES_SERVICE_HOST` to use the correct hostname for bare metal HyperShift
The fix should resolve the connection refused errors by ensuring the internal LB monitor uses the correct NodePort (e.g., 30172) instead of the standard API server port (6443) for bare metal HyperShift clusters.
61
+
62
+
## Example Configuration
63
+
For a bare metal HyperShift cluster, the actual NodePort is determined by Kubernetes and will be extracted from the `adminRESTConfig.Host` URL. For example, if the kubeconfig shows:
0 commit comments