@@ -14,7 +14,7 @@ import (
1414 "github.com/deckhouse/deckhouse/pkg/log"
1515 logContext "github.com/deckhouse/deckhouse/pkg/log/context"
1616 "helm.sh/helm/v3/pkg/action"
17- "helm.sh/helm/v3/pkg/chart/loader "
17+ "helm.sh/helm/v3/pkg/chart"
1818 "helm.sh/helm/v3/pkg/chartutil"
1919 "helm.sh/helm/v3/pkg/cli"
2020 "helm.sh/helm/v3/pkg/release"
@@ -164,15 +164,15 @@ func (h *LibClient) LastReleaseStatus(releaseName string) (string /*revision*/,
164164 return strconv .FormatInt (int64 (lastRelease .Version ), 10 ), lastRelease .Info .Status .String (), nil
165165}
166166
167- func (h * LibClient ) UpgradeRelease (releaseName string , chartName string , valuesPaths []string , setValues []string , labels map [string ]string , namespace string ) error {
168- err := h .upgradeRelease (releaseName , chartName , valuesPaths , setValues , labels , namespace )
167+ func (h * LibClient ) UpgradeRelease (releaseName string , chart * chart. Chart , valuesPaths []string , setValues []string , labels map [string ]string , namespace string ) error {
168+ err := h .upgradeRelease (releaseName , chart , valuesPaths , setValues , labels , namespace )
169169 if err != nil {
170170 // helm validation can fail because FeatureGate was enabled for example
171171 // handling this case we can reinitialize kubeClient and repeat one more time by backoff
172172 if err := actionConfigInit (h .Logger ); err != nil {
173173 return err
174174 }
175- return h .upgradeRelease (releaseName , chartName , valuesPaths , setValues , labels , namespace )
175+ return h .upgradeRelease (releaseName , chart , valuesPaths , setValues , labels , namespace )
176176 }
177177 h .Logger .Debug ("helm release upgraded" , slog .String ("version" , releaseName ))
178178 return nil
@@ -182,7 +182,7 @@ func (h *LibClient) hasLabelsToApply() bool {
182182 return len (h .labels ) > 0
183183}
184184
185- func (h * LibClient ) upgradeRelease (releaseName string , chartName string , valuesPaths []string , setValues []string , labels map [string ]string , namespace string ) error {
185+ func (h * LibClient ) upgradeRelease (releaseName string , chart * chart. Chart , valuesPaths []string , setValues []string , labels map [string ]string , namespace string ) error {
186186 upg := action .NewUpgrade (actionConfig )
187187 if namespace != "" {
188188 upg .Namespace = namespace
@@ -197,11 +197,6 @@ func (h *LibClient) upgradeRelease(releaseName string, chartName string, valuesP
197197 upg .Timeout = options .Timeout
198198 upg .Labels = labels
199199
200- chart , err := loader .Load (chartName )
201- if err != nil {
202- return err
203- }
204-
205200 var resultValues chartutil.Values
206201
207202 for _ , vp := range valuesPaths {
@@ -226,7 +221,7 @@ func (h *LibClient) upgradeRelease(releaseName string, chartName string, valuesP
226221
227222 h .Logger .Info ("Running helm upgrade for release" ,
228223 slog .String ("release" , releaseName ),
229- slog .String ("chart" , chartName ),
224+ slog .String ("chart" , chart . Metadata . Name ),
230225 slog .String ("namespace" , namespace ))
231226 histClient := action .NewHistory (actionConfig )
232227 // Max is not working!!! Sort the final of releases by your own
@@ -312,7 +307,7 @@ func (h *LibClient) upgradeRelease(releaseName string, chartName string, valuesP
312307 }
313308 h .Logger .Info ("Helm upgrade successful" ,
314309 slog .String ("release" , releaseName ),
315- slog .String ("chart" , chartName ),
310+ slog .String ("chart" , chart . Metadata . Name ),
316311 slog .String ("namespace" , namespace ))
317312
318313 return nil
@@ -451,12 +446,7 @@ func (h *LibClient) ListReleasesNames() ([]string, error) {
451446 return releases , nil
452447}
453448
454- func (h * LibClient ) Render (releaseName , chartName string , valuesPaths , setValues []string , _ map [string ]string , namespace string , debug bool ) (string , error ) {
455- chart , err := loader .Load (chartName )
456- if err != nil {
457- return "" , err
458- }
459-
449+ func (h * LibClient ) Render (releaseName string , chart * chart.Chart , valuesPaths , setValues []string , _ map [string ]string , namespace string , debug bool ) (string , error ) {
460450 var resultValues chartutil.Values
461451
462452 for _ , vp := range valuesPaths {
@@ -480,7 +470,7 @@ func (h *LibClient) Render(releaseName, chartName string, valuesPaths, setValues
480470 }
481471
482472 h .Logger .Debug ("Render helm templates for chart ..." ,
483- slog .String ("chart" , chartName ),
473+ slog .String ("chart" , chart . Metadata . Name ),
484474 slog .String ("namespace" , namespace ))
485475
486476 inst := h .newDryRunInstAction (namespace , releaseName )
@@ -506,7 +496,7 @@ func (h *LibClient) Render(releaseName, chartName string, valuesPaths, setValues
506496 rs .Manifest += fmt .Sprintf ("\n \n \n %v" , err )
507497 }
508498
509- h .Logger .Info ("Render helm templates for chart was successful" , slog .String ("chart" , chartName ))
499+ h .Logger .Info ("Render helm templates for chart was successful" , slog .String ("chart" , chart . Metadata . Name ))
510500
511501 return rs .Manifest , nil
512502}
0 commit comments