To implement compatibility with different K8S versions the Capabilities.APIVersions is used in the helm chart's template yaml or tpl files.
A helm version hardcodes a fixed set of APIVersions from a specific K8S release.
A new option (--default-api-versions-file) is added to load the full list of APIVersions from files that "mocks" the API list of a given K8S version or distribution, so the default list can be overriden.
This way the compatibility of a helm chart can be tested offline using helm template with different set of K8S API Versions as input.
The output of helm template operation can be input to kubeval or kubeconform to test the schema compatibility.
Example: helm template mychart-1.0.0.tgz --api-versions-file k8s.v1.27.txt
where the k8s.v127.txt can contain the list of API versions. Example
```txt
v1
v1/Binding
v1/ComponentStatus
v1/ConfigMap
v1/Endpoints
v1/Event
v1/LimitRange
v1/Namespace
v1/Node
v1/PersistentVolume
v1/PersistentVolumeClaim
v1/Pod
v1/PodTemplate
v1/ReplicationController
v1/ResourceQuota
v1/Secret
v1/Service
v1/ServiceAccount
apps/v1
apps/v1/ControllerRevision
apps/v1/DaemonSet
apps/v1/Deployment
apps/v1/ReplicaSet
apps/v1/StatefulSet
etc.
```
Signed-off-by: Mozes <nyitrai.mozes@gmail.com>