KubeVela篇04:KubeVela打通Terraform申请云资源

原创 吴就业 175 0 2023-07-23

本文为博主原创文章,未经博主允许不得转载。

本文链接:https://wujiuye.com/article/778df74260854197bf5c116e3cd3263d

作者:吴就业
链接:https://wujiuye.com/article/778df74260854197bf5c116e3cd3263d
来源:吴就业的网络日记
本文为博主原创文章,未经博主允许不得转载。

云原生企业级实战笔记专栏

以使用阿里云的基础设施为例。

一、本地使用velad命令

在本地机器中安装 vela CLI:

curl -fsSl https://static.kubevela.net/script/install.sh | bash

二、安装Terraform核心插件

以本地安装插件为例。

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.“即安装成功。

三、在application.yaml中声明用于申请云资源的组件

假如需要申请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艺术”的水印。

文章推荐

KubeVela篇07:terraform controller实现原理

erraform-controller是一个专门负责terraform一类的组件"安装"的Operator,通过打包成helm,再封装成kubevela的Addon,由kubevela安装到管控集群,为其它terraform provider插件提供模块定义支持。

KubeVela篇06:Kubevela Addon插件安装原理

terraform插件的安装过程;terraform provider插件的安装过程。

KubeVela篇05:为kubevela开发terraform-mycloud Addon插件

通过前面的章节,我们已经学习了解terraform,并通过vpc资源例子,为私有云/混合云开发了terraform provider,这一节介绍如何将我们开发的mycloud terraform provider整合到kubevela控制平台上,以通过在application中声明一个kubevela组件的方式去申请基础设施资源。

KubeVela篇03:了解KubeVela安装一个应用的过程

以一个简单的first-vela-app应用在kubevela上部署为例,介绍应用安装流程。

KubeVela篇02:初识KubeVela,进一步理解OAM模型

KubeVela是面向混合云环境的应用交付控制面,不与任何云产商绑定。KubeVela通过提供插件扩展机制,打通了应用交付涉及的基础设施即代码-terraform等能力。编写一个符合OAM模型的application.yaml就能实现将应用部署起来,包括申请基础设施。实现了声明式部署,且一次编写,到处部署。

KubeVela篇01:部署即代码-编写yaml在KubeVela上交付第一个应用

“部署即代码”即用代码描述一个应用的部署计划。KubeVela就是实现这一目标的平台,让我们可以编写一个符合OAM模型的yaml来描述应用的部署。