Skip to content
This repository was archived by the owner on Sep 3, 2025. It is now read-only.

Commit 7c3a30d

Browse files
committed
fix the hosted cluster access from the operator
1 parent 16fb895 commit 7c3a30d

File tree

4 files changed

+26
-57
lines changed

4 files changed

+26
-57
lines changed

go.mod

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ go 1.19
44

55
require (
66
github.com/go-logr/logr v1.2.4
7+
github.com/openshift/api v0.0.0-20230825144922-938af62eda38
78
github.com/openshift/cluster-logging-operator v0.0.0-20230824003206-e87beec8402b
89
github.com/openshift/hypershift v0.1.9
910
k8s.io/api v0.28.1
@@ -21,7 +22,6 @@ require (
2122
github.com/davecgh/go-spew v1.1.1 // indirect
2223
github.com/emicklei/go-restful/v3 v3.9.0 // indirect
2324
github.com/evanphx/json-patch v5.6.0+incompatible // indirect
24-
github.com/fatih/color v1.15.0 // indirect
2525
github.com/fsnotify/fsnotify v1.6.0 // indirect
2626
github.com/go-logr/zapr v1.2.4 // indirect
2727
github.com/go-openapi/jsonpointer v0.19.6 // indirect
@@ -38,31 +38,25 @@ require (
3838
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect
3939
github.com/google/uuid v1.3.0 // indirect
4040
github.com/imdario/mergo v0.3.12 // indirect
41-
github.com/inconshreveable/mousetrap v1.1.0 // indirect
4241
github.com/josharian/intern v1.0.0 // indirect
4342
github.com/json-iterator/go v1.1.12 // indirect
4443
github.com/mailru/easyjson v0.7.7 // indirect
45-
github.com/mattn/go-colorable v0.1.13 // indirect
46-
github.com/mattn/go-isatty v0.0.17 // indirect
4744
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
4845
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
4946
github.com/modern-go/reflect2 v1.0.2 // indirect
5047
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
5148
github.com/onsi/ginkgo/v2 v2.12.0 // indirect
5249
github.com/onsi/gomega v1.27.10 // indirect
53-
github.com/openshift/api v0.0.0-20230825144922-938af62eda38 // indirect
5450
github.com/openshift/elasticsearch-operator v0.0.0-20220613183908-e1648e67c298 // indirect
5551
github.com/pkg/errors v0.9.1 // indirect
5652
github.com/prometheus/client_golang v1.16.0 // indirect
5753
github.com/prometheus/client_model v0.4.0 // indirect
5854
github.com/prometheus/common v0.44.0 // indirect
5955
github.com/prometheus/procfs v0.10.1 // indirect
60-
github.com/spf13/cobra v1.7.0 // indirect
6156
github.com/spf13/pflag v1.0.5 // indirect
6257
go.uber.org/multierr v1.11.0 // indirect
6358
go.uber.org/zap v1.25.0 // indirect
6459
golang.org/x/crypto v0.13.0 // indirect
65-
golang.org/x/mod v0.12.0 // indirect
6660
golang.org/x/net v0.15.0 // indirect
6761
golang.org/x/oauth2 v0.8.0 // indirect
6862
golang.org/x/sync v0.3.0 // indirect
@@ -84,7 +78,6 @@ require (
8478
sigs.k8s.io/cluster-api v1.2.10 // indirect
8579
sigs.k8s.io/cluster-api-provider-aws/v2 v2.0.2 // indirect
8680
sigs.k8s.io/cluster-api-provider-ibmcloud v0.2.4 // indirect
87-
sigs.k8s.io/controller-tools v0.13.0 // indirect
8881
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
8982
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
9083
sigs.k8s.io/yaml v1.3.0 // indirect

go.sum

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk
7171
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
7272
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
7373
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
74-
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
7574
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
7675
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
7776
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
@@ -91,8 +90,6 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7
9190
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
9291
github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U=
9392
github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
94-
github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
95-
github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
9693
github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
9794
github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
9895
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
@@ -123,8 +120,6 @@ github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/
123120
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
124121
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
125122
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
126-
github.com/gobuffalo/flect v0.2.5 h1:H6vvsv2an0lalEaCDRThvtBfmg44W/QHXBCYUXf/6S4=
127-
github.com/gobuffalo/flect v0.2.5/go.mod h1:1ZyCLIbg0YD7sDkzvFdPoOydPtD8y9JQnrOROolUcM8=
128123
github.com/gobuffalo/flect v1.0.2 h1:eqjPGSo2WmjgY2XlpGwo2NXgL3RucAKo4k4qQMNA5sA=
129124
github.com/gobuffalo/flect v1.0.2/go.mod h1:A5msMlrHtLqh9umBSnvabjsMrCcCpAyzglnDvkbYKHs=
130125
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
@@ -219,8 +214,6 @@ github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:
219214
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
220215
github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
221216
github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
222-
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
223-
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
224217
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
225218
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
226219
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
@@ -243,11 +236,6 @@ github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN
243236
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
244237
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
245238
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
246-
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
247-
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
248-
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
249-
github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
250-
github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
251239
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
252240
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
253241
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
@@ -306,10 +294,7 @@ github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+Pymzi
306294
github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=
307295
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
308296
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
309-
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
310297
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
311-
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
312-
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
313298
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
314299
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
315300
github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
@@ -392,8 +377,6 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
392377
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
393378
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
394379
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
395-
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
396-
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
397380
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
398381
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
399382
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -514,7 +497,6 @@ golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBc
514497
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
515498
golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
516499
golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
517-
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
518500
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
519501
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
520502
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -764,8 +746,6 @@ sigs.k8s.io/cluster-api-provider-ibmcloud v0.2.4 h1:w+2d3XjWzlLw5seYmven6bDHsFQ1
764746
sigs.k8s.io/cluster-api-provider-ibmcloud v0.2.4/go.mod h1:ZynNCZIFZx80I9n4PyzssF8rE3ewmLgMUlPUl90BWx4=
765747
sigs.k8s.io/controller-runtime v0.12.3 h1:FCM8xeY/FI8hoAfh/V4XbbYMY20gElh9yh+A98usMio=
766748
sigs.k8s.io/controller-runtime v0.12.3/go.mod h1:qKsk4WE6zW2Hfj0G4v10EnNB2jMG1C+NTb8h+DwCoU0=
767-
sigs.k8s.io/controller-tools v0.13.0 h1:NfrvuZ4bxyolhDBt/rCZhDnx3M2hzlhgo5n3Iv2RykI=
768-
sigs.k8s.io/controller-tools v0.13.0/go.mod h1:5vw3En2NazbejQGCeWKRrE7q4P+CW8/klfVqP8QZkgA=
769749
sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY=
770750
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
771751
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=

main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ func initHostedClusters(mgr ctrl.Manager) error {
159159
hcpNamespace := fmt.Sprintf("%s-%s", hcp.Namespace, hcp.Name)
160160

161161
setupLog.Info("connecting hosted cluster", "name", hcp.Name)
162-
restConfig, err := hostedcluster.CreateGuestKubeconfig(c, hcpNamespace, setupLog)
162+
restConfig, err := hostedcluster.BuildGuestKubeConfig(c, hcpNamespace, setupLog)
163163
if err != nil {
164164
setupLog.Error(err, "getting guest cluster kubeconfig")
165165
}

pkg/hostedcluster/hosted_cluster.go

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"os"
77

88
"github.com/go-logr/logr"
9-
ocroutev1 "github.com/openshift/api/route/v1"
109
hyperv1beta1 "github.com/openshift/hypershift/api/v1beta1"
1110
corev1 "k8s.io/api/core/v1"
1211
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -16,6 +15,12 @@ import (
1615
"sigs.k8s.io/controller-runtime/pkg/client"
1716
)
1817

18+
const (
19+
KubeConfigSecret = "service-network-admin-kubeconfig"
20+
KubeAPISvcName = "kube-apiserver"
21+
KubeDnsSuffix = "svc.cluster.local"
22+
)
23+
1924
// GetHostedControlPlanes returns a list of all hostedcontrolplane based on search criteria
2025
func GetHostedControlPlanes(
2126
c client.Client,
@@ -86,30 +91,21 @@ func GetHostedClusters(
8691
return hcList.Items, nil
8792
}
8893

89-
func CreateGuestKubeconfig(
94+
// BuildGuestKubeConfig builds the kubeconfig for client to access the hosted cluster from the secrets in HCP namespace
95+
func BuildGuestKubeConfig(
9096
c client.Client,
91-
cpNamespace string,
97+
hcpNamespace string,
9298
log logr.Logger,
9399
) (*rest.Config, error) {
94100

95-
localhostKubeconfigSecret := &corev1.Secret{
96-
ObjectMeta: metav1.ObjectMeta{
97-
Name: "localhost-kubeconfig",
98-
Namespace: cpNamespace,
99-
},
100-
}
101-
if err := c.Get(context.Background(), client.ObjectKeyFromObject(localhostKubeconfigSecret), localhostKubeconfigSecret); err != nil {
102-
return nil, fmt.Errorf("failed to get hostedcluster localhost kubeconfig: %w", err)
103-
}
104-
105-
localhostKubeRoute := &ocroutev1.Route{
101+
secret := &corev1.Secret{
106102
ObjectMeta: metav1.ObjectMeta{
107-
Name: "kube-apiserver",
108-
Namespace: cpNamespace,
103+
Name: KubeConfigSecret,
104+
Namespace: hcpNamespace,
109105
},
110106
}
111-
if err := c.Get(context.Background(), client.ObjectKeyFromObject(localhostKubeRoute), localhostKubeRoute); err != nil {
112-
return nil, fmt.Errorf("failed to get kube-apiserver-internal route: %w", err)
107+
if err := c.Get(context.Background(), client.ObjectKeyFromObject(secret), secret); err != nil {
108+
return nil, fmt.Errorf("failed to get hostedcluster admin kubeconfig: %w", err)
113109
}
114110

115111
kubeconfigFile, err := os.CreateTemp(os.TempDir(), "kubeconfig-")
@@ -124,24 +120,24 @@ func CreateGuestKubeconfig(
124120
log.Error(err, "Failed to close temporary kubeconfig file")
125121
}
126122
}()
127-
localhostKubeconfig, err := clientcmd.Load(localhostKubeconfigSecret.Data["kubeconfig"])
123+
kubeConfig, err := clientcmd.Load(secret.Data["kubeconfig"])
128124
if err != nil {
129-
return nil, fmt.Errorf("failed to parse localhost kubeconfig: %w", err)
125+
return nil, fmt.Errorf("failed to parse kubeconfig from the secret: %w", err)
130126
}
131-
if len(localhostKubeconfig.Clusters) == 0 {
132-
return nil, fmt.Errorf("no clusters found in localhost kubeconfig")
127+
if len(kubeConfig.Clusters) == 0 {
128+
return nil, fmt.Errorf("no clusters found in admin kubeconfig")
133129
}
134130

135-
log.Info("connecting API server cluster", "api-endpoint", localhostKubeRoute.Spec.Host)
131+
log.Info("connecting API server cluster", "api-endpoint")
136132

137-
for k := range localhostKubeconfig.Clusters {
138-
localhostKubeconfig.Clusters[k].Server = fmt.Sprintf("https://%s:6443", localhostKubeRoute.Spec.Host)
133+
for k := range kubeConfig.Clusters {
134+
kubeConfig.Clusters[k].Server = fmt.Sprintf("https://%s.%s.%s:6443", KubeAPISvcName, hcpNamespace, KubeDnsSuffix)
139135
}
140136

141-
localhostKubeconfigYaml, err := clientcmd.Write(*localhostKubeconfig)
142-
restConfig, err := clientcmd.RESTConfigFromKubeConfig(localhostKubeconfigYaml)
137+
kubeConfigYaml, err := clientcmd.Write(*kubeConfig)
138+
restConfig, err := clientcmd.RESTConfigFromKubeConfig(kubeConfigYaml)
143139
if err != nil {
144-
return nil, fmt.Errorf("failed to serialize localhost kubeconfig: %w", err)
140+
return nil, fmt.Errorf("failed to serialize kubeconfig: %w", err)
145141
}
146142

147143
return restConfig, nil

0 commit comments

Comments
 (0)