ThomasJLLN opened a new pull request, #366:
URL: https://github.com/apache/superset-kubernetes-operator/pull/366
## Summary
`charts/superset-operator/values.schema.json` sets `"additionalProperties":
false` on the root object. Helm validates the fully coalesced values against
this schema, so installing the chart fails whenever anything supplies a
top-level value the chart does not itself declare:
```
$ helm install superset-operator charts/superset-operator -f
shared-values.yaml
Error: values don't meet the specifications of the schema(s) in the
following chart(s):
superset-operator:
- at '': additional properties 'clusterName' not allowed
```
The chart owns none of those keys and ignores them at render time, so
rejecting them is strictly a loss. Three common workflows are affected:
1. **Shared values files.** A single org-wide `common-values.yaml` applied
across several charts in one pipeline makes the chart fail.
2. **CD tooling that injects release metadata.** Deployers commonly `--set`
a small block of cluster/environment identity into every release.
3. **`--set appVersion=<build>`**, a widespread convention, fails.
This PR removes `additionalProperties: false` from the root object only. The
nested`additionalProperties: false` constraints are unchanged, so everything
that catches real mistakes still fires.
## Details
There is already precedent for this reasoning in the same file. `global` is
declared as a bare permissive object:
```json
"global": {
"type": "object",
"description": "Helm-injected global values (present when installed as a
dependency)."
}
```
That is the schema conceding that something outside the chart injects keys
there and that those keys should not be validated against the chart's own
vocabulary. Top-level injection is the same situation with the same answer.
Widely used chart families (e.g. Bitnami) ship `values.schema.json` files with
no `additionalProperties` constraints at all.
### Trade-off
A misspelled top-level key (`servicAccount:`, `imagee:`) becomes a silent
but every misspelling *inside* a value block is still caught.
## Testing
- `make helm-test`
- Added a chart unit test asserting the chart renders when an undeclared
top-level value
is supplied.
- `make helm-values-covered` unaffected — no new `values.yaml` knob.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]