原创 吴就业 150 0 2023-07-23
本文为博主原创文章,未经博主允许不得转载。
本文链接:https://wujiuye.com/article/778df74260854197bf5c116e3cd3263d
作者:吴就业
链接:https://wujiuye.com/article/778df74260854197bf5c116e3cd3263d
来源:吴就业的网络日记
本文为博主原创文章,未经博主允许不得转载。
以使用阿里云的基础设施为例。
在本地机器中安装 vela CLI:
curl -fsSl https://static.kubevela.net/script/install.sh | bash
以本地安装插件为例。
1.克隆catalog仓库代码到本地。
git clone https://github.com/kubevela/catalog.git
2.如果没安装terraform核心插件(terraform-controller)需要先安装。(进入到克隆到本地的catalog项目的addons目录下执行)
vela addon enable terraform
3.安装terraform-alibaba这个插件。(进入到克隆到本地的catalog项目的addons目录下执行)
vela addon enable terraform-alibaba
如果最后一行输出”Addon terraform-alibaba enabled successfully.“即安装成功。
假如需要申请oss(对象存储)资源,则application.yaml描述如下。
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: oss-sample-app
spec:
components:
- name: sample-oss
type: alibaba-oss
properties:
bucket: test-bucket
acl: private
providerRef:
name: test-alibaba-provider
namespace: default
writeConnectionSecretToRef:
name: oss-test-bucket-conn
oss-sample-app声明了一个名为sample-oss的组件,组件类型为alibaba-oss由terraform-alibaba插件提供。这个组件要求填写的属性有bucket(存储桶名称)、acl(权限控制)。另外有两个通用属性:providerRef、writeConnectionSecretToRef。
providerRef配置引用哪个Provider资源,这个Provider资源配置了使用哪个terraform提供者以及访问凭证。writeConnectionSecretToRef配置terraform的输出写到哪个Secret资源。
现在我们还需要创建出Provider资源对象:
vela config create test-alibaba-provider-secret \
-t terraform-alibaba \
ALICLOUD_ACCESS_KEY="${ALICLOUD_ACCESS_KEY}" \
ALICLOUD_SECRET_KEY="${ALICLOUD_SECRET_KEY}" \
ALICLOUD_REGION="${ALICLOUD_REGION}" \
name=test-alibaba-provider
如果不了解需要填写哪些参数,以及输出哪些参数,可以查看组件说明文档,可使用vela show命令查看:
vela show alibaba-oss
声明:公众号、CSDN、掘金的曾用名:“Java艺术”,因此您可能看到一些早期的文章的图片有“Java艺术”的水印。
erraform-controller是一个专门负责terraform一类的组件"安装"的Operator,通过打包成helm,再封装成kubevela的Addon,由kubevela安装到管控集群,为其它terraform provider插件提供模块定义支持。
通过前面的章节,我们已经学习了解terraform,并通过vpc资源例子,为私有云/混合云开发了terraform provider,这一节介绍如何将我们开发的mycloud terraform provider整合到kubevela控制平台上,以通过在application中声明一个kubevela组件的方式去申请基础设施资源。
KubeVela是面向混合云环境的应用交付控制面,不与任何云产商绑定。KubeVela通过提供插件扩展机制,打通了应用交付涉及的基础设施即代码-terraform等能力。编写一个符合OAM模型的application.yaml就能实现将应用部署起来,包括申请基础设施。实现了声明式部署,且一次编写,到处部署。
“部署即代码”即用代码描述一个应用的部署计划。KubeVela就是实现这一目标的平台,让我们可以编写一个符合OAM模型的yaml来描述应用的部署。
订阅
订阅新文章发布通知吧,不错过精彩内容!
输入邮箱,提交后我们会给您发送一封邮件,您需点击邮件中的链接完成订阅设置。