make kubernetes plugin kubeconfig argument 'context' optional (#4451)

Signed-off-by: answer1991 <answer1991.chen@gmail.com>
This commit is contained in:
Jun Chen 2021-02-09 21:36:32 +08:00 committed by GitHub
parent 632463d3a9
commit a5bc3891e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 10 deletions

View file

@ -253,15 +253,18 @@ func ParseStanza(c *caddy.Controller) (*Kubernetes, error) {
}
case "kubeconfig":
args := c.RemainingArgs()
if len(args) == 2 {
config := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
&clientcmd.ClientConfigLoadingRules{ExplicitPath: args[0]},
&clientcmd.ConfigOverrides{CurrentContext: args[1]},
)
k8s.ClientConfig = config
continue
if len(args) != 1 && len(args) != 2 {
return nil, c.ArgErr()
}
return nil, c.ArgErr()
overrides := &clientcmd.ConfigOverrides{}
if len(args) == 2 {
overrides.CurrentContext = args[1]
}
config := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
&clientcmd.ClientConfigLoadingRules{ExplicitPath: args[0]},
overrides,
)
k8s.ClientConfig = config
default:
return nil, c.Errf("unknown property '%s'", c.Val())
}