@ -73,10 +73,11 @@ func LoadFiles(files []*BufferedFile) (*chart.Chart, error) {
c := new ( chart . Chart )
c := new ( chart . Chart )
subcharts := make ( map [ string ] [ ] * BufferedFile )
subcharts := make ( map [ string ] [ ] * BufferedFile )
// do not rely on assumed ordering of files in the chart and crash
// if Chart.yaml was not coming early enough to initialize metadata
for _ , f := range files {
for _ , f := range files {
c . Raw = append ( c . Raw , & chart . File { Name : f . Name , Data : f . Data } )
c . Raw = append ( c . Raw , & chart . File { Name : f . Name , Data : f . Data } )
switch {
if f . Name == "Chart.yaml" {
case f . Name == "Chart.yaml" :
if c . Metadata == nil {
if c . Metadata == nil {
c . Metadata = new ( chart . Metadata )
c . Metadata = new ( chart . Metadata )
}
}
@ -89,6 +90,14 @@ func LoadFiles(files []*BufferedFile) (*chart.Chart, error) {
if c . Metadata . APIVersion == "" {
if c . Metadata . APIVersion == "" {
c . Metadata . APIVersion = chart . APIVersionV1
c . Metadata . APIVersion = chart . APIVersionV1
}
}
}
}
for _ , f := range files {
c . Raw = append ( c . Raw , & chart . File { Name : f . Name , Data : f . Data } )
switch {
case f . Name == "Chart.yaml" :
// already processed
continue
case f . Name == "Chart.lock" :
case f . Name == "Chart.lock" :
c . Lock = new ( chart . Lock )
c . Lock = new ( chart . Lock )
if err := yaml . Unmarshal ( f . Data , & c . Lock ) ; err != nil {
if err := yaml . Unmarshal ( f . Data , & c . Lock ) ; err != nil {