carvel-dev / carvel-dev/kapp-controller

flux controller

Open
#1,048 0 comments 4 reactions 0 assignees View on GitHub
carvel-accepted enhancement priority/important-soon
Dominant language
Go
Stars
323
Forks
127
Avg merge
2d 10h
Merged PRs (30d)
6

Description

**Describe the problem/challenge you have**

kapp-controller and its ytt templating is great, and allowed me to overcome some limitations in kustomize flux workflows (see https://github.com/kubernetes-sigs/kustomize/issues/4636)

However, kapp-controller and ytt does not integrate yet well with flux ecosystem, for flux consumer projects :
* the source (git repo/oci) are fetched independently :
* from kapp fetch section
* from flux source controller https://fluxcd.io/flux/components/source/
* with different feature sets, e.g. kapp-controller does not yet support [event-based pulls](https://kubernetes.slack.com/archives/CH8KCCKA5/p1674134387444429)
* kapp-controller does not yet support notifications that flux could offer through the notification controller https://fluxcd.io/flux/components/notification/(see https://github.com/vmware-tanzu/carvel-kapp-controller/issues/522)
* flux users also have to learn the kapp UX, and adapt their tooling see https://github.com/derailed/k9s/pull/1830
* kapp controller does not yet have AFAIK builtin monitoring that flux could provide, see https://fluxcd.io/flux/guides/monitoring and https://github.com/vmware-tanzu/carvel-kapp-controller/issues/789

**Describe the solution you'd like**

Carvel tools to also be integrated as a flux extension, see https://fluxcd.io/ecosystem/#flux-extensions

* step 1: a "all-in-one" carvel flux controller:
* leveraging flux source events
* with a consistent CRD ux and feature set to [kustomize controller](https://fluxcd.io/flux/components/kustomize/) such as
* [spec.suspend to true](https://fluxcd.io/flux/components/kustomize/kustomization/#reconciliation)
* enabling all of carvel templating (e.g. ytt,cue...) and deploy (in particular kapp)
* step 2: fine grain controllers
* a carvel templating flux controller
* an option to leverage kapp for both
* existing [Kustomize controller](https://fluxcd.io/flux/components/kustomize/)
* carvel templating flux controller

**Anything else you would like to add:**

This idea has been discussed in the carvel project history, and further exchanged during the community meeting on Jan 11th 2023, see https://hackmd.io/G8dN30WvQl-8Sirnp8AgRA?view#January-11-2023-Agenda

[Additional information that will assist in solving the issue.]

The https://fluxcd.io/flux/gitops-toolkit/source-watcher/ seems the entry point to spiking new flux controllers

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

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.