kcl-lang / flux-kcl-controller

Flux KCL Controller
https://kcl-lang.io
Apache License 2.0
23 stars 7 forks source link

[Enhancement] Create a KCL Flux Controller #9

Closed steeling closed 6 months ago

steeling commented 1 year ago

Enhancement

This is probably the wrong place for this, but I wanted to add a request for creating a flux controller. Flux currently supports helm (beta, with a lot of missing features in drift detection), and kustomize (but this can also just be native k8s yaml files).

A flux controller would allow us to create and manage our kcl manifests directly from our repo, without any additional tooling or pre-rendering.

This could be done be either creating a controller akin to the kustomize controller, or a new source controller. This source controller would be chained to another source controller, such that it:

  1. Reads from the initial source controller. This would be an existing source controller like bucket, or git repo.
  2. Renders the yaml manifests, then serves the render yaml to the kustomize controller.
Peefy commented 1 year ago

@steeling Hi there. First of all, thank you for your attention. ❤️

For the basic GitOps process, we currently support the use of ArgoCD for KCL configuration repo management and automatic synchronization, See here. We have plans to support FluxCD, but it may be available between KCL v0.6.0 and v0.7.0 versions. It would be great if you could participate in the collaboration and contribution of the KCL FluxCD Source Controller.

In addition, with the automation capabilities of KCL, FluxCD can automatically listen to Image Registry and update the image configuration into KCL code, just like the kustomize set image command does.

Some topics unrelated to this PR:

steeling commented 1 year ago

hi @Peefy, thanks for quick reply! The argo cd integration looks exactly like what we're looking for! Particularly with the recently accepted proposal for argo to pull from OCI registries + kpm.

Will spend some more time looking at this, but this looks promising :)

Peefy commented 8 months ago

The initial implementation version is here: https://github.com/kcl-lang/flux-kcl-controller and I'll transfer this issue to the repo.