Skip to content

Commit a9d80e2

Browse files
authored
Merge pull request #11049 from sbueringer/pr-fixup-clusterctl-error
🌱 Improve clusterctl client config logic & error message
2 parents 4a0a885 + 217ffaf commit a9d80e2

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

cmd/clusterctl/client/cluster/proxy.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3030
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
3131
"k8s.io/apimachinery/pkg/runtime/schema"
32+
kerrors "k8s.io/apimachinery/pkg/util/errors"
3233
"k8s.io/apimachinery/pkg/util/sets"
3334
"k8s.io/client-go/discovery"
3435
"k8s.io/client-go/kubernetes"
@@ -142,12 +143,10 @@ func (k *proxy) GetConfig() (*rest.Config, error) {
142143
}
143144
restConfig, err := clientcmd.NewDefaultClientConfig(*config, configOverrides).ClientConfig()
144145
if err != nil {
145-
if !strings.HasPrefix(err.Error(), "invalid configuration:") {
146-
return nil, err
147-
}
148-
restConfig, err = rest.InClusterConfig()
149-
if err != nil {
150-
return nil, errors.New(strings.Replace(err.Error(), "invalid configuration:", "invalid kubeconfig file and failed to create inClusterConfig as well:", 1))
146+
var inClusterErr error
147+
restConfig, inClusterErr = rest.InClusterConfig()
148+
if inClusterErr != nil {
149+
return nil, errors.Wrapf(kerrors.NewAggregate([]error{err, inClusterErr}), "clusterctl requires either a valid kubeconfig or in cluster config to connect to the management cluster")
151150
}
152151
}
153152
restConfig.UserAgent = fmt.Sprintf("clusterctl/%s (%s)", version.Get().GitVersion, version.Get().Platform)

0 commit comments

Comments
 (0)