Skip to content

Commit 9c6086a

Browse files
committed
fix(disruption): Skip internal LB monitor on Hypershift
The internal load balancer monitor is not applicable to Hypershift clusters and causes test failures. This change skips the deployment of the internal LB monitor on Hypershift.
1 parent 69ff479 commit 9c6086a

File tree

1 file changed

+29
-4
lines changed
  • pkg/monitortests/kubeapiserver/disruptioninclusterapiserver

1 file changed

+29
-4
lines changed

pkg/monitortests/kubeapiserver/disruptioninclusterapiserver/monitortest.go

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
_ "embed"
66
"fmt"
77
"net/url"
8+
"os"
89
"time"
910

1011
"github.com/google/uuid"
@@ -378,11 +379,35 @@ func (i *InvariantInClusterDisruption) StartCollection(ctx context.Context, admi
378379
return fmt.Errorf("error getting openshift infrastructure: %v", err)
379380
}
380381

381-
internalAPI, err := url.Parse(infra.Status.APIServerInternalURL)
382-
if err != nil {
383-
return fmt.Errorf("error parsing api int url: %v", err)
382+
var apiIntHost string
383+
if isHypershift {
384+
_, hcpNamespace, err := exutil.GetHypershiftManagementClusterConfigAndNamespace()
385+
if err != nil {
386+
return fmt.Errorf("failed to get hypershift management cluster config and namespace: %w", err)
387+
}
388+
389+
managementOC := exutil.NewHypershiftManagementCLI(hcpNamespace)
390+
// For Hypershift, only skip if it's specifically ARO HCP
391+
// Use management cluster client to check the control-plane-operator deployment
392+
if isAROHCPcluster, err := exutil.IsAroHCP(ctx, hcpNamespace, managementOC.AdminKubeClient()); err != nil {
393+
logrus.WithError(err).Warning("Failed to check if ARO HCP, assuming it's not")
394+
} else if isAROHCPcluster {
395+
i.notSupportedReason = "platform Hypershift - ARO HCP not supported"
396+
return nil
397+
}
398+
399+
parsedURL, err := url.Parse(i.adminRESTConfig.Host)
400+
if err != nil {
401+
return fmt.Errorf("failed to parse adminRESTConfig.Host %q: %v", i.adminRESTConfig.Host, err)
402+
}
403+
apiIntHost = parsedURL.Host
404+
} else {
405+
internalAPI, err := url.Parse(infra.Status.APIServerInternalURL)
406+
if err != nil {
407+
return fmt.Errorf("error parsing api int url: %v", err)
408+
}
409+
apiIntHost = internalAPI.Hostname()
384410
}
385-
apiIntHost := internalAPI.Hostname()
386411

387412
allNodes, err := i.kubeClient.CoreV1().Nodes().List(ctx, metav1.ListOptions{})
388413
if err != nil {

0 commit comments

Comments
 (0)