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