Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ require (
github.com/Masterminds/semver v1.5.0
github.com/RangelReale/osincli v0.0.0-20160924135400-fababb0555f2
github.com/apparentlymart/go-cidr v1.1.0
github.com/aws/aws-sdk-go v1.50.25
github.com/aws/aws-sdk-go v1.55.8
github.com/blang/semver/v4 v4.0.0
github.com/coreos/stream-metadata-go v0.4.9
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
Expand Down
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -220,8 +220,8 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
github.com/aws/aws-sdk-go v1.50.25 h1:vhiHtLYybv1Nhx3Kv18BBC6L0aPJHaG9aeEsr92W99c=
github.com/aws/aws-sdk-go v1.50.25/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
github.com/aws/aws-sdk-go v1.55.8 h1:JRmEUbU52aJQZ2AjX4q4Wu7t4uZjOu71uyNmaWlUkJQ=
github.com/aws/aws-sdk-go v1.55.8/go.mod h1:ZkViS9AqA6otK+JBBNH2++sx1sgxrPKcSzPPvQkUtXk=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
Expand Down Expand Up @@ -854,8 +854,6 @@ github.com/openshift/apiserver-library-go v0.0.0-20260303173613-cd3676268d31 h1:
github.com/openshift/apiserver-library-go v0.0.0-20260303173613-cd3676268d31/go.mod h1:mnTsMMTtXSPBQzqBp5HXBjLvliveKenRADFQy9m5jc0=
github.com/openshift/build-machinery-go v0.0.0-20250530140348-dc5b2804eeee h1:+Sp5GGnjHDhT/a/nQ1xdp43UscBMr7G5wxsYotyhzJ4=
github.com/openshift/build-machinery-go v0.0.0-20250530140348-dc5b2804eeee/go.mod h1:8jcm8UPtg2mCAsxfqKil1xrmRMI3a+XU2TZ9fF8A7TE=
github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20260303184444-1cc650aa0565 h1:3/q8qM4HbFa+Een8wgzpwO8W6mO7Po+MwY6uxiXi/ac=
github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20260303184444-1cc650aa0565/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo=
github.com/openshift/client-go v0.0.0-20260302182750-20813ce71ca6 h1:wJv4Ia+R4OxoaJcTUyvMtBc5rWFvfTiEA8d5f1MBPqI=
github.com/openshift/client-go v0.0.0-20260302182750-20813ce71ca6/go.mod h1:3lkVff575BlbDUUhMsrD1IyvfkZ+oKUB7iZuVy1m0W0=
github.com/openshift/kubernetes v0.0.0-20260305123649-d18f3f005eaa h1:4TK07egSJrny442x0Kl0HgzXgt2lnCKTKHF3sbL2U3E=
Expand Down Expand Up @@ -916,6 +914,8 @@ github.com/openshift/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20260
github.com/openshift/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20260305123649-d18f3f005eaa/go.mod h1:CnFDBq5NGnfOSMeOP8l4SNYJrxK6Z1kUaKdu3Qq9Uik=
github.com/openshift/library-go v0.0.0-20260303171201-5d9eb6295ff6 h1:xjqy0OolrFdJ+ofI/aD0+2k9+MSk5anP5dXifFt539Q=
github.com/openshift/library-go v0.0.0-20260303171201-5d9eb6295ff6/go.mod h1:D797O/ssKTNglbrGchjIguFq+DbyRYdeds5w4/VTrKM=
github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20260303184444-1cc650aa0565 h1:3/q8qM4HbFa+Een8wgzpwO8W6mO7Po+MwY6uxiXi/ac=
github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20260303184444-1cc650aa0565/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo=
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0=
Expand Down
14 changes: 11 additions & 3 deletions test/extended/cloud_controller_manager/ccm.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,10 +152,18 @@ spec:
region := exutil.GetClusterRegion(oc)
sess := exutil.InitAwsSession(region)
elbClient := exutil.NewELBClient(sess)
healthCheck, err := elbClient.GetLBHealthCheckPortPath(lbName)
o.Expect(err).NotTo(o.HaveOccurred(), "unable to get health check port and path")

expectedHealthCheck := fmt.Sprintf("HTTP:%s%s", healthCheckPort, healthCheckPath)
var healthCheck string
if isIPv6Primary {
healthCheck, err = elbClient.GetNLBHealthCheckPortPath(lbName)
o.Expect(err).NotTo(o.HaveOccurred(), "unable to get NLB health check port and path")
} else {
healthCheck, err = elbClient.GetCLBHealthCheckPortPath(lbName)
o.Expect(err).NotTo(o.HaveOccurred(), "unable to get CLB health check port and path")
}
e2e.Logf("Health check port and path: %v", healthCheck)
o.Expect(healthCheck).To(o.Equal(fmt.Sprintf("HTTP:%s%s", healthCheckPort, healthCheckPath)))
o.Expect(healthCheck).To(o.Equal(expectedHealthCheck))
})
})

Expand Down
58 changes: 52 additions & 6 deletions test/extended/util/aws_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@ package util

import (
"encoding/base64"
"fmt"
"os"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/elb"
"github.com/aws/aws-sdk-go/service/elbv2"
g "github.com/onsi/ginkgo/v2"
o "github.com/onsi/gomega"
"github.com/tidwall/gjson"
Expand Down Expand Up @@ -46,18 +48,20 @@ func InitAwsSession(region string) *session.Session {
}

type ELBClient struct {
svc *elb.ELB
svc *elb.ELB
svcV2 *elbv2.ELBV2
}

// NewELBClient creates an ECRClient
func NewELBClient(sess *session.Session) *ELBClient {
return &ELBClient{
svc: elb.New(sess),
svc: elb.New(sess),
svcV2: elbv2.New(sess),
}
}

// GetLBHealthCheckPortPath get load balance health check port and path
func (elbClient *ELBClient) GetLBHealthCheckPortPath(lbName string) (string, error) {
// GetLBHealthCheckPortPath get load balance health check port and path for Classic Load Balancer
func (elbClient *ELBClient) GetCLBHealthCheckPortPath(lbName string) (string, error) {
input := &elb.DescribeLoadBalancersInput{
LoadBalancerNames: []*string{
aws.String(lbName),
Expand All @@ -66,12 +70,12 @@ func (elbClient *ELBClient) GetLBHealthCheckPortPath(lbName string) (string, err

result, err := elbClient.svc.DescribeLoadBalancers(input)
if err != nil {
e2e.Logf("Failed to describe load balancer: %v", err)
e2e.Logf("Failed to describe classic load balancer: %v", err)
return "", err
}

if len(result.LoadBalancerDescriptions) == 0 {
e2e.Logf("Failed to get load balancers: %v", err)
e2e.Logf("Failed to get classic load balancers: %v", err)
}

healthCheck := result.LoadBalancerDescriptions[0].HealthCheck
Expand All @@ -80,3 +84,45 @@ func (elbClient *ELBClient) GetLBHealthCheckPortPath(lbName string) (string, err
}
return *healthCheck.Target, nil
}

// GetNLBHealthCheckPortPath get load balance health check port and path for Network/Application Load Balancer
func (elbClient *ELBClient) GetNLBHealthCheckPortPath(lbName string) (string, error) {
// Describe the load balancer
input := &elbv2.DescribeLoadBalancersInput{
Names: []*string{aws.String(lbName)},
}
result, err := elbClient.svcV2.DescribeLoadBalancers(input)
if err != nil {
e2e.Logf("Failed to describe NLB: %v", err)
return "", err
}

if len(result.LoadBalancers) == 0 {
e2e.Logf("No NLB found with name: %s", lbName)
return "", nil
}

// Get target groups for this load balancer
tgInput := &elbv2.DescribeTargetGroupsInput{
LoadBalancerArn: result.LoadBalancers[0].LoadBalancerArn,
}
tgResult, err := elbClient.svcV2.DescribeTargetGroups(tgInput)
if err != nil {
e2e.Logf("Failed to describe target groups: %v", err)
return "", err
}

if len(tgResult.TargetGroups) == 0 {
e2e.Logf("No target groups found for NLB: %s", lbName)
return "", nil
}

// Get health check configuration from the first target group
tg := tgResult.TargetGroups[0]
protocol := aws.StringValue(tg.HealthCheckProtocol)
path := aws.StringValue(tg.HealthCheckPath)
port := aws.StringValue(tg.HealthCheckPort)

// Format: "HTTP:10256/healthz"
return fmt.Sprintf("%s:%s%s", protocol, port, path), nil
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading