kubeobser / RFC

RFC documents contain technical specifications and organizational notes for the KubeObser.
Apache License 2.0
0 stars 0 forks source link

FluxCD in YALO #2

Open arcosx opened 1 year ago

arcosx commented 1 year ago

上下文

YALO 支持在内部直接部署可观测性开源组件,来加速和简化构建可观测性流水线,但是可观测性开源组件众多,部署的标准化非常困难。

Helm 是现在 kubernertes 上广为使用的应用交付技术,各大开源组件也都为自己的组件做了 Helm Chart,直接使用这些 Helm Chart 可以简化大量部署工作。

Helm 是一个命令行工具,不能直接被程序调用,不满足 YALO 管理多集群场景下可观测性组件的需求。对于管理和部署 Helm,现有最好的方案是 FluxCD 开源的 helm-controller,该项目前身是旗下另一个开源组件 helm-operator

fluxcd/helm-controller: The GitOps Toolkit Helm reconciler, for declarative Helming

如何将 FluxCD 相关功能更好的嵌入到 YALO 中,是这个 RFC 讨论的内容。

FluxCD 在其他开源组件中的应用

kubevela

代码上是通过转化 Application(kubevela 自身的 CRD)到 FluxCD 的HelmReleaseSpec ,后者的 CRD 定义被拷贝到了 kubevela 项目内。

FluxCD 组件安装

kubevela 内部的 插件机制

vela addon enable fluxcd

相关代码

ks-devops

根据文章 FluxCD 多集群应用的设计与实现 - 知乎 描述 ,该项目将 FluxCD 中的 HelmReleaseKustomization 组合抽象成一个 FluxApplication 的概念。可以为同一个 HelmTemplate 添加不同的应用配置和部署配置然后部署到多个集群中,还可以使用 FluxCD 的 pauseresume 功能,单独控制某个集群内应用的启停。

代码:

weave-gitops

TODO

FluxCD 其他应用资料

多集群场景下基于 Flux 的应用持续交付实践 | 云原生社区

技术方案

TODO

arcosx commented 1 year ago

提取 Helm Controller

完整安装Flux 会产生很多 CRD 和 Controller,实际上只有绿色框是我们需要的。我们应该允许用户只安装他自己关心的内容来保证集群总体而言不会产生太多消耗资源的程序。

image image

Flux的唯一安装文件

FluxCD 生成这个文件的位置