Skip to content

Commit f73232e

Browse files
committed
internal/pkg/scaffold/helm/chart.go: fetch chart dependencies
1 parent 345314b commit f73232e

File tree

1 file changed

+32
-13
lines changed

1 file changed

+32
-13
lines changed

internal/pkg/scaffold/helm/chart.go

+32-13
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,20 @@ func CreateChart(projectDir string, opts CreateChartOptions) (*scaffold.Resource
134134
if err != nil {
135135
return nil, nil, err
136136
}
137-
log.Infof("Created %s/%s/", HelmChartsDir, c.GetMetadata().GetName())
137+
138+
relChartPath := filepath.Join(HelmChartsDir, c.GetMetadata().GetName())
139+
absChartPath := filepath.Join(projectDir, relChartPath)
140+
if err := fetchChartDependencies(absChartPath); err != nil {
141+
return nil, nil, err
142+
}
143+
144+
// Reload chart in case dependencies changed
145+
c, err = chartutil.Load(absChartPath)
146+
if err != nil {
147+
return nil, nil, err
148+
}
149+
150+
log.Infof("Created %s", relChartPath)
138151
return r, c, nil
139152
}
140153

@@ -159,7 +172,7 @@ func scaffoldChart(destDir, apiVersion, kind string) (*scaffold.Resource, *chart
159172
return nil, nil, err
160173
}
161174

162-
chart, err := chartutil.LoadDir(chartPath)
175+
chart, err := chartutil.Load(chartPath)
163176
if err != nil {
164177
return nil, nil, err
165178
}
@@ -198,17 +211,7 @@ func fetchChart(destDir string, opts CreateChartOptions) (*scaffold.Resource, *c
198211
}
199212

200213
func createChartFromDisk(destDir, source string, isDir bool) (*chart.Chart, error) {
201-
var (
202-
chart *chart.Chart
203-
err error
204-
)
205-
206-
// If source is a file or directory, attempt to load it
207-
if isDir {
208-
chart, err = chartutil.LoadDir(source)
209-
} else {
210-
chart, err = chartutil.LoadFile(source)
211-
}
214+
chart, err := chartutil.Load(source)
212215
if err != nil {
213216
return nil, err
214217
}
@@ -265,3 +268,19 @@ func createChartFromRemote(destDir string, opts CreateChartOptions) (*chart.Char
265268

266269
return createChartFromDisk(destDir, chartArchive, false)
267270
}
271+
272+
func fetchChartDependencies(chartPath string) error {
273+
helmHome, ok := os.LookupEnv(environment.HomeEnvVar)
274+
if !ok {
275+
helmHome = environment.DefaultHelmHome
276+
}
277+
getters := getter.All(environment.EnvSettings{})
278+
279+
man := &downloader.Manager{
280+
Out: ioutil.Discard,
281+
ChartPath: chartPath,
282+
HelmHome: helmpath.Home(helmHome),
283+
Getters: getters,
284+
}
285+
return man.Build()
286+
}

0 commit comments

Comments
 (0)