KubeVela 是如何使用 Terraform 拉起云资源的?
1)平台团队:注册云资源模板和抽象 平台团队的工作是定义一个名为"aliyun-rds"的 WorkloadDefinition 对象,并且在里面定义好 Terraform 阿里云 RDS 云资源的模板。在上述例子中我们同样是通过 CUE 来编写的 Terraform 配置, 这是因为 Terraform 云资源本身支持使用 JSON 格式描述,而 CUE 又是 JSON 的超集,所以可以自然的使用 Terraform 所有的能力。
当然,另一方面我们也在计划支持 Terraform 的 HCL 语法来作为 KubeVela 的另一种模板语言。在 CUE 模板中我们引用了阿里云的 RDS 定义,并抽象成 user、password等少量用户字段(parameter)。
2)用户:定义和使用云资源
这样,用户只需要在 Appfile 中,填写一个新的 Service,命名为 sample-db 而其类型就是我们上面定义的 aliyun-rds,就可以在这个部分定义模板中提供的 user,password 等参数。
除此之外,用户还可以在上面的 express-server 这个业务应用中定义数据绑定,填写名为 sample-db 的配置及其映射的环境变量名称。
最后,用户只需要一句 vela up 命令,KubeVela 就会拉起业务容器,然后自动把 Terraform 创建的阿里云RDS返回的链接信息传递到业务的容器中,我们可以在最后一部分看到这个应用已经成功启动,并获得了数据库的连接信息。当然,这个流程中的数据传递和编排功能,也是 KubeVela 内置的核心能力。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。