The `vaildateTemplatesDir` function would still return `nil` if the directory doesn't exist,
so the early return that was documented never occurs.
Signed-off-by: Zach Burgess <zachburg@google.com>
This checks that the `crds/` dir only contains YAML files that define
K8s resources with `kind: CustomResourceDefinition`.
Checking that the YAML files are not templates will be done in a
separate commit.
Signed-off-by: Zach Burgess <zachburg@google.com>
The `TestValidateChartIconPresence` test fails when run after
`TestValidateChartIconURL` as they both are using a global
variable `badChart.Icon`
```
: go test -v -test.shuffle 1 -run '^(TestValidateChartIconPresence|TestValidateChartIconURL)$' ./pkg/lint/rules/
-test.shuffle 1
=== RUN TestValidateChartIconURL
--- PASS: TestValidateChartIconURL (0.00s)
=== RUN TestValidateChartIconPresence
chartfile_test.go:171: validateChartIconPresence to return a linter error, got no error
--- FAIL: TestValidateChartIconPresence (0.00s)
FAIL
FAIL helm.sh/helm/v4/pkg/lint/rules 0.051s
FAIL
: go test -v -test.shuffle 2 -run '^(TestValidateChartIconPresence|TestValidateChartIconURL)$' ./pkg/lint/rules/
-test.shuffle 2
=== RUN TestValidateChartIconPresence
--- PASS: TestValidateChartIconPresence (0.00s)
=== RUN TestValidateChartIconURL
--- PASS: TestValidateChartIconURL (0.00s)
PASS
ok helm.sh/helm/v4/pkg/lint/rules 0.050s
```
This commit:
1. Remove dependency on global variable
2. Explicitly set the state of the test object.
Signed-off-by: Rostyslav Polishchuk <rostyslavp@google.com>
When "helm lint" is run, it now errors on invalid chartfiles,
e.g. those with duplicate keys
Closes#12381
Signed-off-by: Edward Miller <edmiller287@gmail.com>
A new library was introduced that provides JSON Schema checking for
newer versions of the schema. In Helm v4, there is no need to have
two packages doing the JSON schema validation. The message output
can have breaking changes.
This change moves everything to the newer library. It also uses a
wrapper error to enable a clean Helm only interface for the
public Go API validation functions. This would enable the replacement
of the Schema validation library, if needed, without breaking the
Go API contract.
Signed-off-by: Matt Farina <matt.farina@suse.com>
This change moves the code, updates the import locations, and
adds a doc.go file to document what the v2 package is for.
This is part of HIP 20 for v3 charts
Signed-off-by: Matt Farina <matt.farina@suse.com>
chartutil was originally created to operate on protobufs which are
no longer part of Helm. The util package makes more sense to be
part of the chart package.
This change is part of the HIP 20 to create v3 charts and
explicitly call out v2 charts. The changes for this are in smaller
bite size changes.
Signed-off-by: Matt Farina <matt.farina@suse.com>
Since Helm is going through breaking changes with Helm v4, the version path to
Helm needs to be updated.
Signed-off-by: Matt Farina <matt.farina@suse.com>