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 }