通过 Crossplane 部署云资源

教程 部署云服务展示了如何通过 Terraform 在 CLI 和 VelaUX 上部署云服务。 本教程将讨论如何通过 Crossplane 部署云资源。

让我们以云供应商AWS为例。

启用插件 crossplane-aws

  1. $ vela addon enable crossplane-aws

认证 Crossplane AWS Provider

提交下面的应用,你可以根据 https://aws.amazon.com/blogs/security/wheres-my-secret-access-key/ 获得 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY。

  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4. name: aws
  5. namespace: vela-system
  6. spec:
  7. components:
  8. - name: aws
  9. type: crossplane-aws
  10. properties:
  11. name: aws
  12. AWS_ACCESS_KEY_ID: xxx
  13. AWS_SECRET_ACCESS_KEY: yyy

部署云资源

我们来配置一个 S3 bucket。请提交下面的应用。

  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4. name: s3-poc
  5. spec:
  6. components:
  7. - name: dev
  8. type: crossplane-aws-s3
  9. properties:
  10. name: kubevela-test-0714
  11. acl: private
  12. locationConstraint: us-east-1

在应用程序变成 running 后,你可以通过 AWS 命令行 或控制台访问该 bucket。

  1. $ vela ls
  2. APP COMPONENT TYPE TRAITS PHASE HEALTHY STATUS CREATED-TIME
  3. s3-poc dev crossplane-aws-s3 running healthy 2022-06-16 15:37:15 +0800 CST
  4. $ aws s3 ls
  5. 2022-06-16 15:37:17 kubevela-test-0714

更多

所有的 Crossplane 云资源都被定义为ComponentDefinitions,并且即将在 Crossplane provider 插件中交付,如 crossplan-aws。 如果已有的插件不满足你的需求,你可以根据以下说明定义自己的组件类型 how to define customized component