@@ -34,7 +34,6 @@ import (
34
34
"k8s.io/client-go/kubernetes"
35
35
"k8s.io/client-go/rest"
36
36
"k8s.io/client-go/tools/clientcmd"
37
- ctrl "sigs.k8s.io/controller-runtime"
38
37
"sigs.k8s.io/controller-runtime/pkg/client"
39
38
40
39
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
@@ -132,7 +131,25 @@ func (k *proxy) ValidateKubernetesVersion() error {
132
131
133
132
// GetConfig returns the config for a kubernetes client.
134
133
func (k * proxy ) GetConfig () (* rest.Config , error ) {
135
- restConfig := ctrl .GetConfigOrDie ()
134
+ config , err := k .configLoadingRules .Load ()
135
+ if err != nil {
136
+ return nil , errors .Wrap (err , "failed to load Kubeconfig" )
137
+ }
138
+
139
+ configOverrides := & clientcmd.ConfigOverrides {
140
+ CurrentContext : k .kubeconfig .Context ,
141
+ Timeout : k .timeout .String (),
142
+ }
143
+ restConfig , err := clientcmd .NewDefaultClientConfig (* config , configOverrides ).ClientConfig ()
144
+ 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 , err
151
+ }
152
+ }
136
153
restConfig .UserAgent = fmt .Sprintf ("clusterctl/%s (%s)" , version .Get ().GitVersion , version .Get ().Platform )
137
154
138
155
// Set QPS and Burst to a threshold that ensures the controller runtime client/client go doesn't generate throttling log messages
0 commit comments