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/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