github.com/oam-dev/kubevela@v1.9.11/pkg/definition/gen_sdk/testdata/apply-terraform-provider.cue (about)

     1  import (
     2  	"vela/op"
     3  	"strings"
     4  )
     5  
     6  "apply-terraform-provider": {
     7  	alias: ""
     8  	attributes: {}
     9  	description: "Apply terraform provider config"
    10  	annotations: {
    11  		"category": "Terraform"
    12  	}
    13  	labels: {}
    14  	type: "workflow-step"
    15  }
    16  
    17  template: {
    18  	config: op.#CreateConfig & {
    19  		name:      "\(context.name)-\(context.stepName)"
    20  		namespace: context.namespace
    21  		template:  "terraform-\(parameter.type)"
    22  		config: {
    23  			name: parameter.name
    24  			if parameter.type == "alibaba" {
    25  				ALICLOUD_ACCESS_KEY: parameter.accessKey
    26  				ALICLOUD_SECRET_KEY: parameter.secretKey
    27  				ALICLOUD_REGION:     parameter.region
    28  			}
    29  			if parameter.type == "aws" {
    30  				AWS_ACCESS_KEY_ID:     parameter.accessKey
    31  				AWS_SECRET_ACCESS_KEY: parameter.secretKey
    32  				AWS_DEFAULT_REGION:    parameter.region
    33  				AWS_SESSION_TOKEN:     parameter.token
    34  			}
    35  			if parameter.type == "azure" {
    36  				ARM_CLIENT_ID:       parameter.clientID
    37  				ARM_CLIENT_SECRET:   parameter.clientSecret
    38  				ARM_SUBSCRIPTION_ID: parameter.subscriptionID
    39  				ARM_TENANT_ID:       parameter.tenantID
    40  			}
    41  			if parameter.type == "baidu" {
    42  				BAIDUCLOUD_ACCESS_KEY: parameter.accessKey
    43  				BAIDUCLOUD_SECRET_KEY: parameter.secretKey
    44  				BAIDUCLOUD_REGION:     parameter.region
    45  			}
    46  			if parameter.type == "ec" {
    47  				EC_API_KEY: parameter.apiKey
    48  			}
    49  			if parameter.type == "gcp" {
    50  				GOOGLE_CREDENTIALS: parameter.credentials
    51  				GOOGLE_REGION:      parameter.region
    52  				GOOGLE_PROJECT:     parameter.project
    53  			}
    54  			if parameter.type == "tencent" {
    55  				TENCENTCLOUD_SECRET_ID:  parameter.secretID
    56  				TENCENTCLOUD_SECRET_KEY: parameter.secretKey
    57  				TENCENTCLOUD_REGION:     parameter.region
    58  			}
    59  			if parameter.type == "ucloud" {
    60  				UCLOUD_PRIVATE_KEY: parameter.privateKey
    61  				UCLOUD_PUBLIC_KEY:  parameter.publicKey
    62  				UCLOUD_PROJECT_ID:  parameter.projectID
    63  				UCLOUD_REGION:      parameter.region
    64  			}
    65  		}
    66  	}
    67  	read: op.#Read & {
    68  		value: {
    69  			apiVersion: "terraform.core.oam.dev/v1beta1"
    70  			kind:       "Provider"
    71  			metadata: {
    72  				name:      parameter.name
    73  				namespace: context.namespace
    74  			}
    75  		}
    76  	}
    77  	check: op.#ConditionalWait & {
    78  		if read.value.status != _|_ {
    79  			continue: read.value.status.state == "ready"
    80  		}
    81  		if read.value.status == _|_ {
    82  			continue: false
    83  		}
    84  	}
    85  	providerBasic: {
    86  		accessKey: string
    87  		secretKey: string
    88  		region:    string
    89  	}
    90  	#AlibabaProvider: {
    91  		providerBasic
    92  		type: "alibaba"
    93  		name: *"alibaba-provider" | string
    94  	}
    95  	#AWSProvider: {
    96  		providerBasic
    97  		token: *"" | string
    98  		type:  "aws"
    99  		name:  *"aws-provider" | string
   100  	}
   101  	#AzureProvider: {
   102  		subscriptionID: string
   103  		tenantID:       string
   104  		clientID:       string
   105  		clientSecret:   string
   106  		name:           *"azure-provider" | string
   107  	}
   108  	#BaiduProvider: {
   109  		providerBasic
   110  		type: "baidu"
   111  		name: *"baidu-provider" | string
   112  	}
   113  	#ECProvider: {
   114  		type:   "ec"
   115  		apiKey: *"" | string
   116  		name:   *"ec-provider" | string
   117  	}
   118  	#GCPProvider: {
   119  		credentials: string
   120  		region:      string
   121  		project:     string
   122  		type:        "gcp"
   123  		name:        *"gcp-provider" | string
   124  	}
   125  	#TencentProvider: {
   126  		secretID:  string
   127  		secretKey: string
   128  		region:    string
   129  		type:      "tencent"
   130  		name:      *"tencent-provider" | string
   131  	}
   132  	#UCloudProvider: {
   133  		publicKey:  string
   134  		privateKey: string
   135  		projectID:  string
   136  		region:     string
   137  		type:       "ucloud"
   138  		name:       *"ucloud-provider" | string
   139  	}
   140  	parameter: *#AlibabaProvider | #AWSProvider | #AzureProvider | #BaiduProvider | #ECProvider | #GCPProvider | #TencentProvider | #UCloudProvider
   141  }