Skip to content

Commit

Permalink
Integration tests should use PINNIPED_TEST_SUPERVISOR_SERVICE_NAME to…
Browse files Browse the repository at this point in the history
… decide where to port-forward
  • Loading branch information
joshuatcasey committed Sep 5, 2024
1 parent 08abff1 commit 72fa369
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 7 deletions.
21 changes: 14 additions & 7 deletions test/integration/securetls_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,15 +118,22 @@ func TestSecureTLSSupervisor(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
t.Cleanup(cancel)

supervisorIssuer := testlib.NewSupervisorIssuer(t, env.SupervisorHTTPSAddress)

serviceSuffix := "-nodeport"
if supervisorIssuer.IsIPAddress() {
// Then there's no nodeport service to connect to, it's a load balancer service!
serviceSuffix = "-loadbalancer"
// On kind, this will generally be app-name-nodeport
// On GKE and AKS, this will generally be app-name-loadbalancer (their ingresses use IP addresses)
// On EKS, this will generally be app-name-loadbalancer (this ingress uses DNS addresses), but we should rely on
// the PINNIPED_TEST_SUPERVISOR_SERVICE_NAME variable.
serviceName := env.SupervisorServiceName
if serviceName == "" {
serviceName = env.SupervisorAppName + "-nodeport"

supervisorIssuer := testlib.NewSupervisorIssuer(t, env.SupervisorHTTPSAddress)
if supervisorIssuer.IsIPAddress() {
// Then there's no nodeport service to connect to, it's a load balancer service!
serviceName = env.SupervisorAppName + "-loadbalancer"
}
}

startKubectlPortForward(ctx, t, "10448", "443", env.SupervisorAppName+serviceSuffix, env.SupervisorNamespace)
startKubectlPortForward(ctx, t, "10448", "443", serviceName, env.SupervisorNamespace)

stdout, stderr := testlib.RunNmapSSLEnum(t, "127.0.0.1", 10448)

Expand Down
2 changes: 2 additions & 0 deletions test/testlib/env.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ type TestEnv struct {
SupervisorNamespace string `json:"supervisorNamespace"`
ConciergeAppName string `json:"conciergeAppName"`
SupervisorAppName string `json:"supervisorAppName"`
SupervisorServiceName string `json:"supervisorServiceName"`
SupervisorCustomLabels map[string]string `json:"supervisorCustomLabels"`
ConciergeCustomLabels map[string]string `json:"conciergeCustomLabels"`
KubernetesDistribution KubeDistro `json:"kubernetesDistribution"`
Expand Down Expand Up @@ -259,6 +260,7 @@ func loadEnvVars(t *testing.T, result *TestEnv) {
result.TestWebhook.Endpoint = needEnv(t, "PINNIPED_TEST_WEBHOOK_ENDPOINT")
result.SupervisorNamespace = needEnv(t, "PINNIPED_TEST_SUPERVISOR_NAMESPACE")
result.SupervisorAppName = needEnv(t, "PINNIPED_TEST_SUPERVISOR_APP_NAME")
result.SupervisorServiceName = os.Getenv("PINNIPED_TEST_SUPERVISOR_SERVICE_NAME")

Check warning on line 263 in test/testlib/env.go

View check run for this annotation

Codecov / codecov/patch

test/testlib/env.go#L263

Added line #L263 was not covered by tests
result.TestWebhook.TLS = &authenticationv1alpha1.TLSSpec{CertificateAuthorityData: needEnv(t, "PINNIPED_TEST_WEBHOOK_CA_BUNDLE")}

result.SupervisorHTTPSIngressAddress = os.Getenv("PINNIPED_TEST_SUPERVISOR_HTTPS_INGRESS_ADDRESS")
Expand Down

0 comments on commit 72fa369

Please sign in to comment.