Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package pluto for openSUSE:Factory checked 
in at 2022-03-25 21:54:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pluto (Old)
 and      /work/SRC/openSUSE:Factory/.pluto.new.1900 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pluto"

Fri Mar 25 21:54:43 2022 rev:8 rq:964801 version:5.7.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/pluto/pluto.changes      2022-03-18 
16:42:49.309210772 +0100
+++ /work/SRC/openSUSE:Factory/.pluto.new.1900/pluto.changes    2022-03-25 
21:54:55.974293025 +0100
@@ -1,0 +2,7 @@
+Fri Mar 25 09:06:04 UTC 2022 - ka...@b1-systems.de
+
+- Update to version 5.7.0:
+  * Add flag for --kube-context (#302)
+  * updated dependencies (#300)
+
+-------------------------------------------------------------------

Old:
----
  pluto-5.6.0.tar.gz

New:
----
  pluto-5.7.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ pluto.spec ++++++
--- /var/tmp/diff_new_pack.lBLSsY/_old  2022-03-25 21:54:56.706293721 +0100
+++ /var/tmp/diff_new_pack.lBLSsY/_new  2022-03-25 21:54:56.714293729 +0100
@@ -19,7 +19,7 @@
 %define __arch_install_post export NO_BRP_STRIP_DEBUG=true
 
 Name:           pluto
-Version:        5.6.0
+Version:        5.7.0
 Release:        0
 Summary:        A cli tool to help discover deprecated apiVersions in 
Kubernetes
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.lBLSsY/_old  2022-03-25 21:54:56.770293782 +0100
+++ /var/tmp/diff_new_pack.lBLSsY/_new  2022-03-25 21:54:56.774293786 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/FairwindsOps/pluto</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v5.6.0</param>
+    <param name="revision">v5.7.0</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>
@@ -16,7 +16,7 @@
     <param name="compression">gz</param>
   </service>
   <service name="go_modules" mode="disabled">
-    <param name="archive">pluto-5.6.0.tar.gz</param>
+    <param name="archive">pluto-5.7.0.tar.gz</param>
   </service>
 </services>
 

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.lBLSsY/_old  2022-03-25 21:54:56.806293816 +0100
+++ /var/tmp/diff_new_pack.lBLSsY/_new  2022-03-25 21:54:56.806293816 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/FairwindsOps/pluto</param>
-              <param 
name="changesrevision">330438ef6deb89725f178abed9e10c9457c39279</param></service></servicedata>
+              <param 
name="changesrevision">b63ce35f460e4d498c36c261936912b8e96a8ef2</param></service></servicedata>
 (No newline at EOF)
 

++++++ pluto-5.6.0.tar.gz -> pluto-5.7.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pluto-5.6.0/.circleci/config.yml 
new/pluto-5.7.0/.circleci/config.yml
--- old/pluto-5.6.0/.circleci/config.yml        2022-03-17 22:10:53.000000000 
+0100
+++ new/pluto-5.7.0/.circleci/config.yml        2022-03-23 14:36:08.000000000 
+0100
@@ -7,7 +7,7 @@
 executors:
   golang-exec:
     docker:
-      - image: circleci/golang:1.17-buster
+      - image: cimg/go:1.17
 
 references:
   e2e_config: &e2e_config
@@ -54,9 +54,9 @@
         circleci version
 jobs:
   test:
-    working_directory: /go/src/github.com/fairwindsops/pluto
+    working_directory: /home/circleci/go/src/github.com/fairwindsops/pluto
     docker:
-      - image: circleci/golang:1.17
+      - image: cimg/go:1.17
     steps:
       - checkout
       - run: go mod download && go mod verify
@@ -79,7 +79,7 @@
             chmod +x insights-ci.sh
             ./insights-ci.sh
   release:
-    working_directory: /go/src/github.com/fairwindsops/pluto
+    working_directory: /home/circleci/go/src/github.com/fairwindsops/pluto
     resource_class: large
     shell: /bin/bash
     docker:
@@ -103,7 +103,7 @@
       - run: echo 'export GORELEASER_CURRENT_TAG="${CIRCLE_TAG}"' >> $BASH_ENV
       - run: goreleaser
   snapshot:
-    working_directory: /go/src/github.com/fairwindsops/pluto
+    working_directory: /home/circleci/go/src/github.com/fairwindsops/pluto
     resource_class: large
     docker:
       - image: goreleaser/goreleaser:v1.5.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pluto-5.6.0/cmd/root.go new/pluto-5.7.0/cmd/root.go
--- old/pluto-5.6.0/cmd/root.go 2022-03-17 22:10:53.000000000 +0100
+++ new/pluto-5.7.0/cmd/root.go 2022-03-23 14:36:08.000000000 +0100
@@ -47,6 +47,7 @@
        customColumns          []string
        componentsFromUser     []string
        onlyShowRemoved        bool
+       kubeContext            string
 )
 
 const (
@@ -78,6 +79,7 @@
 
        rootCmd.AddCommand(detectHelmCmd)
        detectHelmCmd.PersistentFlags().StringVarP(&namespace, "namespace", 
"n", "", "Only detect releases in a specific namespace.")
+       detectHelmCmd.PersistentFlags().StringVar(&kubeContext, "kube-context", 
"", "The kube context to use. If blank, defaults to current context.")
 
        rootCmd.AddCommand(listVersionsCmd)
        rootCmd.AddCommand(detectCmd)
@@ -100,12 +102,20 @@
        cmd.Flags().VisitAll(func(f *pflag.Flag) {
                if strings.Contains(f.Name, "-") {
                        envVarSuffix := 
strings.ToUpper(strings.ReplaceAll(f.Name, "-", "_"))
-                       v.BindEnv(f.Name, fmt.Sprintf("%s_%s", envPrefix, 
envVarSuffix))
+                       err := v.BindEnv(f.Name, fmt.Sprintf("%s_%s", 
envPrefix, envVarSuffix))
+                       if err != nil {
+                               klog.Errorf("error binding flag %s to env var 
%s_%s: %w", f.Name, envPrefix, envVarSuffix, err)
+                               return
+                       }
                }
 
                if !f.Changed && v.IsSet(f.Name) {
                        val := v.Get(f.Name)
-                       cmd.Flags().Set(f.Name, fmt.Sprintf("%v", val))
+                       err := cmd.Flags().Set(f.Name, fmt.Sprintf("%v", val))
+                       if err != nil {
+                               klog.Errorf("error setting flag %s to %v: %w", 
f.Name, val, err)
+                               return
+                       }
                }
        })
 }
@@ -123,7 +133,10 @@
                os.Exit(1)
        },
        PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
-               initializeConfig(cmd)
+               err := initializeConfig(cmd)
+               if err != nil {
+                       return err
+               }
 
                //verify output option
                if !api.StringInSlice(outputFormat, outputOptions) {
@@ -272,8 +285,12 @@
        Short: "detect-helm",
        Long:  `Detect Kubernetes apiVersions in a helm release (in cluster)`,
        Run: func(cmd *cobra.Command, args []string) {
-               h := helm.NewHelm(namespace, apiInstance)
-               err := h.FindVersions()
+               h, err := helm.NewHelm(namespace, kubeContext, apiInstance)
+               if err != nil {
+                       fmt.Printf("error getting helm configuration: %s\n", 
err.Error())
+                       os.Exit(1)
+               }
+               err = h.FindVersions()
                if err != nil {
                        fmt.Println("Error running helm-detect:", err)
                        os.Exit(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pluto-5.6.0/docs/advanced.md 
new/pluto-5.7.0/docs/advanced.md
--- old/pluto-5.6.0/docs/advanced.md    2022-03-17 22:10:53.000000000 +0100
+++ new/pluto-5.7.0/docs/advanced.md    2022-03-23 14:36:08.000000000 +0100
@@ -185,6 +185,10 @@
 
 Please note that we do not allow overriding anything contained in the default 
`versions.yaml` that Pluto uses.
 
+## Kube Context
+
+When doing helm detection, you may want to use the `--kube-context` to specify 
a particular context you wish to use in your kubeconfig.
+
 ## Environment Variables
 
 For easier use, you can specify flags by using environment variables.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pluto-5.6.0/e2e/tests/01_helm-detect-3.yaml 
new/pluto-5.7.0/e2e/tests/01_helm-detect-3.yaml
--- old/pluto-5.6.0/e2e/tests/01_helm-detect-3.yaml     2022-03-17 
22:10:53.000000000 +0100
+++ new/pluto-5.7.0/e2e/tests/01_helm-detect-3.yaml     2022-03-23 
14:36:08.000000000 +0100
@@ -59,6 +59,13 @@
     - result.code ShouldEqual 3
     - result.systemout ShouldEqual 
{"items":[{"name":"test/test-helm3chart-v1beta1","namespace":"default","api":{"version":"extensions/v1beta1","kind":"Deployment","deprecated-in":"v1.9.0","removed-in":"v1.16.0","replacement-api":"apps/v1","component":"k8s"},"deprecated":true,"removed":true},{"name":"test/test-helm3chart-v1beta1","namespace":"demo2","api":{"version":"extensions/v1beta1","kind":"Deployment","deprecated-in":"v1.9.0","removed-in":"v1.16.0","replacement-api":"apps/v1","component":"k8s"},"deprecated":true,"removed":true}],"target-versions":{"cert-manager":"v1.5.3","istio":"v1.11.0","k8s":"v1.16.0"}}
 
+- name: helm detect --kube-context=doesnotexist
+  steps:
+  - script: pluto detect-helm --kube-context doesnotexist
+    assertions:
+    - result.code ShouldEqual 1
+    - result.systemout ShouldContainSubstring 'context "doesnotexist" does not 
exist'
+
 - name: cleanup
   steps:
   - script: |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pluto-5.6.0/go.mod new/pluto-5.7.0/go.mod
--- old/pluto-5.6.0/go.mod      2022-03-17 22:10:53.000000000 +0100
+++ new/pluto-5.7.0/go.mod      2022-03-23 14:36:08.000000000 +0100
@@ -10,16 +10,16 @@
        github.com/spf13/cobra v1.4.0
        github.com/spf13/pflag v1.0.5
        github.com/spf13/viper v1.10.1
-       github.com/stretchr/testify v1.7.0
+       github.com/stretchr/testify v1.7.1
        golang.org/x/mod v0.5.1
        golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5 // indirect
        golang.org/x/text v0.3.7 // indirect
        gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
        helm.sh/helm/v3 v3.8.1
-       k8s.io/api v0.23.4
-       k8s.io/apimachinery v0.23.4
-       k8s.io/client-go v0.23.4
-       k8s.io/klog/v2 v2.40.1
+       k8s.io/api v0.23.5
+       k8s.io/apimachinery v0.23.5
+       k8s.io/client-go v0.23.5
+       k8s.io/klog/v2 v2.60.1
        sigs.k8s.io/controller-runtime v0.11.1
 )
 
@@ -38,7 +38,7 @@
        github.com/evanphx/json-patch v4.12.0+incompatible // indirect
        github.com/fsnotify/fsnotify v1.5.1 // indirect
        github.com/go-gorp/gorp/v3 v3.0.2 // indirect
-       github.com/go-logr/logr v1.2.2 // indirect
+       github.com/go-logr/logr v1.2.3 // indirect
        github.com/gogo/protobuf v1.3.2 // indirect
        github.com/golang-jwt/jwt/v4 v4.3.0 // indirect
        github.com/golang/protobuf v1.5.2 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pluto-5.6.0/go.sum new/pluto-5.7.0/go.sum
--- old/pluto-5.6.0/go.sum      2022-03-17 22:10:53.000000000 +0100
+++ new/pluto-5.7.0/go.sum      2022-03-23 14:36:08.000000000 +0100
@@ -409,8 +409,8 @@
 github.com/go-logr/logr v0.1.0/go.mod 
h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
 github.com/go-logr/logr v0.2.0/go.mod 
h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
 github.com/go-logr/logr v1.2.0/go.mod 
h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.2.2 h1:ahHml/yUpnlb96Rp8HCvtYVPY8ZYpxq3g7UYchIYwbs=
-github.com/go-logr/logr v1.2.2/go.mod 
h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
+github.com/go-logr/logr v1.2.3/go.mod 
h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
 github.com/go-logr/zapr v1.2.0 h1:n4JnPI1T3Qq1SFEi/F8rwLrZERp2bso19PJZDB9dayk=
 github.com/go-logr/zapr v1.2.0/go.mod 
h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro=
 github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod 
h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
@@ -990,8 +990,9 @@
 github.com/stretchr/testify v1.4.0/go.mod 
h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 github.com/stretchr/testify v1.5.1/go.mod 
h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
 github.com/stretchr/testify v1.6.1/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.7.0 
h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
 github.com/stretchr/testify v1.7.0/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.1 
h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
+github.com/stretchr/testify v1.7.1/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/subosito/gotenv v1.2.0 
h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=
 github.com/subosito/gotenv v1.2.0/go.mod 
h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
 github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod 
h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
@@ -1692,8 +1693,9 @@
 k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ=
 k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8=
 k8s.io/api v0.23.0/go.mod h1:8wmDdLBHBNxtOIytwLstXt5E9PddnZb0GaMcqsvDBpg=
-k8s.io/api v0.23.4 h1:85gnfXQOWbJa1SiWGpE9EEtHs0UVvDyIsSMpEtl2D4E=
 k8s.io/api v0.23.4/go.mod h1:i77F4JfyNNrhOjZF7OwwNJS5Y1S9dpwvb9iYRYRczfI=
+k8s.io/api v0.23.5 h1:zno3LUiMubxD/V1Zw3ijyKO3wxrhbUF1Ck+VjBvfaoA=
+k8s.io/api v0.23.5/go.mod h1:Na4XuKng8PXJ2JsploYYrivXrINeTaycCGcYgF91Xm8=
 k8s.io/apiextensions-apiserver v0.23.0/go.mod 
h1:xIFAEEDlAZgpVBl/1VSjGDmLoXAWRG40+GsWhKhAxY4=
 k8s.io/apiextensions-apiserver v0.23.4 
h1:AFDUEu/yEf0YnuZhqhIFhPLPhhcQQVuR1u3WCh0rveU=
 k8s.io/apiextensions-apiserver v0.23.4/go.mod 
h1:TWYAKymJx7nLMxWCgWm2RYGXHrGlVZnxIlGnvtfYu+g=
@@ -1701,8 +1703,9 @@
 k8s.io/apimachinery v0.20.4/go.mod 
h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
 k8s.io/apimachinery v0.20.6/go.mod 
h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc=
 k8s.io/apimachinery v0.23.0/go.mod 
h1:fFCTTBKvKcwTPFzjlcxp91uPFZr+JA0FubU4fLzzFYc=
-k8s.io/apimachinery v0.23.4 h1:fhnuMd/xUL3Cjfl64j5ULKZ1/J9n8NuQEgNL+WXWfdM=
 k8s.io/apimachinery v0.23.4/go.mod 
h1:BEuFMMBaIbcOqVIJqNZJXGFTP4W6AycEpb5+m/97hrM=
+k8s.io/apimachinery v0.23.5 h1:Va7dwhp8wgkUPWsEXk6XglXWU4IKYLKNlv8VkX7SDM0=
+k8s.io/apimachinery v0.23.5/go.mod 
h1:BEuFMMBaIbcOqVIJqNZJXGFTP4W6AycEpb5+m/97hrM=
 k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU=
 k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM=
 k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q=
@@ -1713,8 +1716,9 @@
 k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k=
 k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0=
 k8s.io/client-go v0.23.0/go.mod h1:hrDnpnK1mSr65lHHcUuIZIXDgEbzc7/683c6hyG4jTA=
-k8s.io/client-go v0.23.4 h1:YVWvPeerA2gpUudLelvsolzH7c2sFoXXR5wM/sWqNFU=
 k8s.io/client-go v0.23.4/go.mod h1:PKnIL4pqLuvYUK1WU7RLTMYKPiIh7MYShLshtRY9cj0=
+k8s.io/client-go v0.23.5 h1:zUXHmEuqx0RY4+CsnkOn5l0GU+skkRXKGJrhmE2SLd8=
+k8s.io/client-go v0.23.5/go.mod h1:flkeinTO1CirYgzMPRWxUCnV0G4Fbu2vLhYCObnt/r4=
 k8s.io/code-generator v0.19.7/go.mod 
h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0=
 k8s.io/code-generator v0.23.0/go.mod 
h1:vQvOhDXhuzqiVfM/YHp+dmg10WDZCchJVObc9MvowsE=
 k8s.io/code-generator v0.23.4/go.mod 
h1:S0Q1JVA+kSzTI1oUvbKAxZY/DYbA/ZUb4Uknog12ETk=
@@ -1736,8 +1740,8 @@
 k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
 k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
 k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/klog/v2 v2.40.1 h1:P4RRucWk/lFOlDdkAr3mc7iWFkgKrZY9qZMAgek06S4=
-k8s.io/klog/v2 v2.40.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
+k8s.io/klog/v2 v2.60.1 h1:VW25q3bZx9uE3vvdL6M8ezOX79vA2Aq1nEWLqNQclHc=
+k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
 k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod 
h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
 k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod 
h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM=
 k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod 
h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pluto-5.6.0/pkg/helm/helm.go 
new/pluto-5.7.0/pkg/helm/helm.go
--- old/pluto-5.6.0/pkg/helm/helm.go    2022-03-17 22:10:53.000000000 +0100
+++ new/pluto-5.7.0/pkg/helm/helm.go    2022-03-23 14:36:08.000000000 +0100
@@ -58,12 +58,17 @@
 }
 
 // NewHelm returns a basic helm struct with the version of helm requested
-func NewHelm(namespace string, instance *api.Instance) *Helm {
+func NewHelm(namespace, kubeContext string, instance *api.Instance) (*Helm, 
error) {
+       config, err := getConfigInstance(kubeContext)
+       if err != nil {
+               return nil, err
+       }
+
        return &Helm{
-               Kube:      getConfigInstance(),
+               Kube:      config,
                Namespace: namespace,
                Instance:  instance,
-       }
+       }, nil
 }
 
 // NewHelmWithKubeClient returns a helm struct with version of helm requested
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pluto-5.6.0/pkg/helm/kube.go 
new/pluto-5.7.0/pkg/helm/kube.go
--- old/pluto-5.6.0/pkg/helm/kube.go    2022-03-17 22:10:53.000000000 +0100
+++ new/pluto-5.7.0/pkg/helm/kube.go    2022-03-23 14:36:08.000000000 +0100
@@ -15,11 +15,11 @@
 package helm
 
 import (
-       "fmt"
-       "os"
        "sync"
 
        "k8s.io/client-go/kubernetes"
+       "k8s.io/klog/v2"
+
        // This is required to auth to cloud providers (i.e. GKE)
        _ "k8s.io/client-go/plugin/pkg/client/auth"
        "sigs.k8s.io/controller-runtime/pkg/client/config"
@@ -33,27 +33,38 @@
 var once sync.Once
 
 // GetConfigInstance returns a Kubernetes interface based on the current 
configuration
-func getConfigInstance() *kube {
+func getConfigInstance(kubeContext string) (*kube, error) {
+       var err error
+       var client kubernetes.Interface
+
        once.Do(func() {
                if kubeClient == nil {
+                       client, err = getKubeClient(kubeContext)
+
                        kubeClient = &kube{
-                               Client: getKubeClient(),
+                               Client: client,
                        }
                }
        })
-       return kubeClient
+       if err != nil {
+               return nil, err
+       }
+       return kubeClient, nil
 }
 
-func getKubeClient() kubernetes.Interface {
-       kubeConf, err := config.GetConfig()
+func getKubeClient(kubeContext string) (kubernetes.Interface, error) {
+       if kubeContext != "" {
+               klog.V(3).Infof("using kube context: %s", kubeContext)
+       }
+
+       kubeConfig, err := config.GetConfigWithContext(kubeContext)
+
        if err != nil {
-               fmt.Println("Error getting kubeconfig:", err)
-               os.Exit(1)
+               return nil, err
        }
-       clientset, err := kubernetes.NewForConfig(kubeConf)
+       clientset, err := kubernetes.NewForConfig(kubeConfig)
        if err != nil {
-               fmt.Println("Error creating kubernetes client:", err)
-               os.Exit(1)
+               return nil, err
        }
-       return clientset
+       return clientset, nil
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pluto-5.6.0/pkg/helm/kube_test.go 
new/pluto-5.7.0/pkg/helm/kube_test.go
--- old/pluto-5.6.0/pkg/helm/kube_test.go       2022-03-17 22:10:53.000000000 
+0100
+++ new/pluto-5.7.0/pkg/helm/kube_test.go       2022-03-23 14:36:08.000000000 
+0100
@@ -1,7 +1,12 @@
 package helm
 
 import (
+       "os"
+       "testing"
+
+       "github.com/stretchr/testify/assert"
        testclient "k8s.io/client-go/kubernetes/fake"
+       _ "k8s.io/client-go/plugin/pkg/client/auth"
 )
 
 func getMockConfigInstance() *kube {
@@ -10,3 +15,42 @@
        }
        return kubeClient
 }
+
+func Test_getKubeClient(t *testing.T) {
+       tests := []struct {
+               name        string
+               kubeContext string
+               kubeConfig  string
+               wantErr     bool
+       }{
+               {
+                       name:        "context does not exist",
+                       kubeContext: "farglebargle",
+                       kubeConfig:  "testdata/kubeconfig",
+                       wantErr:     true,
+               },
+               {
+                       name:        "context exists",
+                       kubeContext: "kind-kind",
+                       kubeConfig:  "testdata/kubeconfig",
+                       wantErr:     false,
+               },
+               {
+                       name:        "invalid kubeconfig",
+                       kubeContext: "kind-kind",
+                       kubeConfig:  "testdata/kubeconfig_invalid",
+                       wantErr:     true,
+               },
+       }
+       for _, tt := range tests {
+               t.Run(tt.name, func(t *testing.T) {
+                       os.Setenv("KUBECONFIG", tt.kubeConfig)
+                       _, err := getKubeClient(tt.kubeContext)
+                       if tt.wantErr {
+                               assert.Error(t, err)
+                       } else {
+                               assert.NoError(t, err)
+                       }
+               })
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pluto-5.6.0/pkg/helm/testdata/kubeconfig 
new/pluto-5.7.0/pkg/helm/testdata/kubeconfig
--- old/pluto-5.6.0/pkg/helm/testdata/kubeconfig        1970-01-01 
01:00:00.000000000 +0100
+++ new/pluto-5.7.0/pkg/helm/testdata/kubeconfig        2022-03-23 
14:36:08.000000000 +0100
@@ -0,0 +1,19 @@
+apiVersion: v1
+clusters:
+- cluster:
+    certificate-authority-data: 
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeU1ETXdNekU1TURNek5sb1hEVE15TURJeU9URTVNRE16Tmxvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS0haCjhyVXFhN1JadVNNUlU2eXNNcDJLc1U3cnJHQTdGWmpMVjZzRG1qUG5Xb2U3enZEdGlkQUhwQ2FpM0lxblBMOVgKMTBmV2RFQnU3MjN1YWFYV3VTNVRBQWNkZSt4NU45WmE5S3hTRXV2OG1zeE1wUjl0ZmJsR2ltSURiNSs3YW5PTgo4ZVV2UzBVR05pNENIWUl2aGM3c2wxbTNBaDRIUWVBMzBnL2xORHJOTytkVlYwaVczbkpNNE8yL1JBOW54UlVZCmQxbmxwQ1R1SkZmaThKeXlkZnpwd0x0QnROMW5zNVRLUThsdlJEWStZTER3OGY0aVhMSzB5YVVhUkZmVkhWSzkKRk43WWRCM2tnbXAxU25YYUNFVngrWkZRd0VkR2EzcEZ1ZHJiL01DMDZ6cFhnQzluTCtoRy82U1dCK3VXS2hiQwpmYXVFcnRNeVBVbmJJUUFzMTEwQ0F3RUFBYU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZCUVI2WXpWRDJUOVVlK0tacVJyNU1ZSEY4bm1NQTBHQ1NxR1NJYjMKRFFFQkN3VUFBNElCQVFBZ3VkelhtYXpRb1gyWDB0QnY0WG9ieWN6ZmMyUTFSd
 
29PUVY2TW5aNUE5NnJrS0kzawpHNklRS3ptWTFWNDhRRDhPTlZxdGdaRnNrU1ZrK05tSGM1c1Q2eE1YSWtDa2xFcUJLbFh4NHk5WDNHdkRjbERqClFtc044V0lHTThhbmFNRmtkajRqcDhZZEZWWktxcEpuaXljOVpIL1ozRjlITnFyMWlaL2VwbkZXczRMcnl4bkcKOWZjNlBjVnEvQVROdUhxalpGNjRFTkxxeHUwVUJvTFlCMFFuU1ZlalM3RnpRMzV4RHI5dGRpVnFKUzhhcmJRcgo0RHpuaU1rendzNUlQcGlvelNVSUlTeVVSc0pra2R0bW5OU3pwcWc3Y09Xc3NlYktXUU8rbURMSHcyMVVxb0JrCkZZbUhDVnNTRHlOaXdGYWtadUhZRGN5dDdjbDMwY1cvYjhmcAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
+    server: https://127.0.0.1:54753
+  name: kind-kind
+contexts:
+- context:
+    cluster: kind-kind
+    user: kind-kind
+  name: kind-kind
+current-context: kind-kind
+kind: Config
+preferences: {}
+users:
+- name: kind-kind
+  user:
+    client-certificate-data: 
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJVENDQWdtZ0F3SUJBZ0lJU2pHek1STjQ4aTR3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TWpBek1ETXhPVEF6TXpaYUZ3MHlNekF6TURNeE9UQXpNemxhTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTBaVXlOUXdRYk1hbFppRkUKUCthZThxY091TFF3QXUzU3FVNGRkcjNWL0hHeVJRWk4vZXRCTDRBaGFnK0E1ZHl3L3g5bnFJK1pTZStjNXVQUwpHUHNqaE96SFdnYi9XNHdvcXZ4cXdLQXd2cEFrZW9CeTEwYWxWaEVOcHVTbWk5cDRxalVpNm84ZmdSUDJCK1BlCkI5QmFLSDBQcUtMZDc4Q1hJci9rcVhkY0dqWHNZMjZNU1FSYVF0VFExY0xaR0VOakRNbnBxNnppb256NHoxZXEKTXlZRnB6eHJDZ0dqVTZvVU45cTJBRFpQZ1pyREJUdzFudTB6ZEJTRHZhVkQrV2pqN3VPMUI1WCt0Qml3NjJnZApPUEZnOE9LcThZUitSNUZpSzQrNE5jSjgvVzVkVWg3ZlZQRHVZL2VSMDg2M1NMdUlQS0srcDZaMW9mSEx5YnZWCm1jMm50d0lEQVFBQm8xWXdWREFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RBWURWUjBUQVFIL0JBSXdBREFmQmdOVkhTTUVHREFXZ0JRVUVlbU0xUTlr
 
L1ZIdmltYWthK1RHQnhmSgo1akFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBRTdNL21iSDh5UzIrelRCYTMycCtxMXl2TUFGbC9tbHVVaVZGCjJjVks5SWRDbHpYTGZMWTJWdVphbGdWOEdJdmYxTi9IK1dpQW5DYUdKeUN0R0c0VTVQQWJoVlRaNHFkVGRDcG8KU1R6Y0JXczJJeXRMSU1OclMzU2cwQXVLZ2ovZzZRVGxSaXN6SHZvazkrQURzenQvem1LeFZlbEM0aGFnYXVRVwpOaktZenFFWEN1SmFnUkQxY1lhYksxQlgyQ2cxYytpY0F3ZTdBazFKSmcxQ2JFVTNZSUZ2Yks1THJvK0hDSjArCk1RdUZ1T1VpQm1ScFlwY1ZUMkpCbHVmdjYvNENvcmZtdUdCeXUyN3E1ZmNUVkFGSmlKaGgxYWRBTGY5cURpY1kKUFpoYXNNTysvcTlpSkhRUk1KWklvNVNLWnBUMzg3WEE4SUI3THMvUjg2QVVTL3BVUWc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
+    client-key-data: 
LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcGdJQkFBS0NBUUVBMFpVeU5Rd1FiTWFsWmlGRVArYWU4cWNPdUxRd0F1M1NxVTRkZHIzVi9IR3lSUVpOCi9ldEJMNEFoYWcrQTVkeXcveDlucUkrWlNlK2M1dVBTR1BzamhPekhXZ2IvVzR3b3F2eHF3S0F3dnBBa2VvQnkKMTBhbFZoRU5wdVNtaTlwNHFqVWk2bzhmZ1JQMkIrUGVCOUJhS0gwUHFLTGQ3OENYSXIva3FYZGNHalhzWTI2TQpTUVJhUXRUUTFjTFpHRU5qRE1ucHE2emlvbno0ejFlcU15WUZwenhyQ2dHalU2b1VOOXEyQURaUGdackRCVHcxCm51MHpkQlNEdmFWRCtXamo3dU8xQjVYK3RCaXc2MmdkT1BGZzhPS3E4WVIrUjVGaUs0KzROY0o4L1c1ZFVoN2YKVlBEdVkvZVIwODYzU0x1SVBLSytwNloxb2ZITHlidlZtYzJudHdJREFRQUJBb0lCQVFDeHR5Vi92ZDhmbmNJYQp2QkszYk1OVFZ6MHdlZnBNUVlYa2NveWhaNC9RSkVqYUp1SnpjYzB3amlISFlhWVhRL0FDSllzc2I3ZTM3aXJKCnpsMFZPYitBczViSFRDKzBYVUVPM0VOWlczeDUycGhVR0I5SlZHcFdkTmR5c1doWUpzVXk3eVBRYWRSNUM0Z1EKWUxTaFE1ZHZ4YnhGYnZWcW01Q01zdE1lc0V1MUhJT0VmMUNEVHMzVTJON2VrVVJFUXdXcXlyVmUyWFN2R3grZAp4SHpiUzFMRzZjcGdpT1BCVXBxUitpcDZBZFlkd0FoWW9kQ1ZXUWVtQWw5TDhNMW5TNUVRME0xcUNzR0VidUpCClZ1cGszaWlmeUViL2VqZ1kvUkMrY01aelZkNEFVTVlsenJGaFNvYk9RQk1NMHFRbFky
 
VHQ2bGR1OHR4YzNMRDYKTG9oL2pWUmhBb0dCQU8ydW9tbmMvYk81bGRpSTBJZUt6bzQvcEUvYWlJUlRxUjRuTjVOUVdkLzkya3NSenNtNApRL0tiMjJhNVlwRU93TWphZVFpdjJ3UGdrUzRJYTBVaVJyZlA3VjdEMzRwVG5wTytBVGtqV1B3TkJNMjNzc01pClpNZnJlWUMzSjlnQUhDQ0hjZW5VSXRGSW9zeUtncXhxVExCbEFqTTYvNHVydHNlc3ovUFFBMGxkQW9HQkFPRzgKTEdQY2FhSDN5dlVycjU2dDFjaHBEVm5MeEZUVmhzZ2lTdmxzUWpjQ1dCT1RnRDE4dFRmd2phY1VENEFyTjdRUgp4QndUMHhhNUppNitXT1ArRUhaNFpXYmovR3dXc2YxQzlLRVJhUEJhQ0MxWWViV2FPNU5Ka2NmMVNibzA5T1ZLCll0bm1kdjRYWCtUd1laUWd5Z0hMSXlWUkppY0NvSEliTVFyNit5QWpBb0dCQUw4LzdCUCs3RzIzZ1dtUS9TcHoKZUsxaGJGZU00cGlIc09kQWF5bXdXQUV5aEhvdlJCTnduOHdSdVVNNUhLVFlHQ3dHRDZuN3h1R2h5M0FjK2lQUQo1dEoxRHUxWDh3R2RNMVp5WncyUThjTXV2cFRCb2FmK2Z0V1hGbGVLQ1JkM1R5cWxrZld5NnFrNEp6Y3FwT2NUClNjNE9HTzBjSmhBL0JYNDZBY0tQdUhWSkFvR0JBS2IzZzdIOWgxaVpLMUw3RkRSL2lpQnBxOGxla2dMWnlZN2cKNXFuazdIazV6Nkh6T1NqQnhGenpIaU9XRC8wU2VtcER0ZFc2eUNrSG0vbDVLOUMvekxlRVNDUzV2NnpIZ0xHKwp3NmtiY281TldiMElzMFdqSml2RWdBTHlLSzJGbkJxNVViS3c2QlQ3ZngrY3VlQlIvSGtsSXdMb0toc3lzekNUCmNrd1g1b1lYQW9HQkFMVHhmQ
 
2cwaGY4bGJwUmlNeVFQc2NBMlJUS003T3pmZCtFZ1NFOHNxWHU0akxiQ3FJR2kKSC95TlhIRHZ6Y2tkZ1BkRW1BOVRqWit4SXVnK2JDMnVidGNCeHpMS1VPSko1MVplNEZNNU81eFY0MWpiTDdIcgo5QUdYdFA2UlEwU0hTeEQvZjBtQkMwdGdQZHcrajN4SHd4R3FKTTZkSWp2U0EwUmJFNG9HU0FWNAotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pluto-5.6.0/pkg/helm/testdata/kubeconfig_invalid 
new/pluto-5.7.0/pkg/helm/testdata/kubeconfig_invalid
--- old/pluto-5.6.0/pkg/helm/testdata/kubeconfig_invalid        1970-01-01 
01:00:00.000000000 +0100
+++ new/pluto-5.7.0/pkg/helm/testdata/kubeconfig_invalid        2022-03-23 
14:36:08.000000000 +0100
@@ -0,0 +1,19 @@
+apiVersion: v1
+clusters:
+- cluster:
+    certificate-authority-data: 
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeU1ETXdNekU1TURNek5sb1hEVE15TURJeU9URTVNRE16Tmxvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS0haCjhyVXFhN1JadVNNUlU2eXNNcDJLc1U3cnJHQTdGWmpMVjZzRG1qUG5Xb2U3enZEdGlkQUhwQ2FpM0lxblBMOVgKMTBmV2RFQnU3MjN1YWFYV3VTNVRBQWNkZSt4NU45WmE5S3hTRXV2OG1zeE1wUjl0ZmJsR2ltSURiNSs3YW5PTgo4ZVV2UzBVR05pNENIWUl2aGM3c2wxbTNBaDRIUWVBMzBnL2xORHJOTytkVlYwaVczbkpNNE8yL1JBOW54UlVZCmQxbmxwQ1R1SkZmaThKeXlkZnpwd0x0QnROMW5zNVRLUThsdlJEWStZTER3OGY0aVhMSzB5YVVhUkZmVkhWSzkKRk43WWRCM2tnbXAxU25YYUNFVngrWkZRd0VkR2EzcEZ1ZHJiL01DMDZ6cFhnQzluTCtoRy82U1dCK3VXS2hiQwpmYXVFcnRNeVBVbmJJUUFzMTEwQ0F3RUFBYU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZCUVI2WXpWRDJUOVVlK0tacVJyNU1ZSEY4bm1NQTBHQ1NxR1NJYjMKRFFFQkN3VUFBNElCQVFBZ3VkelhtYXpRb1gyWDB0QnY0WG9ieWN6ZmMyUTFSd
 
29PUVY2TW5aNUE5NnJrS0kzawpHNklRS3ptWTFWNDhRRDhPTlZxdGdaRnNrU1ZrK05tSGM1c1Q2eE1YSWtDa2xFcUJLbFh4NHk5WDNHdkRjbERqClFtc044V0lHTThhbmFNRmtkajRqcDhZZEZWWktxcEpuaXljOVpIL1ozRjlITnFyMWlaL2VwbkZXczRMcnl4bkcKOWZjNlBjVnEvQVROdUhxalpGNjRFTkxxeHUwVUJvTFlCMFFuU1ZlalM3RnpRMzV4RHI5dGRpVnFKUzhhcmJRcgo0RHpuaU1rendzNUlQcGlvelNVSUlTeVVSc0pra2R0bW5OU3pwcWc3Y09Xc3NlYktXUU8rbURMSHcyMVVxb0JrCkZZbUhDVnNTRHlOaXdGYWtadUhZRGN5dDdjbDMwY1cvYjhmcAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
+    server: https://127.0.0.1:54753
+  name: kind-kind
+contexts:
+- context:
+    cluster: kind-kind
+    user: kind-kind
+  name: kind-kind
+current-context: kind-kind
+kind: Config
+preferences: {}
+users:
+- name: kind-kind
+  user:
+    client-certificate-data: fargle
+    client-key-data: bargle

++++++ vendor.tar.gz ++++++
++++ 3233 lines of diff (skipped)

Reply via email to