carvel-dev / kapp-controller

Continuous delivery and package management for Kubernetes.
https://carvel.dev/kapp-controller
Apache License 2.0
262 stars 101 forks source link

Make kapp controller extensible #1413

Open varshaprasad96 opened 7 months ago

varshaprasad96 commented 7 months ago

Describe the problem/challenge you have

This feature request originates from discussions held during the community meeting on November 21, focusing on reevaluating the architecture of the Kapp controller for enhanced extensibility. Envisioning the entire process of deploying package contents onto the cluster as a pipeline, we engage in "fetching" packages from the specified source, "templating" them based on defined rules corresponding to the tool in use, and finally, "applying" them to the cluster. Each of these steps follows a predefined process, and at present, any requires changes to be made, need to be compiled in the master (or respective main code branch). For instance., in order to support kustomize, a kustomize binary needs to be built and shipped along with kapp-controller (this is just an example, need not necessarily be the case).

Describe the solution you'd like

It would be helpful to re-evaluate the architecture of kapp controller and incorporate extension points at each stage. This would enable users to customize the pipeline at various steps. For example, as a consumer of kapp-controller, I would like to have the flexibility to define custom templating or modification steps for the package fetched from the source. This way, I can leverage the tool's existing capabilities for fetching and applying contents to the cluster while tailoring specific aspects to meet my unique templating requirements.

Anything else you would like to add:

The issue does not describe the expected solution, as this is a larger discussion. This is to put forth an expected user behaviour, and discuss various options to improve the architecture.


Vote on this request

This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.

👍 "I would like to see this addressed as soon as possible" 👎 "There are other more important things to focus on right now"

We are also happy to receive and review Pull Requests if you want to help working on this issue.

varshaprasad96 commented 7 months ago

cc: @ncdc

ThomasVitale commented 7 months ago

I missed that meeting, unfortunately, but I'm glad to see that there are ongoing discussions around making kapp-controller more extensible. I'm actually working on a proposal to address that specific need: https://github.com/ThomasVitale/carvel/tree/develop/proposals/kapp-controller/004-introducing-package-functions. It's just an initial draft, at the moment. I'm still working out the architectural details.

renuy commented 6 months ago

Need the maintainers to evaluate and help with proposal. Would like to see if we can add this to our roadmap. @joaopapereira @praveenrewar