@@ -14,7 +14,6 @@ import (
1414 apiserveroptions "k8s.io/apiserver/pkg/server/options"
1515 "k8s.io/apiserver/pkg/util/term"
1616 "k8s.io/apiserver/plugin/pkg/authenticator/token/oidc"
17- "k8s.io/cli-runtime/pkg/genericclioptions"
1817 "k8s.io/client-go/rest"
1918 cliflag "k8s.io/component-base/cli/flag"
2019 "k8s.io/component-base/cli/globalflag"
@@ -47,7 +46,7 @@ func NewRunCommand(stopCh <-chan struct{}) *cobra.Command {
4746
4847 kopOptions := new (options.KubeOIDCProxyOptions )
4948
50- clientConfigFlags := genericclioptions . NewConfigFlags ( true )
49+ clientConfigOptions := options . NewClientFlags ( )
5150
5251 healthCheck := probe .New (strconv .Itoa (readinessProbePort ))
5352
@@ -56,6 +55,8 @@ func NewRunCommand(stopCh <-chan struct{}) *cobra.Command {
5655 Use : "kube-oidc-proxy" ,
5756 Long : "kube-oidc-proxy is a reverse proxy to authenticate users to Kubernetes API servers with Open ID Connect Authentication." ,
5857 RunE : func (cmd * cobra.Command , args []string ) error {
58+ var err error
59+
5960 if cmd .Flag ("version" ).Value .String () == "true" {
6061 version .PrintVersionAndExit ()
6162 }
@@ -68,12 +69,18 @@ func NewRunCommand(stopCh <-chan struct{}) *cobra.Command {
6869 return errors .New ("unable to securely serve on port 8080, used by readiness prob" )
6970 }
7071
71- // client rest config
72- restConfig , err := rest .InClusterConfig ()
73- if err != nil {
72+ var restConfig * rest.Config
7473
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 ()
7784 if err != nil {
7885 return err
7986 }
@@ -145,15 +152,15 @@ func NewRunCommand(stopCh <-chan struct{}) *cobra.Command {
145152 oidcfs := namedFlagSets .FlagSet ("OIDC" )
146153 oidcOptions .AddFlags (oidcfs )
147154
148- ssoptionsWithLB .AddFlags (namedFlagSets .FlagSet ("secure serving " ))
155+ ssoptionsWithLB .AddFlags (namedFlagSets .FlagSet ("Secure Serving " ))
149156
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 " ))
154161
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" ,
157164 false , "Print version information and quit" )
158165
159166 for _ , f := range namedFlagSets .FlagSets {
0 commit comments