@@ -112,6 +112,8 @@ type ProxyRunOptions struct {
112112 LeaseNamespace string
113113 // Lease Labels
114114 LeaseLabel string
115+ // Needs kubernetes client
116+ NeedsKubernetesClient bool
115117}
116118
117119func (o * ProxyRunOptions ) Flags () * pflag.FlagSet {
@@ -287,29 +289,27 @@ func (o *ProxyRunOptions) Validate() error {
287289 if o .EnableContentionProfiling && ! o .EnableProfiling {
288290 return fmt .Errorf ("if --enable-contention-profiling is set, --enable-profiling must also be set" )
289291 }
290-
291- // validate agent authentication params
292- // all 4 parameters must be empty or must have value (except KubeconfigPath that might be empty)
293- if o .AgentNamespace != "" || o .AgentServiceAccount != "" || o .AuthenticationAudience != "" || o .KubeconfigPath != "" {
292+ usingServiceAccountAuth := o .AgentNamespace != "" || o .AgentServiceAccount != "" || o .AuthenticationAudience != ""
293+ if usingServiceAccountAuth {
294294 if o .ClusterCaCert != "" {
295- return fmt .Errorf ("ClusterCaCert can not be used when service account authentication is enabled" )
295+ return fmt .Errorf ("--cluster-ca-cert can not be used when agent authentication is enabled" )
296296 }
297297 if o .AgentNamespace == "" {
298- return fmt .Errorf ("AgentNamespace cannot be empty when agent authentication is enabled" )
298+ return fmt .Errorf ("--agent-namespace cannot be empty when agent authentication is enabled" )
299299 }
300300 if o .AgentServiceAccount == "" {
301- return fmt .Errorf ("AgentServiceAccount cannot be empty when agent authentication is enabled" )
301+ return fmt .Errorf ("--agent-service-account cannot be empty when agent authentication is enabled" )
302302 }
303303 if o .AuthenticationAudience == "" {
304- return fmt .Errorf ("AuthenticationAudience cannot be empty when agent authentication is enabled" )
304+ return fmt .Errorf ("--authentication-audience cannot be empty when agent authentication is enabled" )
305305 }
306- if o .KubeconfigPath != "" {
307- if _ , err := os .Stat (o .KubeconfigPath ); os .IsNotExist (err ) {
308- return fmt .Errorf ("error checking KubeconfigPath %q, got %v" , o .KubeconfigPath , err )
309- }
306+ }
307+ // Validate kubeconfig path if provided
308+ if o .KubeconfigPath != "" {
309+ if _ , err := os .Stat (o .KubeconfigPath ); os .IsNotExist (err ) {
310+ return fmt .Errorf ("checking KubeconfigPath %q, got %v" , o .KubeconfigPath , err )
310311 }
311312 }
312-
313313 // validate the proxy strategies
314314 if len (o .ProxyStrategies ) == 0 {
315315 return fmt .Errorf ("ProxyStrategies cannot be empty" )
@@ -338,6 +338,8 @@ func (o *ProxyRunOptions) Validate() error {
338338 }
339339 }
340340
341+ o .NeedsKubernetesClient = usingServiceAccountAuth || o .EnableLeaseController
342+
341343 return nil
342344}
343345
0 commit comments