Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package helm for openSUSE:Factory checked in 
at 2021-09-20 23:32:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/helm (Old)
 and      /work/SRC/openSUSE:Factory/.helm.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "helm"

Mon Sep 20 23:32:09 2021 rev:28 rq:919363 version:3.6.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/helm/helm.changes        2021-07-18 
23:44:58.827031614 +0200
+++ /work/SRC/openSUSE:Factory/.helm.new.1899/helm.changes      2021-09-20 
23:32:44.527143107 +0200
@@ -1,0 +2,21 @@
+Thu Sep 16 02:32:04 UTC 2021 - jenting.hs...@suse.com
+
+- Update to version 3.6.3:
+  * Ensure RawPath match Path when resolving reference
+  * Set Helm as manager for managedFields
+  * fix(dep update): helm dep update is not respecting the "version" 
stipulated in the requirements
+  * fix(doc): fix kube client interface doc. (#9882)
+  * use TLS client information from repo config when downloading a chart
+  * Adding test for user/pass without repo on Helm install
+  * Fix the url being set by WithURL on the getters
+  * tweak basic handling
+  * keep existing behavior of returning ErrReleaseNotFound when release(s) 
failed to decode
+  * fix(sql storage): Query() should return ErrReleaseNotFound immediately 
when no records are found
+  * Add Test cases for repository-config without file extension
+  * Correctly determine repository-config lockfile path
+  * Fixed Test
+  * Added test for lint mode
+  * Fail message is now the same as the required message. Fixed #8973 Helm 
function 'fail' should not fail when doing 'helm lint'
+  * fix helm dep build/update doesn't inherit --insecure-skip-tls-verify from 
helm repo add
+
+-------------------------------------------------------------------

Old:
----
  helm-3.6.2.tar.gz

New:
----
  helm-3.6.3.tar.gz

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

Other differences:
------------------
++++++ helm.spec ++++++
--- /var/tmp/diff_new_pack.XnbRme/_old  2021-09-20 23:32:45.243143992 +0200
+++ /var/tmp/diff_new_pack.XnbRme/_new  2021-09-20 23:32:45.243143992 +0200
@@ -17,11 +17,11 @@
 
 
 %define goipath helm.sh/helm/v3
-%define git_commit ee407bdf364942bcb8e8c665f82e15aa28009b71
+%define git_commit d506314abfb5d21419df8c7e7e68012379db2354
 %define git_dirty clean
 
 Name:           helm
-Version:        3.6.2
+Version:        3.6.3
 Release:        0
 Summary:        The Kubernetes Package Manager
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.XnbRme/_old  2021-09-20 23:32:45.279144036 +0200
+++ /var/tmp/diff_new_pack.XnbRme/_new  2021-09-20 23:32:45.279144036 +0200
@@ -5,7 +5,7 @@
     <param name="exclude">.git</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
-    <param name="revision">v3.6.2</param>
+    <param name="revision">v3.6.3</param>
     <param name="changesgenerate">enable</param>
   </service>
   <service name="recompress" mode="disabled">

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.XnbRme/_old  2021-09-20 23:32:45.299144061 +0200
+++ /var/tmp/diff_new_pack.XnbRme/_new  2021-09-20 23:32:45.299144061 +0200
@@ -1,4 +1,4 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/helm/helm.git</param>
-              <param 
name="changesrevision">ee407bdf364942bcb8e8c665f82e15aa28009b71</param></service></servicedata>
\ No newline at end of file
+              <param 
name="changesrevision">d506314abfb5d21419df8c7e7e68012379db2354</param></service></servicedata>
\ No newline at end of file

++++++ helm-3.6.2.tar.gz -> helm-3.6.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/cmd/helm/helm.go 
new/helm-3.6.3/cmd/helm/helm.go
--- old/helm-3.6.2/cmd/helm/helm.go     2021-06-29 17:08:03.000000000 +0200
+++ new/helm-3.6.3/cmd/helm/helm.go     2021-07-14 19:25:00.000000000 +0200
@@ -32,6 +32,7 @@
        "helm.sh/helm/v3/pkg/action"
        "helm.sh/helm/v3/pkg/cli"
        "helm.sh/helm/v3/pkg/gates"
+       "helm.sh/helm/v3/pkg/kube"
        kubefake "helm.sh/helm/v3/pkg/kube/fake"
        "helm.sh/helm/v3/pkg/release"
        "helm.sh/helm/v3/pkg/storage/driver"
@@ -59,6 +60,12 @@
 }
 
 func main() {
+       // Setting the name of the app for managedFields in the Kubernetes 
client.
+       // It is set here to the full name of "helm" so that renaming of helm to
+       // another name (e.g., helm2 or helm3) does not change the name of the
+       // manager as picked up by the automated name detection.
+       kube.ManagedFieldsManager = "helm"
+
        actionConfig := new(action.Configuration)
        cmd, err := newRootCmd(actionConfig, os.Stdout, os.Args[1:])
        if err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/cmd/helm/repo_add.go 
new/helm-3.6.3/cmd/helm/repo_add.go
--- old/helm-3.6.2/cmd/helm/repo_add.go 2021-06-29 17:08:03.000000000 +0200
+++ new/helm-3.6.3/cmd/helm/repo_add.go 2021-07-14 19:25:00.000000000 +0200
@@ -114,7 +114,14 @@
        }
 
        // Acquire a file lock for process synchronization
-       fileLock := flock.New(strings.Replace(o.repoFile, 
filepath.Ext(o.repoFile), ".lock", 1))
+       repoFileExt := filepath.Ext(o.repoFile)
+       var lockPath string
+       if len(repoFileExt) > 0 && len(repoFileExt) < len(o.repoFile) {
+               lockPath = strings.Replace(o.repoFile, repoFileExt, ".lock", 1)
+       } else {
+               lockPath = o.repoFile + ".lock"
+       }
+       fileLock := flock.New(lockPath)
        lockCtx, cancel := context.WithTimeout(context.Background(), 
30*time.Second)
        defer cancel()
        locked, err := fileLock.TryLockContext(lockCtx, time.Second)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/cmd/helm/repo_add_test.go 
new/helm-3.6.3/cmd/helm/repo_add_test.go
--- old/helm-3.6.2/cmd/helm/repo_add_test.go    2021-06-29 17:08:03.000000000 
+0200
+++ new/helm-3.6.3/cmd/helm/repo_add_test.go    2021-07-14 19:25:00.000000000 
+0200
@@ -142,6 +142,18 @@
        repoAddConcurrent(t, testName, repoFile)
 }
 
+func TestRepoAddConcurrentNoFileExtension(t *testing.T) {
+       const testName = "test-name-3"
+       repoFile := filepath.Join(ensure.TempDir(t), "repositories")
+       repoAddConcurrent(t, testName, repoFile)
+}
+
+func TestRepoAddConcurrentHiddenFile(t *testing.T) {
+       const testName = "test-name-4"
+       repoFile := filepath.Join(ensure.TempDir(t), ".repositories")
+       repoAddConcurrent(t, testName, repoFile)
+}
+
 func repoAddConcurrent(t *testing.T, testName, repoFile string) {
        ts, err := repotest.NewTempServerWithCleanup(t, 
"testdata/testserver/*.*")
        if err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/internal/resolver/resolver.go 
new/helm-3.6.3/internal/resolver/resolver.go
--- old/helm-3.6.2/internal/resolver/resolver.go        2021-06-29 
17:08:03.000000000 +0200
+++ new/helm-3.6.3/internal/resolver/resolver.go        2021-07-14 
19:25:00.000000000 +0200
@@ -57,6 +57,11 @@
        locked := make([]*chart.Dependency, len(reqs))
        missing := []string{}
        for i, d := range reqs {
+               constraint, err := semver.NewConstraint(d.Version)
+               if err != nil {
+                       return nil, errors.Wrapf(err, "dependency %q has an 
invalid version/constraint format", d.Name)
+               }
+
                if d.Repository == "" {
                        // Local chart subfolder
                        if _, err := GetLocalPath(filepath.Join("charts", 
d.Name), r.chartpath); err != nil {
@@ -77,13 +82,22 @@
                                return nil, err
                        }
 
-                       // The version of the chart locked will be the version 
of the chart
-                       // currently listed in the file system within the chart.
                        ch, err := loader.LoadDir(chartpath)
                        if err != nil {
                                return nil, err
                        }
 
+                       v, err := semver.NewVersion(ch.Metadata.Version)
+                       if err != nil {
+                               // Not a legit entry.
+                               continue
+                       }
+
+                       if !constraint.Check(v) {
+                               missing = append(missing, d.Name)
+                               continue
+                       }
+
                        locked[i] = &chart.Dependency{
                                Name:       d.Name,
                                Repository: d.Repository,
@@ -92,11 +106,6 @@
                        continue
                }
 
-               constraint, err := semver.NewConstraint(d.Version)
-               if err != nil {
-                       return nil, errors.Wrapf(err, "dependency %q has an 
invalid version/constraint format", d.Name)
-               }
-
                repoName := repoNames[d.Name]
                // if the repository was not defined, but the dependency 
defines a repository url, bypass the cache
                if repoName == "" && d.Repository != "" {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/internal/resolver/resolver_test.go 
new/helm-3.6.3/internal/resolver/resolver_test.go
--- old/helm-3.6.2/internal/resolver/resolver_test.go   2021-06-29 
17:08:03.000000000 +0200
+++ new/helm-3.6.3/internal/resolver/resolver_test.go   2021-07-14 
19:25:00.000000000 +0200
@@ -29,6 +29,18 @@
                err    bool
        }{
                {
+                       name: "repo from invalid version",
+                       req: []*chart.Dependency{
+                               {Name: "base", Repository: "file://base", 
Version: "1.1.0"},
+                       },
+                       expect: &chart.Lock{
+                               Dependencies: []*chart.Dependency{
+                                       {Name: "base", Repository: 
"file://base", Version: "0.1.0"},
+                               },
+                       },
+                       err: true,
+               },
+               {
                        name: "version failure",
                        req: []*chart.Dependency{
                                {Name: "oedipus-rex", Repository: 
"http://example.com";, Version: ">a1"},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/pkg/downloader/manager.go 
new/helm-3.6.3/pkg/downloader/manager.go
--- old/helm-3.6.2/pkg/downloader/manager.go    2021-06-29 17:08:03.000000000 
+0200
+++ new/helm-3.6.3/pkg/downloader/manager.go    2021-07-14 19:25:00.000000000 
+0200
@@ -310,7 +310,7 @@
 
                // Any failure to resolve/download a chart should fail:
                // https://github.com/helm/helm/issues/1439
-               churl, username, password, passcredentialsall, err := 
m.findChartURL(dep.Name, dep.Version, dep.Repository, repos)
+               churl, username, password, insecureskiptlsverify, 
passcredentialsall, caFile, certFile, keyFile, err := m.findChartURL(dep.Name, 
dep.Version, dep.Repository, repos)
                if err != nil {
                        saveError = errors.Wrapf(err, "could not find %s", 
churl)
                        break
@@ -333,6 +333,8 @@
                        Options: []getter.Option{
                                getter.WithBasicAuth(username, password),
                                
getter.WithPassCredentialsAll(passcredentialsall),
+                               
getter.WithInsecureSkipVerifyTLS(insecureskiptlsverify),
+                               getter.WithTLSClientConfig(certFile, keyFile, 
caFile),
                        },
                }
 
@@ -686,9 +688,9 @@
 // repoURL is the repository to search
 //
 // If it finds a URL that is "relative", it will prepend the repoURL.
-func (m *Manager) findChartURL(name, version, repoURL string, repos 
map[string]*repo.ChartRepository) (url, username, password string, 
passcredentialsall bool, err error) {
+func (m *Manager) findChartURL(name, version, repoURL string, repos 
map[string]*repo.ChartRepository) (url, username, password string, 
insecureskiptlsverify, passcredentialsall bool, caFile, certFile, keyFile 
string, err error) {
        if strings.HasPrefix(repoURL, "oci://") {
-               return fmt.Sprintf("%s/%s:%s", repoURL, name, version), "", "", 
false, nil
+               return fmt.Sprintf("%s/%s:%s", repoURL, name, version), "", "", 
false, false, "", "", "", nil
        }
 
        for _, cr := range repos {
@@ -711,15 +713,19 @@
                        username = cr.Config.Username
                        password = cr.Config.Password
                        passcredentialsall = cr.Config.PassCredentialsAll
+                       insecureskiptlsverify = cr.Config.InsecureSkipTLSverify
+                       caFile = cr.Config.CAFile
+                       certFile = cr.Config.CertFile
+                       keyFile = cr.Config.KeyFile
                        return
                }
        }
-       url, err = repo.FindChartInRepoURL(repoURL, name, version, "", "", "", 
m.Getters)
+       url, err = repo.FindChartInRepoURL(repoURL, name, version, certFile, 
keyFile, caFile, m.Getters)
        if err == nil {
-               return url, username, password, false, err
+               return url, username, password, false, false, "", "", "", err
        }
        err = errors.Errorf("chart %s not found in %s: %s", name, repoURL, err)
-       return url, username, password, false, err
+       return url, username, password, false, false, "", "", "", err
 }
 
 // findEntryByName finds an entry in the chart repository whose name matches 
the given name.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/pkg/downloader/manager_test.go 
new/helm-3.6.3/pkg/downloader/manager_test.go
--- old/helm-3.6.2/pkg/downloader/manager_test.go       2021-06-29 
17:08:03.000000000 +0200
+++ new/helm-3.6.3/pkg/downloader/manager_test.go       2021-07-14 
19:25:00.000000000 +0200
@@ -81,14 +81,43 @@
        version := "0.1.0"
        repoURL := "http://example.com/charts";
 
-       churl, username, password, passcredentialsall, err := 
m.findChartURL(name, version, repoURL, repos)
+       churl, username, password, insecureSkipTLSVerify, passcredentialsall, 
_, _, _, err := m.findChartURL(name, version, repoURL, repos)
        if err != nil {
                t.Fatal(err)
        }
+
        if churl != "https://charts.helm.sh/stable/alpine-0.1.0.tgz"; {
                t.Errorf("Unexpected URL %q", churl)
        }
        if username != "" {
+               t.Errorf("Unexpected username %q", username)
+       }
+       if password != "" {
+               t.Errorf("Unexpected password %q", password)
+       }
+       if passcredentialsall != false {
+               t.Errorf("Unexpected passcredentialsall %t", passcredentialsall)
+       }
+       if insecureSkipTLSVerify {
+               t.Errorf("Unexpected insecureSkipTLSVerify %t", 
insecureSkipTLSVerify)
+       }
+
+       name = "tlsfoo"
+       version = "1.2.3"
+       repoURL = "https://example-https-insecureskiptlsverify.com";
+
+       churl, username, password, insecureSkipTLSVerify, passcredentialsall, 
_, _, _, err = m.findChartURL(name, version, repoURL, repos)
+       if err != nil {
+               t.Fatal(err)
+       }
+
+       if !insecureSkipTLSVerify {
+               t.Errorf("Unexpected insecureSkipTLSVerify %t", 
insecureSkipTLSVerify)
+       }
+       if churl != "https://example.com/tlsfoo-1.2.3.tgz"; {
+               t.Errorf("Unexpected URL %q", churl)
+       }
+       if username != "" {
                t.Errorf("Unexpected username %q", username)
        }
        if password != "" {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/pkg/downloader/testdata/repositories.yaml 
new/helm-3.6.3/pkg/downloader/testdata/repositories.yaml
--- old/helm-3.6.2/pkg/downloader/testdata/repositories.yaml    2021-06-29 
17:08:03.000000000 +0200
+++ new/helm-3.6.3/pkg/downloader/testdata/repositories.yaml    2021-07-14 
19:25:00.000000000 +0200
@@ -21,3 +21,6 @@
     certFile: "cert"
     keyFile: "key"
     caFile: "ca"
+  - name: testing-https-insecureskip-tls-verify
+    url: "https://example-https-insecureskiptlsverify.com";
+    insecure_skip_tls_verify: true 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/helm-3.6.2/pkg/downloader/testdata/repository/testing-https-insecureskip-tls-verify-index.yaml
 
new/helm-3.6.3/pkg/downloader/testdata/repository/testing-https-insecureskip-tls-verify-index.yaml
--- 
old/helm-3.6.2/pkg/downloader/testdata/repository/testing-https-insecureskip-tls-verify-index.yaml
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/helm-3.6.3/pkg/downloader/testdata/repository/testing-https-insecureskip-tls-verify-index.yaml
  2021-07-14 19:25:00.000000000 +0200
@@ -0,0 +1,14 @@
+apiVersion: v1
+entries:
+  tlsfoo:
+    - name: tlsfoo 
+      description: TLS FOO Chart
+      home: https://helm.sh/helm
+      keywords: []
+      maintainers: []
+      sources:
+        - https://github.com/helm/charts
+      urls:
+        - https://example.com/tlsfoo-1.2.3.tgz
+      version: 1.2.3
+      checksum: 0e6661f193211d7a5206918d42f5c2a9470b7373
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/pkg/engine/engine.go 
new/helm-3.6.3/pkg/engine/engine.go
--- old/helm-3.6.2/pkg/engine/engine.go 2021-06-29 17:08:03.000000000 +0200
+++ new/helm-3.6.3/pkg/engine/engine.go 2021-07-14 19:25:00.000000000 +0200
@@ -173,6 +173,16 @@
                return val, nil
        }
 
+       // Override sprig fail function for linting and wrapping message
+       funcMap["fail"] = func(msg string) (string, error) {
+               if e.LintMode {
+                       // Don't fail when linting
+                       log.Printf("[INFO] Fail: %s", msg)
+                       return "", nil
+               }
+               return "", errors.New(warnWrap(msg))
+       }
+
        // If we are not linting and have a cluster connection, provide a 
Kubernetes-backed
        // implementation.
        if !e.LintMode && e.config != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/pkg/engine/engine_test.go 
new/helm-3.6.3/pkg/engine/engine_test.go
--- old/helm-3.6.2/pkg/engine/engine_test.go    2021-06-29 17:08:03.000000000 
+0200
+++ new/helm-3.6.3/pkg/engine/engine_test.go    2021-07-14 19:25:00.000000000 
+0200
@@ -286,6 +286,35 @@
        }
 }
 
+func TestFailErrors(t *testing.T) {
+       vals := chartutil.Values{"Values": map[string]interface{}{}}
+
+       failtpl := `All your base are belong to us{{ fail "This is an error" }}`
+       tplsFailed := map[string]renderable{
+               "failtpl": {tpl: failtpl, vals: vals},
+       }
+       _, err := new(Engine).render(tplsFailed)
+       if err == nil {
+               t.Fatalf("Expected failures while rendering: %s", err)
+       }
+       expected := `execution error at (failtpl:1:33): This is an error`
+       if err.Error() != expected {
+               t.Errorf("Expected '%s', got %q", expected, err.Error())
+       }
+
+       var e Engine
+       e.LintMode = true
+       out, err := e.render(tplsFailed)
+       if err != nil {
+               t.Fatal(err)
+       }
+
+       expectStr := "All your base are belong to us"
+       if gotStr := out["failtpl"]; gotStr != expectStr {
+               t.Errorf("Expected %q, got %q (%v)", expectStr, gotStr, out)
+       }
+}
+
 func TestAllTemplates(t *testing.T) {
        ch1 := &chart.Chart{
                Metadata: &chart.Metadata{Name: "ch1"},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/pkg/kube/client.go 
new/helm-3.6.3/pkg/kube/client.go
--- old/helm-3.6.2/pkg/kube/client.go   2021-06-29 17:08:03.000000000 +0200
+++ new/helm-3.6.3/pkg/kube/client.go   2021-07-14 19:25:00.000000000 +0200
@@ -21,6 +21,8 @@
        "encoding/json"
        "fmt"
        "io"
+       "os"
+       "path/filepath"
        "strings"
        "sync"
        "time"
@@ -55,6 +57,10 @@
 
 var metadataAccessor = meta.NewAccessor()
 
+// ManagedFieldsManager is the name of the manager of Kubernetes managedFields
+// first introduced in Kubernetes 1.18
+var ManagedFieldsManager string
+
 // Client represents a client capable of communicating with the Kubernetes API.
 type Client struct {
        Factory Factory
@@ -100,7 +106,7 @@
        return c.kubeClient, err
 }
 
-// IsReachable tests connectivity to the cluster
+// IsReachable tests connectivity to the cluster.
 func (c *Client) IsReachable() error {
        client, err := c.getKubeClient()
        if err == genericclioptions.ErrEmptyConfig {
@@ -126,7 +132,7 @@
        return &Result{Created: resources}, nil
 }
 
-// Wait up to the given timeout for the specified resources to be ready
+// Wait waits up to the given timeout for the specified resources to be ready.
 func (c *Client) Wait(resources ResourceList, timeout time.Duration) error {
        cs, err := c.getKubeClient()
        if err != nil {
@@ -206,7 +212,7 @@
                        return err
                }
 
-               helper := resource.NewHelper(info.Client, info.Mapping)
+               helper := resource.NewHelper(info.Client, 
info.Mapping).WithFieldManager(getManagedFieldsManager())
                if _, err := helper.Get(info.Namespace, info.Name); err != nil {
                        if !apierrors.IsNotFound(err) {
                                return errors.Wrap(err, "could not get 
information about the resource")
@@ -324,7 +330,7 @@
 
 // WatchUntilReady watches the resources given and waits until it is ready.
 //
-// This function is mainly for hook implementations. It watches for a resource 
to
+// This method is mainly for hook implementations. It watches for a resource to
 // hit a particular milestone. The milestone depends on the Kind.
 //
 // For most kinds, it checks to see if the resource is marked as Added or 
Modified
@@ -359,6 +365,26 @@
        return nil
 }
 
+// getManagedFieldsManager returns the manager string. If one was set it will 
be returned.
+// Otherwise, one is calculated based on the name of the binary.
+func getManagedFieldsManager() string {
+
+       // When a manager is explicitly set use it
+       if ManagedFieldsManager != "" {
+               return ManagedFieldsManager
+       }
+
+       // When no manager is set and no calling application can be found it is 
unknown
+       if len(os.Args[0]) == 0 {
+               return "unknown"
+       }
+
+       // When there is an application that can be determined and no set 
manager
+       // use the base name. This is one of the ways Kubernetes libs handle 
figuring
+       // names out.
+       return filepath.Base(os.Args[0])
+}
+
 func batchPerform(infos ResourceList, fn func(*resource.Info) error, errs 
chan<- error) {
        var kind string
        var wg sync.WaitGroup
@@ -377,7 +403,7 @@
 }
 
 func createResource(info *resource.Info) error {
-       obj, err := resource.NewHelper(info.Client, 
info.Mapping).Create(info.Namespace, true, info.Object)
+       obj, err := resource.NewHelper(info.Client, 
info.Mapping).WithFieldManager(getManagedFieldsManager()).Create(info.Namespace,
 true, info.Object)
        if err != nil {
                return err
        }
@@ -387,7 +413,7 @@
 func deleteResource(info *resource.Info) error {
        policy := metav1.DeletePropagationBackground
        opts := &metav1.DeleteOptions{PropagationPolicy: &policy}
-       _, err := resource.NewHelper(info.Client, 
info.Mapping).DeleteWithOptions(info.Namespace, info.Name, opts)
+       _, err := resource.NewHelper(info.Client, 
info.Mapping).WithFieldManager(getManagedFieldsManager()).DeleteWithOptions(info.Namespace,
 info.Name, opts)
        return err
 }
 
@@ -402,7 +428,7 @@
        }
 
        // Fetch the current object for the three way merge
-       helper := resource.NewHelper(target.Client, target.Mapping)
+       helper := resource.NewHelper(target.Client, 
target.Mapping).WithFieldManager(getManagedFieldsManager())
        currentObj, err := helper.Get(target.Namespace, target.Name)
        if err != nil && !apierrors.IsNotFound(err) {
                return nil, types.StrategicMergePatchType, errors.Wrapf(err, 
"unable to get data for current object %s/%s", target.Namespace, target.Name)
@@ -444,7 +470,7 @@
 func updateResource(c *Client, target *resource.Info, currentObj 
runtime.Object, force bool) error {
        var (
                obj    runtime.Object
-               helper = resource.NewHelper(target.Client, target.Mapping)
+               helper = resource.NewHelper(target.Client, 
target.Mapping).WithFieldManager(getManagedFieldsManager())
                kind   = target.Mapping.GroupVersionKind.Kind
        )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/pkg/kube/interface.go 
new/helm-3.6.3/pkg/kube/interface.go
--- old/helm-3.6.2/pkg/kube/interface.go        2021-06-29 17:08:03.000000000 
+0200
+++ new/helm-3.6.3/pkg/kube/interface.go        2021-07-14 19:25:00.000000000 
+0200
@@ -30,14 +30,19 @@
        // Create creates one or more resources.
        Create(resources ResourceList) (*Result, error)
 
+       // Wait waits up to the given timeout for the specified resources to be 
ready.
        Wait(resources ResourceList, timeout time.Duration) error
 
+       // WaitWithJobs wait up to the given timeout for the specified 
resources to be ready, including jobs.
        WaitWithJobs(resources ResourceList, timeout time.Duration) error
 
        // Delete destroys one or more resources.
        Delete(resources ResourceList) (*Result, []error)
 
-       // Watch the resource in reader until it is "ready". This method
+       // WatchUntilReady watches the resources given and waits until it is 
ready.
+       //
+       // This method is mainly for hook implementations. It watches for a 
resource to
+       // hit a particular milestone. The milestone depends on the Kind.
        //
        // For Jobs, "ready" means the Job ran to completion (exited without 
error).
        // For Pods, "ready" means the Pod phase is marked "succeeded".
@@ -49,9 +54,9 @@
        // if it doesn't exist.
        Update(original, target ResourceList, force bool) (*Result, error)
 
-       // Build creates a resource list from a Reader
+       // Build creates a resource list from a Reader.
        //
-       // reader must contain a YAML stream (one or more YAML documents 
separated
+       // Reader must contain a YAML stream (one or more YAML documents 
separated
        // by "\n---\n")
        //
        // Validates against OpenAPI schema if validate is true.
@@ -61,7 +66,7 @@
        // and returns said phase (PodSucceeded or PodFailed qualify).
        WaitAndGetCompletedPodPhase(name string, timeout time.Duration) 
(v1.PodPhase, error)
 
-       // isReachable checks whether the client is able to connect to the 
cluster
+       // IsReachable checks whether the client is able to connect to the 
cluster.
        IsReachable() error
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/pkg/repo/chartrepo.go 
new/helm-3.6.3/pkg/repo/chartrepo.go
--- old/helm-3.6.2/pkg/repo/chartrepo.go        2021-06-29 17:08:03.000000000 
+0200
+++ new/helm-3.6.3/pkg/repo/chartrepo.go        2021-07-14 19:25:00.000000000 
+0200
@@ -286,7 +286,8 @@
 // ResolveReferenceURL resolves refURL relative to baseURL.
 // If refURL is absolute, it simply returns refURL.
 func ResolveReferenceURL(baseURL, refURL string) (string, error) {
-       parsedBaseURL, err := url.Parse(baseURL)
+       // We need a trailing slash for ResolveReference to work, but make sure 
there isn't already one
+       parsedBaseURL, err := url.Parse(strings.TrimSuffix(baseURL, "/") + "/")
        if err != nil {
                return "", errors.Wrapf(err, "failed to parse %s as URL", 
baseURL)
        }
@@ -296,8 +297,6 @@
                return "", errors.Wrapf(err, "failed to parse %s as URL", 
refURL)
        }
 
-       // We need a trailing slash for ResolveReference to work, but make sure 
there isn't already one
-       parsedBaseURL.Path = strings.TrimSuffix(parsedBaseURL.Path, "/") + "/"
        return parsedBaseURL.ResolveReference(parsedRefURL).String(), nil
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/pkg/repo/chartrepo_test.go 
new/helm-3.6.3/pkg/repo/chartrepo_test.go
--- old/helm-3.6.2/pkg/repo/chartrepo_test.go   2021-06-29 17:08:03.000000000 
+0200
+++ new/helm-3.6.3/pkg/repo/chartrepo_test.go   2021-07-14 19:25:00.000000000 
+0200
@@ -400,4 +400,12 @@
        if chartURL != "https://charts.helm.sh/stable/nginx-0.2.0.tgz"; {
                t.Errorf("%s", chartURL)
        }
+
+       chartURL, err = 
ResolveReferenceURL("http://localhost:8123/charts%2fwith%2fescaped%2fslash";, 
"nginx-0.2.0.tgz")
+       if err != nil {
+               t.Errorf("%s", err)
+       }
+       if chartURL != 
"http://localhost:8123/charts%2fwith%2fescaped%2fslash/nginx-0.2.0.tgz"; {
+               t.Errorf("%s", chartURL)
+       }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/pkg/storage/driver/sql.go 
new/helm-3.6.3/pkg/storage/driver/sql.go
--- old/helm-3.6.2/pkg/storage/driver/sql.go    2021-06-29 17:08:03.000000000 
+0200
+++ new/helm-3.6.3/pkg/storage/driver/sql.go    2021-07-14 19:25:00.000000000 
+0200
@@ -310,6 +310,10 @@
                return nil, err
        }
 
+       if len(records) == 0 {
+               return nil, ErrReleaseNotFound
+       }
+
        var releases []*rspb.Release
        for _, record := range records {
                release, err := decodeRelease(record.Body)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/helm-3.6.2/pkg/storage/driver/sql_test.go 
new/helm-3.6.3/pkg/storage/driver/sql_test.go
--- old/helm-3.6.2/pkg/storage/driver/sql_test.go       2021-06-29 
17:08:03.000000000 +0200
+++ new/helm-3.6.3/pkg/storage/driver/sql_test.go       2021-07-14 
19:25:00.000000000 +0200
@@ -292,6 +292,11 @@
 
 func TestSqlQuery(t *testing.T) {
        // Reflect actual use cases in ../storage.go
+       labelSetUnknown := map[string]string{
+               "name":   "smug-pigeon",
+               "owner":  sqlReleaseDefaultOwner,
+               "status": "unknown",
+       }
        labelSetDeployed := map[string]string{
                "name":   "smug-pigeon",
                "owner":  sqlReleaseDefaultOwner,
@@ -322,6 +327,15 @@
 
        mock.
                ExpectQuery(regexp.QuoteMeta(query)).
+               WithArgs("smug-pigeon", sqlReleaseDefaultOwner, "unknown", 
"default").
+               WillReturnRows(
+                       mock.NewRows([]string{
+                               sqlReleaseTableBodyColumn,
+                       }),
+               ).RowsWillBeClosed()
+
+       mock.
+               ExpectQuery(regexp.QuoteMeta(query)).
                WithArgs("smug-pigeon", sqlReleaseDefaultOwner, "deployed", 
"default").
                WillReturnRows(
                        mock.NewRows([]string{
@@ -353,6 +367,13 @@
                        ),
                ).RowsWillBeClosed()
 
+       _, err := sqlDriver.Query(labelSetUnknown)
+       if err == nil {
+               t.Errorf("Expected error {%v}, got nil", ErrReleaseNotFound)
+       } else if err != ErrReleaseNotFound {
+               t.Fatalf("failed to query for unknown smug-pigeon release: %v", 
err)
+       }
+
        results, err := sqlDriver.Query(labelSetDeployed)
        if err != nil {
                t.Fatalf("failed to query for deployed smug-pigeon release: 
%v", err)

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/helm/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.helm.new.1899/vendor.tar.gz differ: char 5, line 1

Reply via email to