This is an automated email from the ASF dual-hosted git repository. lburgazzoli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 46916233a89ce5f551ac8e637129c5eea2d18a55 Author: Andrea Tarocchi <[email protected]> AuthorDate: Tue Dec 17 14:06:50 2019 +0100 Fixed a not configured k8s client being used in commands preRun preventing testability and possibly causing some unwanted effects in some scenarios like loading commands configs/flags from env vars and config files --- pkg/client/client.go | 5 +++++ pkg/cmd/root.go | 7 ++++++- pkg/util/test/client.go | 4 ++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/pkg/client/client.go b/pkg/client/client.go index 55ddf41..2fcb141 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -53,6 +53,7 @@ type Client interface { kubernetes.Interface GetScheme() *runtime.Scheme GetConfig() *rest.Config + GetCurrentNamespace(kubeConfig string) (string, error) } // Injectable identifies objects that can receive a Client @@ -80,6 +81,10 @@ func (c *defaultClient) GetConfig() *rest.Config { return c.config } +func (c *defaultClient) GetCurrentNamespace(kubeConfig string) (string, error) { + return GetCurrentNamespace(kubeConfig) +} + // NewOutOfClusterClient creates a new k8s client that can be used from outside the cluster func NewOutOfClusterClient(kubeconfig string) (Client, error) { initialize(kubeconfig) diff --git a/pkg/cmd/root.go b/pkg/cmd/root.go index cc8473d..c1ed396 100644 --- a/pkg/cmd/root.go +++ b/pkg/cmd/root.go @@ -119,7 +119,12 @@ func addKamelSubcommands(cmd cobra.Command, options RootCmdOptions) *cobra.Comma func (command *RootCmdOptions) preRun(cmd *cobra.Command, _ []string) error { if command.Namespace == "" { - current, err := client.GetCurrentNamespace(command.KubeConfig) + var current string + client, err := command.GetCmdClient() + if err != nil { + return errors.Wrap(err, "cannot get command client") + } + current, err = client.GetCurrentNamespace(command.KubeConfig) if err != nil { return errors.Wrap(err, "cannot get current namespace") } diff --git a/pkg/util/test/client.go b/pkg/util/test/client.go index 47d1bcd..d3df07b 100644 --- a/pkg/util/test/client.go +++ b/pkg/util/test/client.go @@ -61,3 +61,7 @@ func (c *FakeClient) GetScheme() *runtime.Scheme { func (c *FakeClient) GetConfig() *rest.Config { return nil } + +func (c *FakeClient) GetCurrentNamespace(kubeConfig string) (string, error) { + return "", nil +}
