Skip to content

support multiple provider #76

Open
@novboy

Description

@novboy
  1. define any provider via hcl and variable
apiVersion: terraform.core.oam.dev/v1beta1
kind: Provider
metadata:
  name: alibaba-sample
spec:
  hcl: |
    terraform {
        required_providers {
          alicloud = {
              source = "aliyun/alicloud"
              version = "1.124.3"
         }
      }
    }
    provider "alicloud" {
      access_key = "${var.access_key}"
      secret_key = "${var.secret_key}"
      region     = "${var.region}"
    }
    variable "access_key" {
      default = ""
      type = string
    }

    variable "secret_key" {
      default = ""
      type = string
    }
    variable "region" {
      default = "beijing"
      type = string
    }
  variable:
    # credentials binding
    -  name: access_key: 
        valueFrom:
          secretKeyRef:
            name: mysecret
            key: "access_key"
    -  name: secret_key: 
        valueFrom:
          secretKeyRef:
            name: mysecret
            key: "secret_key"
    -  name: region
        value: "beijing"
  1. choose provider by name
apiVersion: terraform.core.oam.dev/v1beta1
kind: Configuration
metadata:
  name: alibaba-oss
spec:
  hcl: |
    resource "alicloud_oss_bucket" "bucket-acl" {
      bucket = var.bucket
      acl = var.acl
    }

    output "BUCKET_NAME" {
      value = "${alicloud_oss_bucket.bucket-acl.bucket}.${alicloud_oss_bucket.bucket-acl.extranet_endpoint}"
    }

    variable "bucket" {
      description = "OSS bucket name"
      default = "vela-website"
      type = string
    }

    variable "acl" {
      description = "OSS bucket ACL, supported 'private', 'public-read', 'public-read-write'"
      default = "private"
      type = string
    }

  variable:
    bucket: "vela-website"
    acl: "private"
  provider: "alibaba-sample"
  writeConnectionSecretToRef:
    name: oss-conn
    namespace: default

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions