feat: add namespace info in syncRelease and diffRelease (#1609)
This commit is contained in:
parent
45e7681b1e
commit
56dad58180
|
|
@ -2513,10 +2513,10 @@ func (helm *mockHelmExec) UpdateRepo() error {
|
|||
func (helm *mockHelmExec) RegistryLogin(name, username, password, caFile, certFile, keyFile string, skipTLSVerify bool) error {
|
||||
return nil
|
||||
}
|
||||
func (helm *mockHelmExec) SyncRelease(context helmexec.HelmContext, name, chart string, flags ...string) error {
|
||||
func (helm *mockHelmExec) SyncRelease(context helmexec.HelmContext, name, chart, namespace string, flags ...string) error {
|
||||
return nil
|
||||
}
|
||||
func (helm *mockHelmExec) DiffRelease(context helmexec.HelmContext, name, chart string, suppressDiff bool, flags ...string) error {
|
||||
func (helm *mockHelmExec) DiffRelease(context helmexec.HelmContext, name, chart, namespace string, suppressDiff bool, flags ...string) error {
|
||||
return nil
|
||||
}
|
||||
func (helm *mockHelmExec) ReleaseStatus(context helmexec.HelmContext, release string, flags ...string) error {
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ func (helm *Helm) UpdateRepo() error {
|
|||
func (helm *Helm) RegistryLogin(name, username, password, caFile, certFile, keyFile string, skipTLSVerify bool) error {
|
||||
return nil
|
||||
}
|
||||
func (helm *Helm) SyncRelease(context helmexec.HelmContext, name, chart string, flags ...string) error {
|
||||
func (helm *Helm) SyncRelease(context helmexec.HelmContext, name, chart, namespace string, flags ...string) error {
|
||||
if strings.Contains(name, "error") {
|
||||
return errors.New("error")
|
||||
}
|
||||
|
|
@ -117,7 +117,7 @@ func (helm *Helm) SyncRelease(context helmexec.HelmContext, name, chart string,
|
|||
|
||||
return nil
|
||||
}
|
||||
func (helm *Helm) DiffRelease(context helmexec.HelmContext, name, chart string, suppressDiff bool, flags ...string) error {
|
||||
func (helm *Helm) DiffRelease(context helmexec.HelmContext, name, chart, namespace string, suppressDiff bool, flags ...string) error {
|
||||
if helm.DiffMutex != nil {
|
||||
helm.DiffMutex.Lock()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -271,8 +271,8 @@ func (helm *execer) UpdateDeps(chart string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
func (helm *execer) SyncRelease(context HelmContext, name, chart string, flags ...string) error {
|
||||
helm.logger.Infof("Upgrading release=%v, chart=%v", name, redactedURL(chart))
|
||||
func (helm *execer) SyncRelease(context HelmContext, name, chart, namespace string, flags ...string) error {
|
||||
helm.logger.Infof("Upgrading release=%v, chart=%v, namespace=%v", name, redactedURL(chart), namespace)
|
||||
preArgs := make([]string, 0)
|
||||
env := make(map[string]string)
|
||||
|
||||
|
|
@ -450,11 +450,12 @@ func (helm *execer) TemplateRelease(name string, chart string, flags ...string)
|
|||
return err
|
||||
}
|
||||
|
||||
func (helm *execer) DiffRelease(context HelmContext, name, chart string, suppressDiff bool, flags ...string) error {
|
||||
func (helm *execer) DiffRelease(context HelmContext, name, chart, namespace string, suppressDiff bool, flags ...string) error {
|
||||
diffMsg := fmt.Sprintf("Comparing release=%v, chart=%v, namespace=%v\n", name, redactedURL(chart), namespace)
|
||||
if context.Writer != nil && !suppressDiff {
|
||||
fmt.Fprintf(context.Writer, "Comparing release=%v, chart=%v\n", name, redactedURL(chart))
|
||||
fmt.Fprint(context.Writer, diffMsg)
|
||||
} else {
|
||||
helm.logger.Infof("Comparing release=%v, chart=%v", name, redactedURL(chart))
|
||||
helm.logger.Info(diffMsg)
|
||||
}
|
||||
preArgs := make([]string, 0)
|
||||
env := make(map[string]string)
|
||||
|
|
|
|||
|
|
@ -327,8 +327,8 @@ func Test_SyncRelease(t *testing.T) {
|
|||
var buffer bytes.Buffer
|
||||
logger := NewLogger(&buffer, "debug")
|
||||
helm := MockExecer(logger, "config", "dev")
|
||||
err := helm.SyncRelease(HelmContext{}, "release", "chart", "--timeout 10", "--wait", "--wait-for-jobs")
|
||||
expected := `Upgrading release=release, chart=chart
|
||||
err := helm.SyncRelease(HelmContext{}, "release", "chart", "default", "--timeout 10", "--wait", "--wait-for-jobs")
|
||||
expected := `Upgrading release=release, chart=chart, namespace=default
|
||||
exec: helm --kubeconfig config --kube-context dev upgrade --install release chart --timeout 10 --wait --wait-for-jobs --history-max 0
|
||||
`
|
||||
if err != nil {
|
||||
|
|
@ -339,8 +339,8 @@ exec: helm --kubeconfig config --kube-context dev upgrade --install release char
|
|||
}
|
||||
|
||||
buffer.Reset()
|
||||
err = helm.SyncRelease(HelmContext{}, "release", "chart")
|
||||
expected = `Upgrading release=release, chart=chart
|
||||
err = helm.SyncRelease(HelmContext{}, "release", "chart", "default")
|
||||
expected = `Upgrading release=release, chart=chart, namespace=default
|
||||
exec: helm --kubeconfig config --kube-context dev upgrade --install release chart --history-max 0
|
||||
`
|
||||
if err != nil {
|
||||
|
|
@ -351,8 +351,8 @@ exec: helm --kubeconfig config --kube-context dev upgrade --install release char
|
|||
}
|
||||
|
||||
buffer.Reset()
|
||||
err = helm.SyncRelease(HelmContext{}, "release", "https://example_user:example_password@repo.example.com/chart.tgz")
|
||||
expected = `Upgrading release=release, chart=https://example_user:xxxxx@repo.example.com/chart.tgz
|
||||
err = helm.SyncRelease(HelmContext{}, "release", "https://example_user:example_password@repo.example.com/chart.tgz", "default")
|
||||
expected = `Upgrading release=release, chart=https://example_user:xxxxx@repo.example.com/chart.tgz, namespace=default
|
||||
exec: helm --kubeconfig config --kube-context dev upgrade --install release https://example_user:example_password@repo.example.com/chart.tgz --history-max 0
|
||||
`
|
||||
if err != nil {
|
||||
|
|
@ -547,8 +547,9 @@ func Test_DiffRelease(t *testing.T) {
|
|||
var buffer bytes.Buffer
|
||||
logger := NewLogger(&buffer, "debug")
|
||||
helm := MockExecer(logger, "config", "dev")
|
||||
err := helm.DiffRelease(HelmContext{}, "release", "chart", false, "--timeout 10", "--wait", "--wait-for-jobs")
|
||||
expected := `Comparing release=release, chart=chart
|
||||
err := helm.DiffRelease(HelmContext{}, "release", "chart", "default", false, "--timeout 10", "--wait", "--wait-for-jobs")
|
||||
expected := `Comparing release=release, chart=chart, namespace=default
|
||||
|
||||
exec: helm --kubeconfig config --kube-context dev diff upgrade --allow-unreleased release chart --timeout 10 --wait --wait-for-jobs
|
||||
`
|
||||
if err != nil {
|
||||
|
|
@ -559,8 +560,9 @@ exec: helm --kubeconfig config --kube-context dev diff upgrade --allow-unrelease
|
|||
}
|
||||
|
||||
buffer.Reset()
|
||||
err = helm.DiffRelease(HelmContext{}, "release", "chart", false)
|
||||
expected = `Comparing release=release, chart=chart
|
||||
err = helm.DiffRelease(HelmContext{}, "release", "chart", "default", false)
|
||||
expected = `Comparing release=release, chart=chart, namespace=default
|
||||
|
||||
exec: helm --kubeconfig config --kube-context dev diff upgrade --allow-unreleased release chart
|
||||
`
|
||||
if err != nil {
|
||||
|
|
@ -571,8 +573,9 @@ exec: helm --kubeconfig config --kube-context dev diff upgrade --allow-unrelease
|
|||
}
|
||||
|
||||
buffer.Reset()
|
||||
err = helm.DiffRelease(HelmContext{}, "release", "https://example_user:example_password@repo.example.com/chart.tgz", false)
|
||||
expected = `Comparing release=release, chart=https://example_user:xxxxx@repo.example.com/chart.tgz
|
||||
err = helm.DiffRelease(HelmContext{}, "release", "https://example_user:example_password@repo.example.com/chart.tgz", "default", false)
|
||||
expected = `Comparing release=release, chart=https://example_user:xxxxx@repo.example.com/chart.tgz, namespace=default
|
||||
|
||||
exec: helm --kubeconfig config --kube-context dev diff upgrade --allow-unreleased release https://example_user:example_password@repo.example.com/chart.tgz
|
||||
`
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ type Interface interface {
|
|||
RegistryLogin(name, username, password, caFile, certFile, keyFile string, skipTLSVerify bool) error
|
||||
BuildDeps(name, chart string, flags ...string) error
|
||||
UpdateDeps(chart string) error
|
||||
SyncRelease(context HelmContext, name, chart string, flags ...string) error
|
||||
DiffRelease(context HelmContext, name, chart string, suppressDiff bool, flags ...string) error
|
||||
SyncRelease(context HelmContext, name, chart, namespace string, flags ...string) error
|
||||
DiffRelease(context HelmContext, name, chart, namespace string, suppressDiff bool, flags ...string) error
|
||||
TemplateRelease(name, chart string, flags ...string) error
|
||||
Fetch(chart string, flags ...string) error
|
||||
ChartPull(chart string, path string, flags ...string) error
|
||||
|
|
|
|||
|
|
@ -972,7 +972,7 @@ func (st *HelmState) SyncReleases(affectedReleases *AffectedReleases, helm helme
|
|||
}
|
||||
m.Unlock()
|
||||
}
|
||||
} else if err := helm.SyncRelease(context, release.Name, chart, flags...); err != nil {
|
||||
} else if err := helm.SyncRelease(context, release.Name, chart, release.Namespace, flags...); err != nil {
|
||||
m.Lock()
|
||||
affectedReleases.Failed = append(affectedReleases.Failed, release)
|
||||
m.Unlock()
|
||||
|
|
@ -2036,7 +2036,7 @@ func (st *HelmState) DiffReleases(helm helmexec.Interface, additionalValues []st
|
|||
|
||||
if prep.upgradeDueToSkippedDiff {
|
||||
results <- diffResult{release, &ReleaseError{ReleaseSpec: release, err: nil, Code: HelmDiffExitCodeChanged}, buf}
|
||||
} else if err := helm.DiffRelease(st.createHelmContextWithWriter(release, buf), release.Name, normalizeChart(st.basePath, release.ChartPathOrName()), releaseSuppressDiff, flags...); err != nil {
|
||||
} else if err := helm.DiffRelease(st.createHelmContextWithWriter(release, buf), release.Name, normalizeChart(st.basePath, release.ChartPathOrName()), release.Namespace, releaseSuppressDiff, flags...); err != nil {
|
||||
switch e := err.(type) {
|
||||
case helmexec.ExitError:
|
||||
// Propagate any non-zero exit status from the external command like `helm` that is failed under the hood
|
||||
|
|
|
|||
|
|
@ -89,11 +89,11 @@ func (helm *noCallHelmExec) RegistryLogin(name, username, password, caFile, cert
|
|||
helm.doPanic()
|
||||
return nil
|
||||
}
|
||||
func (helm *noCallHelmExec) SyncRelease(context helmexec.HelmContext, name, chart string, flags ...string) error {
|
||||
func (helm *noCallHelmExec) SyncRelease(context helmexec.HelmContext, name, chart, namespace string, flags ...string) error {
|
||||
helm.doPanic()
|
||||
return nil
|
||||
}
|
||||
func (helm *noCallHelmExec) DiffRelease(context helmexec.HelmContext, name, chart string, suppressDiff bool, flags ...string) error {
|
||||
func (helm *noCallHelmExec) DiffRelease(context helmexec.HelmContext, name, chart, namespace string, suppressDiff bool, flags ...string) error {
|
||||
helm.doPanic()
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ helmfile-tests, managed-csi, StorageClass (storage.k8s.io) has been added:
|
|||
+ volumeBindingMode: Immediate
|
||||
+ allowVolumeExpansion: true
|
||||
|
||||
Comparing release=azuredisk-csi-driver, chart=azuredisk-csi-driver/azuredisk-csi-driver
|
||||
Comparing release=azuredisk-csi-driver, chart=azuredisk-csi-driver/azuredisk-csi-driver, namespace=helmfile-tests
|
||||
********************
|
||||
|
||||
Release was not present in Helm. Diff will show entire contents as new.
|
||||
|
|
|
|||
|
|
@ -958,4 +958,4 @@ helmfile-tests, disk.csi.azure.com, CSIDriver (storage.k8s.io) has been added:
|
|||
+ attachRequired: true
|
||||
+ podInfoOnMount: false
|
||||
+ fsGroupPolicy: File
|
||||
Comparing release=azuredisk-csi-driver, chart=azuredisk-csi-driver/azuredisk-csi-driver
|
||||
Comparing release=azuredisk-csi-driver, chart=azuredisk-csi-driver/azuredisk-csi-driver, namespace=helmfile-tests
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Comparing release=installed, chart=../../../charts/httpbin
|
||||
Comparing release=installed, chart=../../../charts/httpbin, namespace=helmfile-tests
|
||||
********************
|
||||
|
||||
Release was not present in Helm. Diff will show entire contents as new.
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ helmfile-tests, installed-httpbin, Service (v1) has been added:
|
|||
+ type: LoadBalancer
|
||||
Error: identified at least one change, exiting with non-zero exit code (detailed-exitcode parameter enabled)
|
||||
Error: plugin "diff" exited with error
|
||||
Comparing release=installed, chart=../../../charts/httpbin
|
||||
Comparing release=installed, chart=../../../charts/httpbin, namespace=helmfile-tests
|
||||
Release "installed" does not exist. Installing it now.
|
||||
NAME: installed
|
||||
NAMESPACE: helmfile-tests
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
Live output is enabled
|
||||
Building dependency release=installed, chart=../../../charts/httpbin
|
||||
Listing releases matching ^uninstalled$
|
||||
Upgrading release=installed, chart=../../../charts/httpbin
|
||||
Upgrading release=installed, chart=../../../charts/httpbin, namespace=helmfile-tests
|
||||
Listing releases matching ^installed$
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
Building dependency release=installed, chart=../../../charts/httpbin
|
||||
Listing releases matching ^uninstalled$
|
||||
Upgrading release=installed, chart=../../../charts/httpbin
|
||||
Upgrading release=installed, chart=../../../charts/httpbin, namespace=helmfile-tests
|
||||
Release "installed" does not exist. Installing it now.
|
||||
NAME: installed
|
||||
NAMESPACE: helmfile-tests
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Comparing release=installed, chart=../../../charts/httpbin
|
||||
Comparing release=installed, chart=../../../charts/httpbin, namespace=helmfile-tests
|
||||
********************
|
||||
|
||||
Release was not present in Helm. Diff will show entire contents as new.
|
||||
|
|
|
|||
|
|
@ -65,4 +65,4 @@ helmfile-tests, installed-httpbin, Service (v1) has been added:
|
|||
+ app: httpbin
|
||||
+ release: installed
|
||||
+ type: LoadBalancer
|
||||
Comparing release=installed, chart=../../../charts/httpbin
|
||||
Comparing release=installed, chart=../../../charts/httpbin, namespace=helmfile-tests
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
Building dependency release=foo, chart=../../../charts/raw
|
||||
Building dependency release=baz, chart=../../../charts/raw
|
||||
Comparing release=foo, chart=../../../charts/raw
|
||||
Comparing release=foo, chart=../../../charts/raw, namespace=helmfile-tests
|
||||
********************
|
||||
|
||||
Release was not present in Helm. Diff will show entire contents as new.
|
||||
|
|
@ -25,7 +25,7 @@ helmfile-tests, foo-1, ConfigMap (v1) has been added:
|
|||
+ data:
|
||||
+ foo: FOO
|
||||
|
||||
Comparing release=baz, chart=../../../charts/raw
|
||||
Comparing release=baz, chart=../../../charts/raw, namespace=helmfile-tests
|
||||
********************
|
||||
|
||||
Release was not present in Helm. Diff will show entire contents as new.
|
||||
|
|
|
|||
|
|
@ -47,5 +47,5 @@ helmfile-tests, cm1, ConfigMap (v1) has been added:
|
|||
+ name: cm1
|
||||
+ metadata:
|
||||
+ name: cm1
|
||||
Comparing release=foo, chart=../../../charts/raw
|
||||
Comparing release=baz, chart=../../../charts/raw
|
||||
Comparing release=foo, chart=../../../charts/raw, namespace=helmfile-tests
|
||||
Comparing release=baz, chart=../../../charts/raw, namespace=helmfile-tests
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Comparing release=baz, chart=../../../charts/raw
|
||||
Comparing release=baz, chart=../../../charts/raw, namespace=helmfile-tests
|
||||
********************
|
||||
|
||||
Release was not present in Helm. Diff will show entire contents as new.
|
||||
|
|
|
|||
|
|
@ -13,4 +13,4 @@ helmfile-tests, baz-2, ConfigMap (v1) has been added:
|
|||
+ namespace: helmfile-tests
|
||||
+ data:
|
||||
+ baz: BAZ
|
||||
Comparing release=baz, chart=../../../charts/raw
|
||||
Comparing release=baz, chart=../../../charts/raw, namespace=helmfile-tests
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Comparing release=ingress-nginx, chart=ingress-nginx/ingress-nginx
|
||||
Comparing release=ingress-nginx, chart=ingress-nginx/ingress-nginx, namespace=helmfile-tests
|
||||
helmfile-tests, ingress-nginx, ClusterRole (rbac.authorization.k8s.io) has changed:
|
||||
helmfile-tests, ingress-nginx, ClusterRoleBinding (rbac.authorization.k8s.io) has changed:
|
||||
# Source: ingress-nginx/templates/clusterrolebinding.yaml
|
||||
|
|
|
|||
|
|
@ -527,4 +527,4 @@ helmfile-tests, ingress-nginx-admission, NetworkPolicy (networking.k8s.io) has b
|
|||
- egress:
|
||||
- - {}
|
||||
+
|
||||
Comparing release=ingress-nginx, chart=ingress-nginx/ingress-nginx
|
||||
Comparing release=ingress-nginx, chart=ingress-nginx/ingress-nginx, namespace=helmfile-tests
|
||||
|
|
|
|||
Loading…
Reference in New Issue