carvel-dev / carvel-dev/kapp-controller

Make kapp controller extensible

Open
#1,413 3 comments 2 reactions 0 assignees View on GitHub
discussion enhancement priority/important-longterm
Dominant language
Go
Stars
323
Forks
127
Avg merge
2d 10h
Merged PRs (30d)
6

Description

**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.

Contributor guide

Open the contributing guide

Research direction

No files or tests are named. Start by mapping the kapp-controller pipeline stages described in the issue—fetching, templating, and applying—and review the architecture discussion before proposing extension points; done means the community has agreed on an extensible design and its expected user behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
devops, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.