addon支持从本地、git仓库、helm chart仓库安装,最终原理都相同,因此我们以本地安装为例。
完整流程如下:
-
从指定目录读取一个完整的addon安装包。
-
根据metadata.yaml配置文件,校验插件要求的kubevela、k8s的版本,不满足版本要求则终止安装。
-
根据metadata.yaml配置文件,如果需要依赖其它插件,且有依赖的插件没安装,则终止安装,并提示需要先安装其它依赖插件。
-
生成Application,通过Application安装插件:
-
如果提供template.cur或者template.yaml,则通过模版生成Application,没有则直接创建一个Application。不管模版配置的namespace、name是什么,都会被覆盖为vela-system和addon-${addon的名称}。
-
如果metadata.yaml声明了needNamespace,则为每个needNamespace生成一个类型为raw的组件,用于在管控集群下当namespace不存在时创建namespace。
-
resources目录下的组件渲染。
-
如果metadata.yaml声明了deployTo,runtime-cluster配置为true,自动为Application生成topology策略:
- 如果支持vela addon enable命
-