Version: v1.1

Kustomize 组件

KubeVela 的 kustomize 组件满足了用户直接对接 Yaml 文件、文件夹作为组件制品的需求。无论你的 Yaml 文件/文件夹是存放在 Git 仓库还是对象存储库(如 OSS bucket),KubeVela 均能读取并交付。

来自 OSS bucket

来自 OSS bucket 仓库的 YAML 文件夹部署,我们以一个名为 bucket-comp 的组件为例。组件对应的部署文件存放在云存储 OSS bucket,使用对应 bucket 名称是 definition-registry。kustomize.yaml 来自 oss-cn-beijing.aliyuncs.com 的这个地址,所在路径为 ./app/prod/

  1. (可选)如果你的 OSS bucket 需要身份验证, 创建 Secret 对象:
  1. $ kubectl create secret generic bucket-secret --from-literal=accesskey=<your-ak> --from-literal=secretkey=<your-sk>
  2. secret/bucket-secret created
  1. 部署该组件
  1. cat <<EOF | kubectl apply -f -
  2. apiVersion: core.oam.dev/v1beta1
  3. kind: Application
  4. metadata:
  5. name: bucket-app
  6. spec:
  7. components:
  8. - name: bucket-comp
  9. type: kustomize
  10. properties:
  11. repoType: oss
  12. # 如果 bucket 是私用权限,会需要你提供
  13. secretRef: bucket-secret
  14. url: oss-cn-beijing.aliyuncs.com
  15. oss:
  16. bucketName: definition-registry
  17. path: ./app/prod/
  18. EOF

请复制上面的代码块,直接部署到运行时集群:

  1. application.core.oam.dev/bucket-app created

最后我们使用 vela ls 来查看交付成功后的应用状态:

  1. vela ls
  2. APP COMPONENT TYPE TRAITS PHASE HEALTHY STATUS CREATED-TIME
  3. bucket-app bucket-comp kustomize running healthy 2021-08-28 18:53:14 +0800 CST

bucket-app APP 的 PHASE 为 running,同时 STATUS 为 healthy。应用部署成功!

参数说明

参数是否可选含义例子
repoType必填值为 oss 标志 kustomize 配置来自 OSS bucketoss
pullInterval可选与 bucket 进行同步,与调谐 kustomize 的时间间隔 默认值5m(5分钟)10m
url必填bucket 的 endpoint,无需填写 schemeoss-cn-beijing.aliyuncs.com
secretRef可选保存一个 Secret 的名字,该Secret是读取 bucket 的凭证。Secret 包含 accesskey 和 secretkey 字段sec-name
timeout可选下载操作的超时时间,默认 20s60s
path必填包含 kustomization.yaml 文件的目录, 或者包含一组 YAML 文件(用以生成 kustomization.yaml )的目录。./prod
oss.bucketName必填bucket 名称your-bucket
oss.provider可选可选 generic 或 aws,若从 aws EC2 获取凭证则填 aws。默认 generic。generic
oss.region可选bucket 地区

来自 Git 仓库

参数是否可选含义例子
repoType必填值为 git 标志 kustomize 配置来自 Git 仓库git
pullInterval可选与 Git 仓库进行同步,与调谐 helm release 的时间间隔 默认值5m(5分钟)10m
url必填Git 仓库地址https://github.com/oam-dev/terraform-controller
secretRef可选存有拉取 Git 仓库所需凭证的 Secret 对象名,对 HTTP/S 基本鉴权 Secret 中必须包含 username 和 password 字段。对 SSH 形式鉴权必须包含 identity, identity.pub 和 known_hosts 字段sec-name
timeout可选下载操作的超时时间,默认 20s60s
git.branch可选Git 分支,默认为 masterdev

使用示例

  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4. name: git-app
  5. spec:
  6. components:
  7. - name: git-comp
  8. type: kustomize
  9. properties:
  10. repoType: git
  11. url: https://github.com/<path>/<to>/<repo>
  12. git:
  13. branch: master
  14. path: ./app/dev/