Handle messy index files

Signed-off-by: Matt Farina <matt.farina@suse.com>
pull/31132/head
Matt Farina 2 months ago
parent 0c64ad1c97
commit 69efc0d4fb
No known key found for this signature in database
GPG Key ID: 92C44A3D421FF7F9

@ -355,7 +355,8 @@ func loadIndex(data []byte, source string) (*IndexFile, error) {
for name, cvs := range i.Entries { for name, cvs := range i.Entries {
for idx := len(cvs) - 1; idx >= 0; idx-- { for idx := len(cvs) - 1; idx >= 0; idx-- {
if cvs[idx] == nil { if cvs[idx] == nil {
slog.Warn("skipping loading invalid entry for chart %q from %s: empty entry", name, source) slog.Warn(fmt.Sprintf("skipping loading invalid entry for chart %q from %s: empty entry", name, source))
cvs = append(cvs[:idx], cvs[idx+1:]...)
continue continue
} }
// When metadata section missing, initialize with no data // When metadata section missing, initialize with no data
@ -366,7 +367,7 @@ func loadIndex(data []byte, source string) (*IndexFile, error) {
cvs[idx].APIVersion = chart.APIVersionV1 cvs[idx].APIVersion = chart.APIVersionV1
} }
if err := cvs[idx].Validate(); ignoreSkippableChartValidationError(err) != nil { if err := cvs[idx].Validate(); ignoreSkippableChartValidationError(err) != nil {
slog.Warn("skipping loading invalid entry for chart %q %q from %s: %s", name, cvs[idx].Version, source, err) slog.Warn(fmt.Sprintf("skipping loading invalid entry for chart %q %q from %s: %s", name, cvs[idx].Version, source, err))
cvs = append(cvs[:idx], cvs[idx+1:]...) cvs = append(cvs[:idx], cvs[idx+1:]...)
} }
} }

@ -68,6 +68,7 @@ entries:
grafana: grafana:
- apiVersion: v2 - apiVersion: v2
name: grafana name: grafana
- null
foo: foo:
- -
bar: bar:

Loading…
Cancel
Save