Support the latest Helm (>=v3.3.2) and bump the Helm version in Docker image. (#1488)

Changes:

* Bump Helm to v2.16.12 and v3.3.3.
* Add --force-update only when using Helm 3.
This commit is contained in:
Wi1dcard
2020-09-21 09:41:49 +09:00
committed by GitHub
parent 028bcc51dc
commit 988c218096
10 changed files with 23 additions and 19 deletions
+1 -1
View File
@@ -2462,7 +2462,7 @@ func (helm *mockHelmExec) GetVersion() helmexec.Version {
return helmexec.Version{}
}
func (helm *mockHelmExec) IsVersionAtLeast(major int, minor int) bool {
func (helm *mockHelmExec) IsVersionAtLeast(major int, minor int, patch int) bool {
return false
}
+1 -1
View File
@@ -97,7 +97,7 @@ func (helm *noCallHelmExec) GetVersion() helmexec.Version {
return helmexec.Version{}
}
func (helm *noCallHelmExec) IsVersionAtLeast(major int, minor int) bool {
func (helm *noCallHelmExec) IsVersionAtLeast(major int, minor int, patch int) bool {
helm.doPanic()
return false
}
+2 -2
View File
@@ -170,12 +170,12 @@ func (helm *Helm) GetVersion() helmexec.Version {
return helmexec.Version{}
}
func (helm *Helm) IsVersionAtLeast(major int, minor int) bool {
func (helm *Helm) IsVersionAtLeast(major int, minor int, patch int) bool {
if helm.Version == nil {
return false
}
return helm.Version.Major >= major && minor >= helm.Version.Minor
return helm.Version.Major >= major && minor >= helm.Version.Minor && patch >= helm.Version.Patch
}
func (helm *Helm) sync(m *sync.Mutex, f func()) {
+5 -2
View File
@@ -130,6 +130,9 @@ func (helm *execer) AddRepo(name, repository, cafile, certfile, keyfile, usernam
return fmt.Errorf("empty field name")
}
args = append(args, "repo", "add", name, repository)
if helm.IsHelm3() && helm.IsVersionAtLeast(3, 3, 2) {
args = append(args, "--force-update")
}
if certfile != "" && keyfile != "" {
args = append(args, "--cert-file", certfile, "--key-file", keyfile)
}
@@ -398,6 +401,6 @@ func (helm *execer) GetVersion() Version {
return helm.version
}
func (helm *execer) IsVersionAtLeast(major int, minor int) bool {
return helm.version.Major >= major && helm.version.Minor >= minor
func (helm *execer) IsVersionAtLeast(major int, minor int, patch int) bool {
return helm.version.Major >= major && helm.version.Minor >= minor && helm.version.Patch >= patch
}
+3 -3
View File
@@ -557,15 +557,15 @@ func Test_GetVersion(t *testing.T) {
func Test_IsVersionAtLeast(t *testing.T) {
helm2Runner := mockRunner{output: []byte("Client: v2.16.1+ge13bc94\n")}
helm := New("helm", NewLogger(os.Stdout, "info"), "dev", &helm2Runner)
if !helm.IsVersionAtLeast(2, 1) {
if !helm.IsVersionAtLeast(2, 1, 0) {
t.Error("helmexec.IsVersionAtLeast - 2.16.1 not atleast 2.1")
}
if helm.IsVersionAtLeast(2, 19) {
if helm.IsVersionAtLeast(2, 19, 0) {
t.Error("helmexec.IsVersionAtLeast - 2.16.1 is atleast 2.19")
}
if helm.IsVersionAtLeast(3, 2) {
if helm.IsVersionAtLeast(3, 2, 0) {
t.Error("helmexec.IsVersionAtLeast - 2.16.1 is atleast 3.2")
}
+1 -1
View File
@@ -28,7 +28,7 @@ type Interface interface {
DecryptSecret(context HelmContext, name string, flags ...string) (string, error)
IsHelm3() bool
GetVersion() Version
IsVersionAtLeast(major int, minor int) bool
IsVersionAtLeast(major int, minor int, patch int) bool
}
type DependencyUpdater interface {
+4 -3
View File
@@ -6,8 +6,6 @@ import (
"encoding/hex"
"errors"
"fmt"
"github.com/imdario/mergo"
"golang.org/x/sync/errgroup"
"io"
"io/ioutil"
"os"
@@ -20,6 +18,9 @@ import (
"sync"
"text/template"
"github.com/imdario/mergo"
"golang.org/x/sync/errgroup"
"github.com/variantdev/chartify"
"github.com/roboll/helmfile/pkg/environment"
@@ -2063,7 +2064,7 @@ func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSp
if release.CreateNamespace != nil && *release.CreateNamespace ||
release.CreateNamespace == nil && (st.HelmDefaults.CreateNamespace == nil || *st.HelmDefaults.CreateNamespace) {
if helm.IsVersionAtLeast(3, 2) {
if helm.IsVersionAtLeast(3, 2, 0) {
flags = append(flags, "--create-namespace")
} else if release.CreateNamespace != nil || st.HelmDefaults.CreateNamespace != nil {
// createNamespace was set explicitly, but not running supported version of helm - error