@@ -14,7 +14,6 @@ import (
14
14
apiserveroptions "k8s.io/apiserver/pkg/server/options"
15
15
"k8s.io/apiserver/pkg/util/term"
16
16
"k8s.io/apiserver/plugin/pkg/authenticator/token/oidc"
17
- "k8s.io/cli-runtime/pkg/genericclioptions"
18
17
"k8s.io/client-go/rest"
19
18
cliflag "k8s.io/component-base/cli/flag"
20
19
"k8s.io/component-base/cli/globalflag"
@@ -47,7 +46,7 @@ func NewRunCommand(stopCh <-chan struct{}) *cobra.Command {
47
46
48
47
kopOptions := new (options.KubeOIDCProxyOptions )
49
48
50
- clientConfigFlags := genericclioptions . NewConfigFlags ( true )
49
+ clientConfigOptions := options . NewClientFlags ( )
51
50
52
51
healthCheck := probe .New (strconv .Itoa (readinessProbePort ))
53
52
@@ -56,6 +55,8 @@ func NewRunCommand(stopCh <-chan struct{}) *cobra.Command {
56
55
Use : "kube-oidc-proxy" ,
57
56
Long : "kube-oidc-proxy is a reverse proxy to authenticate users to Kubernetes API servers with Open ID Connect Authentication." ,
58
57
RunE : func (cmd * cobra.Command , args []string ) error {
58
+ var err error
59
+
59
60
if cmd .Flag ("version" ).Value .String () == "true" {
60
61
version .PrintVersionAndExit ()
61
62
}
@@ -68,12 +69,18 @@ func NewRunCommand(stopCh <-chan struct{}) *cobra.Command {
68
69
return errors .New ("unable to securely serve on port 8080, used by readiness prob" )
69
70
}
70
71
71
- // client rest config
72
- restConfig , err := rest .InClusterConfig ()
73
- if err != nil {
72
+ var restConfig * rest.Config
74
73
75
- // fall back to cli flags if in cluster fails
76
- restConfig , err = clientConfigFlags .ToRESTConfig ()
74
+ if clientConfigOptions .ClientFlagsChanged (cmd ) {
75
+ // one or more client flags have been set to use client flag built
76
+ // config
77
+ restConfig , err = clientConfigOptions .ToRESTConfig ()
78
+ if err != nil {
79
+ return err
80
+ }
81
+ } else {
82
+ // no client flags have been set so default to in-cluster config
83
+ restConfig , err = rest .InClusterConfig ()
77
84
if err != nil {
78
85
return err
79
86
}
@@ -145,15 +152,15 @@ func NewRunCommand(stopCh <-chan struct{}) *cobra.Command {
145
152
oidcfs := namedFlagSets .FlagSet ("OIDC" )
146
153
oidcOptions .AddFlags (oidcfs )
147
154
148
- ssoptionsWithLB .AddFlags (namedFlagSets .FlagSet ("secure serving " ))
155
+ ssoptionsWithLB .AddFlags (namedFlagSets .FlagSet ("Secure Serving " ))
149
156
150
- clientConfigFlags .CacheDir = nil
151
- clientConfigFlags .Impersonate = nil
152
- clientConfigFlags .ImpersonateGroup = nil
153
- clientConfigFlags .AddFlags (namedFlagSets .FlagSet ("client " ))
157
+ clientConfigOptions .CacheDir = nil
158
+ clientConfigOptions .Impersonate = nil
159
+ clientConfigOptions .ImpersonateGroup = nil
160
+ clientConfigOptions .AddFlags (namedFlagSets .FlagSet ("Client " ))
154
161
155
- globalflag .AddGlobalFlags (namedFlagSets .FlagSet ("misc " ), cmd .Name ())
156
- namedFlagSets .FlagSet ("misc " ).Bool ("version" ,
162
+ globalflag .AddGlobalFlags (namedFlagSets .FlagSet ("Misc " ), cmd .Name ())
163
+ namedFlagSets .FlagSet ("Misc " ).Bool ("version" ,
157
164
false , "Print version information and quit" )
158
165
159
166
for _ , f := range namedFlagSets .FlagSets {
0 commit comments