Use helm show chart to identify chart version

Signed-off-by: Felipe Santos <felipecassiors@gmail.com>
This commit is contained in:
Felipe Santos
2022-10-03 22:04:08 -03:00
parent 3165551f9a
commit f15bdbbb0c
17 changed files with 115 additions and 24 deletions
+6 -3
View File
@@ -867,7 +867,7 @@ func (st *HelmState) SyncReleases(affectedReleases *AffectedReleases, helm helme
m.Unlock()
installedVersion, err := st.getDeployedVersion(context, helm, release)
if err != nil { // err is not really impacting so just log it
st.logger.Debugf("getting deployed release version failed:%v", err)
st.logger.Debugf("getting deployed release version failed: %v", err)
} else {
release.installedVersion = installedVersion
}
@@ -938,8 +938,11 @@ func (st *HelmState) getDeployedVersion(context helmexec.HelmContext, helm helme
if len(versions) > 0 {
return versions[1], nil
} else {
//fails to find the version
return "failed to get version", errors.New("Failed to get the version for:" + chartName)
chartMetadata, err := helm.ShowChart(release.Chart)
if err != nil {
return "failed to get version", errors.New("Failed to get the version for: " + chartName)
}
return chartMetadata.Version, nil
}
} else {
return "failed to get version", err
+11
View File
@@ -1455,6 +1455,16 @@ func TestGetDeployedVersion(t *testing.T) {
foo-bar-release 1 Wed Apr 17 17:39:04 2019 DEPLOYED foo-bar-1.0.0-alpha+001 0.1.0 default`,
installedVersion: "1.0.0-alpha+001",
},
{
name: "chart version from helm show chart",
release: ReleaseSpec{
Name: "foo",
Chart: "../../foo-bar",
},
listResult: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
foo 1 Wed Apr 17 17:39:04 2019 DEPLOYED foo-bar 0.1.0 default`,
installedVersion: "3.2.0",
},
}
for i := range tests {
tt := tests[i]
@@ -1467,6 +1477,7 @@ func TestGetDeployedVersion(t *testing.T) {
valsRuntime: valsRuntime,
RenderedValues: map[string]interface{}{},
}
helm := &exectest.Helm{
Lists: map[exectest.ListKey]string{},
}