m/test/launch: extend GetKubeClientSet with rest.Config
K8s streaming transports need a separate rest.Config, expose that from
the GetKubeClientSet.
Change-Id: I7c4ee5dae0349bd6742afcbaf23aa7536b1bdf88
Reviewed-on: https://review.monogon.dev/c/monogon/+/3811
Reviewed-by: Jan Schär <jan@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/test/e2e/k8s_cts/main.go b/metropolis/test/e2e/k8s_cts/main.go
index 6250a16..b9818b3 100644
--- a/metropolis/test/e2e/k8s_cts/main.go
+++ b/metropolis/test/e2e/k8s_cts/main.go
@@ -105,7 +105,7 @@
log.Fatalf("Failed to launch cluster: %v", err)
}
log.Println("Cluster initialized")
- clientSet, err := cl.GetKubeClientSet()
+ clientSet, _, err := cl.GetKubeClientSet()
if err != nil {
log.Fatalf("Failed to get clientSet: %v", err)
}
diff --git a/metropolis/test/e2e/suites/kubernetes/run_test.go b/metropolis/test/e2e/suites/kubernetes/run_test.go
index 2baeb17..0c116f6 100644
--- a/metropolis/test/e2e/suites/kubernetes/run_test.go
+++ b/metropolis/test/e2e/suites/kubernetes/run_test.go
@@ -98,7 +98,7 @@
t.Fatalf("Could not get curator client: %v", err)
}
mgmt := apb.NewManagementClient(con)
- clientSet, err := cluster.GetKubeClientSet()
+ clientSet, _, err := cluster.GetKubeClientSet()
if err != nil {
t.Fatal(err)
}
@@ -281,7 +281,7 @@
}
}()
- clientSet, err := cluster.GetKubeClientSet()
+ clientSet, _, err := cluster.GetKubeClientSet()
if err != nil {
t.Fatal(err)
}
diff --git a/metropolis/test/launch/cluster.go b/metropolis/test/launch/cluster.go
index f1545c9..20c3c67 100644
--- a/metropolis/test/launch/cluster.go
+++ b/metropolis/test/launch/cluster.go
@@ -1279,7 +1279,7 @@
// Kubernetes authenticating proxy using the cluster owner identity.
// It currently has access to everything (i.e. the cluster-admin role)
// via the owner-admin binding.
-func (c *Cluster) GetKubeClientSet() (kubernetes.Interface, error) {
+func (c *Cluster) GetKubeClientSet() (kubernetes.Interface, *rest.Config, error) {
pkcs8Key, err := x509.MarshalPKCS8PrivateKey(c.Owner.PrivateKey)
if err != nil {
// We explicitly pass an Ed25519 private key in, so this can't happen
@@ -1300,7 +1300,11 @@
return c.DialNode(ctx, address)
},
}
- return kubernetes.NewForConfig(&clientConfig)
+ clientSet, err := kubernetes.NewForConfig(&clientConfig)
+ if err != nil {
+ return nil, nil, err
+ }
+ return clientSet, &clientConfig, nil
}
// KubernetesControllerNodeAddresses returns the list of IP addresses of nodes