Clarity of what target versions are supported
rlratcliffe opened this issue · 1 comments
Is your feature request related to a problem? Please describe.
It is unclear when using Pluto if the target version for a K8s version that definitely exists (ex: pluto detect-all-in-cluster -o wide -t k8s=v1.27.1
) is available for detection in the tool or not. If I enter in a K8s version that clearly doesn't exist yet (ex: pluto detect-all-in-cluster -o wide -t k8s=v1.35.4
), no error is returned, just There were no resources found with known deprecated apiVersions.
This brings up questions such as:
- Is the version that does exist supported or is it not actually retrieving info?
- Is there a delay in between the time that a new K8s version is ready and when this tool is able to detect deprecations/removals for that version?
Describe the solution you'd like
I think an error if a target version isn't supported would be sufficient.
Describe alternatives you've considered
An output to show the currently supported versions for use with -t/--target-versions
, although that shouldn't replace an error being returned.
Additional context
N/A. Thanks for the tool.
👋
First, I think it's important to note that we do not care about patch versions Kubernetes. Since deprecations/removals only happen on minor version boundaries, we completely disregard the patch version when parsing targetVersion.
I definitely think we should have a "maximum supported version" somewhere in order to indicate what the versions file includes. Right now I believe we are up to 1.27. This would need to be specified in the versions file because right now we allow bringing your own file if you want.
As far as the other question, we try to keep Pluto up-to-date with the latest releases, but it's a very ad-hoc process right now. Generally we add versions as we become aware of them via release notes.
Another thing to note is that targetVersion is a bit interesting, in that if you did specify v1.35.0
(which does not exist), you would still get meaningful results from pluto. It's less of a "target version" and more of a "maximum version you want to see deprecations/removals for". So essentially saying --targetVersion=k8s=v1.35.0
says "Show me all the deprecations and removals that you know about". It's really only a useful flag when trying to limit the output to a lower version that you care about. So if the latest version out there is 1.27, and I'm upgrading from 1.23->1.24, I may not want to see all the things that get removed in 1.25-1.27 for this upgrade. So the best way to think of it is as a noise-reduction mechanism.