Skip to content

Discussion concerning better support around changing API versions

Recently #2425 (closed) generated some discussion and thoughts how to better support Kubernetes objects across multiple Kubernetes versions where the apiVersion gets updated between the Kubernetes versions or perhaps deprecated with a release of Kubernetes.

Key questions:

  • Is using Helm's .Capabilities.KubeVersion the best way to handle detection/managing differences in API versions?
  • There is also .Capabilities.APIVersions, but that does not seem to be tied directly to specific Kubernetes objects. Can it be used for detecting which apiVersion to support?
    • Documentation also shows .Capabilities.APIVersions.Has to query for a specific API, but it does not seem to allow querying a specific Kubernetes object so unknown how useful it will be.
  • What will be the best approach to handling differences when there are mostly compatible but slightly subtle differences in the APIs?
  • Are there any good rules of thumb to follow to choose sane defaults or how to better support a change in an API?