generated from terraform-ibm-modules/terraform-ibm-module-template
-
Notifications
You must be signed in to change notification settings - Fork 1
/
variables.tf
276 lines (243 loc) · 9.77 KB
/
variables.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
variable "ibmcloud_api_key" {
description = "The API key that's used with the IBM Cloud Terraform IBM provider."
sensitive = true
type = string
}
variable "watsonx_admin_api_key" {
default = null
description = "The API key of the IBM watsonx administrator in the target account. The API key is used to configure the user and the project."
sensitive = true
type = string
}
variable "location" {
default = "us-south"
description = "The location that's used with the IBM Cloud Terraform IBM provider. It's also used during resource creation."
type = string
validation {
condition = contains(["eu-de", "us-south", "eu-gb", "jp-tok"], var.location)
error_message = "You must specify `eu-de`, `eu-gb`, `jp-tok` or `us-south` as the IBM Cloud location."
}
}
variable "use_existing_resource_group" {
type = bool
description = "Determines whether to use an existing resource group."
default = false
}
variable "resource_group_name" {
type = string
description = "The name of a new or an existing resource group where the resources are created."
}
variable "resource_prefix" {
description = "The name to be used on all Watson resources as a prefix."
type = string
default = "watsonx-poc"
validation {
condition = var.resource_prefix != "" && length(var.resource_prefix) <= 25
error_message = "You must provide a value for the resource_prefix variable and the resource_prefix length can't exceed 25 characters."
}
}
variable "cos_plan" {
default = "standard"
description = "The plan that's used to provision the Cloud Object Storage instance."
type = string
validation {
condition = contains(["standard"], var.cos_plan)
error_message = "You must use a standard plan. Standard plan instances are the most common and are recommended for most workloads."
}
}
variable "existing_machine_learning_instance" {
default = null
description = "CRN of the an existing Watson Machine Learning instance."
type = string
}
variable "watson_machine_learning_plan" {
default = "v2-standard"
description = "The plan that's used to provision the Watson Machine Learning instance."
type = string
validation {
condition = contains(["lite", "v2-professional", "v2-standard"], var.watson_machine_learning_plan)
error_message = "The plan must be lite, v2-professional, or v2-standard. Learn more."
}
}
variable "watson_machine_learning_service_endpoints" {
default = "public"
description = "The type of service endpoints. Possible values: 'public', 'private', 'public-and-private'."
type = string
validation {
condition = contains(["public", "public-and-private", "private"], var.watson_machine_learning_service_endpoints)
error_message = "The specified service endpoint is not valid. Supported options are public, public-and-private, or private."
}
}
variable "existing_studio_instance" {
default = null
description = "CRN of the an existing Watson Studio instance."
type = string
}
variable "watson_studio_plan" {
default = "professional-v1"
description = "The plan that's used to provision the Watson Studio instance. The plan you choose for Watson Studio affects the features and capabilities that you can use."
type = string
validation {
condition = contains(["free-v1", "professional-v1"], var.watson_studio_plan)
error_message = "You must use a free-v1 or professional-v1 plan. Learn more."
}
}
variable "existing_discovery_instance" {
default = null
description = "CRN of the an existing Watson Discovery instance."
type = string
}
variable "watson_discovery_plan" {
default = "do not install"
description = "The plan that's used to provision the Watson Discovery instance."
type = string
validation {
condition = anytrue([
var.watson_discovery_plan == "do not install",
var.watson_discovery_plan == "plus",
var.watson_discovery_plan == "enterprise",
var.watson_discovery_plan == "premium",
])
error_message = "You must use a plus, enterprise, or premium plan. Learn more."
}
}
variable "watson_discovery_service_endpoints" {
default = "public"
description = "The type of service endpoints. Possible values: 'public', 'private', 'public-and-private'."
type = string
validation {
condition = contains(["public", "public-and-private", "private"], var.watson_discovery_service_endpoints)
error_message = "The specified service endpoint is not valid. Supported options are public, public-and-private, or private."
}
}
variable "existing_assistant_instance" {
default = null
description = "CRN of the an existing watsonx Assistance instance."
type = string
}
variable "watsonx_assistant_plan" {
default = "do not install"
description = "The plan that's used to provision the watsonx Assistance instance."
type = string
validation {
condition = anytrue([
var.watsonx_assistant_plan == "do not install",
var.watsonx_assistant_plan == "free",
var.watsonx_assistant_plan == "plus-trial",
var.watsonx_assistant_plan == "plus",
var.watsonx_assistant_plan == "enterprise",
var.watsonx_assistant_plan == "enterprisedataisolation",
])
error_message = "You must use a free, trial, plus-trial, enterprise, or enterprisedataisolation plan. Learn more."
}
}
variable "watsonx_assistant_service_endpoints" {
default = "public"
description = "The type of service endpoints. Possible values: 'public', 'private', 'public-and-private'."
type = string
validation {
condition = contains(["public", "public-and-private", "private"], var.watsonx_assistant_service_endpoints)
error_message = "The specified service endpoint is not valid. Supported options are public, public-and-private, or private."
}
}
variable "existing_governance_instance" {
default = null
description = "CRN of the an existing watsonx.governance instance."
type = string
}
variable "watsonx_governance_plan" {
default = "do not install"
description = "The plan used to provision the watsonx.governance instance. The available plans depend on the region where you are provisioning the service from the IBM Cloud catalog."
type = string
validation {
condition = anytrue([
var.watsonx_governance_plan == "do not install",
var.watsonx_governance_plan == "lite",
var.watsonx_governance_plan == "essentials",
])
error_message = "You must use a lite or essential plan. Learn more. "
}
}
variable "existing_data_instance" {
default = null
description = "CRN of the an existing watsonx.data instance."
type = string
}
variable "watsonx_data_plan" {
default = "do not install"
description = "The plan that's used to provision the watsonx.data instance."
type = string
validation {
condition = anytrue([
var.watsonx_data_plan == "do not install",
var.watsonx_data_plan == "lakehouse-enterprise",
var.watsonx_data_plan == "lite",
])
error_message = "You must use a lakehouse-enterprise or lite plan. Learn more. "
}
}
variable "existing_orchestrate_instance" {
default = null
description = "CRN of the an existing watsonx Orchestrate instance."
type = string
}
variable "watsonx_orchestrate_plan" {
default = "do not install"
description = "The plan that's used to provision the watsonx Orchestrate instance."
type = string
validation {
condition = anytrue([
var.watsonx_orchestrate_plan == "do not install",
var.watsonx_orchestrate_plan == "essentials",
var.watsonx_orchestrate_plan == "standard",
])
error_message = "You must use a essentials or standard plan. Learn more. "
}
}
variable "watsonx_project_name" {
description = "The name of the watson project."
type = string
default = "demo"
}
variable "watsonx_project_description" {
description = "A description of the watson project that's created by the WatsonX.ai SaaS Deployable Architecture."
type = string
default = "Watson project created by the watsonx-ai SaaS deployable architecture."
}
variable "watsonx_project_tags" {
description = "A list of tags associated with the watsonx project. Each tag consists of a single string containing up to 255 characters. These tags can include spaces, letters, numbers, underscores, dashes, as well as the symbols # and @."
type = list(string)
default = ["watsonx-ai-SaaS"]
}
variable "watsonx_mark_as_sensitive" {
description = "Set to true to allow the WatsonX project to be created with 'Mark as sensitive' flag."
type = bool
default = false
}
variable "cos_kms_crn" {
description = "Key Protect service instance CRN used to encrypt the COS buckets used by the watsonx projects."
type = string
default = null
validation {
condition = anytrue([
can(regex("^crn:(.*:){3}kms:(.*:){2}[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}::$", var.cos_kms_crn)),
var.cos_kms_crn == null,
])
error_message = "Key Protect CRN validation failed."
}
}
variable "cos_kms_key_crn" {
description = "Key Protect key CRN used to encrypt the COS buckets used by the watsonx projects. If not set, then the cos_kms_new_key_name must be specified."
type = string
default = null
}
variable "cos_kms_new_key_name" {
description = "Name of the Key Protect key to create for encrypting the COS buckets used by the watsonx projects."
type = string
default = ""
}
variable "cos_kms_ring_id" {
description = "The identifier of the Key Protect ring to create the cos_kms_new_key_name into. If it is not set, then the new key will be created in the default ring."
type = string
default = null
}