Is it safe to only update the api version, if the content is different for the new version
- Dominant language
- Go
- Stars
- 1k
- Forks
- 121
- PR merge metrics
- No merged PRs in 30d
Description
When moving from one api version to another, we sometimes need to change the content of the yaml definition of the object.
Is it safe from helm's perspective for the `mapkubeapis` plugin to only change the version and not the content?
This was mostly answered in #34 but in a helm dev call there was a mention that the three-way merge could be something to think about with respect to this issue.
For example, in kube 1.22, the `Ingress` resource versions `extensions/v1beta1` and `networking.k8s.io/v1beta1` are removed and we must migrate to `networking.k8s.io/v1`. However, when migrating to the new version, some fields must be changed and some added (https://kubernetes.io/docs/reference/using-api/deprecation-guide/#ingress-v122).
Is it safe for the `mapkubeapis` plugin to ignore those field changes? Could helm's three-way merge logic be affected by a helm manifest that differs from the actual yaml stored in kubernetes?
If there could be issues, we may want to look at using the `kubectl convert` plugin to apply all changes to the helm manifest.
In fact, using the plugin may be interesting regardless as it has the potential to handle every format properly.
@hickeyma I'm hoping you may have an opinion about this.
Contributor guide
Assessment
This issue has not been assessed yet.