Conversation
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
mattfarina
left a comment
There was a problem hiding this comment.
The action packages provide the business logic the Helm CLI uses in a reusable manner. But, other pieces of software aren't required to use them and often don't. The other packages are regularly used by software using the SDK.
For example...
- The Flux helm-controller directly uses many different packages on the proposed list to move.
- The helm-mapkubeapis plugin, maintained by the Helm project, uses packages outside of action. It needs to get at the releases and make changes to them which requires using the building block packages.
I'm aware of numerous other applications that use a wide variety of Helm packages.
We can't anticipate all their needs to create higher level abstractions (e.g., in the action package) and it would be too much work to act on all their requests. This is why providing access to the building blocks is useful. I don't think we should make them internal.
|
So yes, the goal is to (more) fully try and determine what can be moved/made internal
An alternative or prelude to this HIP might be to document what Helm should expect to be public too... Taking a look at flux2 (or practically helm-controller). I see a variety of the above scenarios: https://github.com/search?q=repo%3Afluxcd%2Fhelm-controller+%22helm.sh%2Fhelm%2Fv3%22&type=code&p=1 Flux2 (helm-controller) needs:
So while e.g. flux2 does need Helm SDK APIs beyond actions. A significant potion of exposed APIs I still maintain are not suitable to external consumption, or a simply not used. Further analysis can be done of course. Initial goal here is to get an agreement as to how to proceed with classifying APIs to consider moving them |
|
I want to add some context to a few packages...
Footnotes
|
|
Note, the gates package I was initially thinking would be good for internal. But, there are calls to expose the CLI itself as a package. Will this mean people need/want the gates? |
No description provided.