-
Notifications
You must be signed in to change notification settings - Fork 43
/
variables.tf
432 lines (362 loc) · 12.1 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
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
// ----------------------------------------------------------------------------
// Required Variables
// ----------------------------------------------------------------------------
variable "region" {
description = "The region to create the resources into"
type = string
default = "us-east-1"
}
variable "cluster_name" {
description = "Variable to provide your desired name for the cluster"
type = string
}
variable "cluster_oidc_issuer_url" {
description = "The oidc provider url for the clustrer"
type = string
}
// ----------------------------------------------------------------------------
// Vault
// ----------------------------------------------------------------------------
variable "vault_url" {
description = "URL to an external Vault instance in case Jenkins X does not create its own system Vault"
type = string
default = ""
}
variable "install_vault" {
description = "Whether or not this modules creates and manages the Vault instance. If set to false and use_vault is true either an external Vault URL needs to be provided or you need to install vault operator and instance using helmfile."
type = bool
default = true
}
variable "vault_operator_values" {
description = "Extra values for vault-operator chart as a list of yaml formated strings"
type = list(string)
default = []
}
variable "vault_instance_values" {
description = "Extra values for vault-instance chart as a list of yaml formated strings"
type = list(string)
default = []
}
// ----------------------------------------------------------------------------
// Velero/backup
// ----------------------------------------------------------------------------
variable "enable_backup" {
description = "Whether or not Velero backups should be enabled"
type = bool
default = false
}
variable "velero_namespace" {
description = "Kubernetes namespace for Velero"
type = string
default = "velero"
}
variable "velero_schedule" {
description = "The Velero backup schedule in cron notation to be set in the Velero Schedule CRD (see [default-backup.yaml](https://github.com/jenkins-x/jenkins-x-boot-config/blob/master/systems/velero-backups/templates/default-backup.yaml))"
type = string
default = "0 * * * *"
}
variable "velero_ttl" {
description = "The the lifetime of a velero backup to be set in the Velero Schedule CRD (see [default-backup.yaml](https://github.com/jenkins-x/jenkins-x-boot-config/blob/master/systems/velero-backups/templates/default-backup))"
type = string
default = "720h0m0s"
}
variable "velero_username" {
description = "The username to be assigned to the Velero IAM user"
type = string
default = "velero"
}
// ----------------------------------------------------------------------------
// External DNS Variables
// ----------------------------------------------------------------------------
variable "apex_domain" {
description = "The main domain to either use directly or to configure a subdomain from"
type = string
default = ""
}
variable "subdomain" {
description = "The subdomain to be added to the apex domain. If subdomain is set, it will be appended to the apex domain in `jx-requirements-eks.yml` file"
type = string
default = ""
}
variable "tls_email" {
description = "The email to register the LetsEncrypt certificate with. Added to the `jx-requirements.yml` file"
type = string
default = ""
}
// ----------------------------------------------------------------------------
// Flag Variables
// ----------------------------------------------------------------------------
variable "enable_logs_storage" {
description = "Flag to enable or disable long term storage for logs"
type = bool
default = true
}
variable "expire_logs_after_days" {
description = "Number of days objects in the logs bucket are stored"
type = number
default = 90
}
variable "enable_reports_storage" {
description = "Flag to enable or disable long term storage for reports"
type = bool
default = true
}
variable "enable_repository_storage" {
description = "Flag to enable or disable the repository bucket storage"
type = bool
default = true
}
variable "enable_external_dns" {
description = "Flag to enable or disable External DNS in the final `jx-requirements.yml` file"
type = bool
default = false
}
variable "create_and_configure_subdomain" {
description = "Flag to create an NS record set for the subdomain in the apex domain's Hosted Zone"
type = bool
default = false
}
variable "force_destroy_subdomain" {
description = "Flag to determine whether subdomain zone get forcefully destroyed. If set to false, empty the sub domain first in the aws Route 53 console, else terraform destroy will fail with HostedZoneNotEmpty error"
type = bool
default = false
}
variable "enable_tls" {
description = "Flag to enable TLS in the final `jx-requirements.yml` file"
type = bool
default = false
}
variable "production_letsencrypt" {
description = "Flag to use the production environment of letsencrypt in the `jx-requirements.yml` file"
type = bool
default = false
}
variable "force_destroy" {
description = "Flag to determine whether storage buckets get forcefully destroyed. If set to false, empty the bucket first in the aws s3 console, else terraform destroy will fail with BucketNotEmpty error"
type = bool
default = false
}
variable "enable_key_rotation" {
description = "Flag to enable kms key rotation"
type = bool
default = true
}
variable "use_kms_s3" {
description = "Flag to determine whether kms should be used for encrypting s3 buckets"
type = bool
default = false
}
// ----------------------------------------------------------------------------
// Cluster AWS Auth Variables
// ----------------------------------------------------------------------------
variable "s3_kms_arn" {
description = "ARN of the kms key used for encrypting s3 buckets"
type = string
default = ""
}
variable "s3_extra_tags" {
description = "Add new tags for s3 buckets"
type = map(any)
default = {}
}
variable "eks_cluster_tags" {
description = "Add tags for the EKS Cluster"
type = map(any)
default = {}
}
variable "ignoreLoadBalancer" {
default = false
type = bool
description = "Flag to specify if jx boot will ignore loadbalancer DNS to resolve to an IP"
}
variable "registry" {
description = "Registry used to store images"
type = string
default = ""
}
variable "jx_git_operator_values" {
description = "Extra values for jx-git-operator chart as a list of yaml formated strings"
type = list(string)
default = []
}
variable "jx_git_url" {
description = "URL for the Jenkins X cluster git repository"
type = string
default = ""
}
variable "jx_bot_username" {
description = "Bot username used to interact with the Jenkins X cluster git repository"
type = string
default = ""
}
variable "jx_bot_token" {
description = "Bot token used to interact with the Jenkins X cluster git repository"
type = string
default = ""
}
variable "vpc_id" {
description = "The VPC to create EKS cluster in if create_vpc is false"
type = string
default = ""
}
variable "subnets" {
description = "The subnet ids to create EKS cluster in if create_vpc is false"
type = list(string)
default = []
}
variable "use_vault" {
description = "Flag to control vault resource creation"
type = bool
default = true
}
variable "use_asm" {
description = "Flag to specify if AWS Secrets manager is being used"
type = bool
default = false
}
variable "asm_role" {
description = "DEPRECATED: Use the new bot_iam_role input with he same semantics instead."
type = string
default = ""
}
variable "boot_iam_role" {
description = "Specify arn of the role to apply to the boot job service account"
type = string
default = ""
}
variable "install_kuberhealthy" {
description = "Flag to specify if kuberhealthy operator should be installed"
type = bool
default = false
}
variable "create_tekton_role" {
description = "Flag to control tekton iam role creation"
type = bool
default = true
}
variable "create_exdns_role" {
description = "Flag to control external dns iam role creation"
type = bool
default = true
}
variable "create_cm_role" {
description = "Flag to control cert manager iam role creation"
type = bool
default = true
}
variable "create_cmcainjector_role" {
description = "Flag to control cert manager ca-injector iam role creation"
type = bool
default = true
}
variable "create_ctrlb_role" {
description = "Flag to control controller build iam role creation"
type = bool
default = true
}
variable "create_autoscaler_role" {
description = "Flag to control cluster autoscaler iam role creation"
type = bool
default = true
}
variable "create_ssm_role" {
description = "Flag to control AWS Parameter Store iam roles creation"
type = bool
default = false
}
variable "create_asm_role" {
description = "Flag to control AWS Secrets Manager iam roles creation"
type = bool
default = false
}
variable "create_velero_role" {
description = "Flag to control velero iam role creation"
type = bool
default = true
}
variable "manage_apex_domain" {
description = "Flag to control if apex domain should be managed/updated by this module. Set this to false,if your apex domain is managed in a different AWS account or different provider"
default = true
type = bool
}
variable "manage_subdomain" {
description = "Flag to control subdomain creation/management"
default = true
type = bool
}
variable "create_pipeline_vis_role" {
description = "Flag to control pipeline visualizer role"
type = bool
default = true
}
variable "create_bucketrepo_role" {
description = "Flag to control bucketrepo role"
type = bool
default = true
}
variable "additional_tekton_role_policy_arns" {
description = "Additional Policy ARNs to attach to Tekton IRSA Role"
type = list(string)
default = []
}
variable "local-exec-interpreter" {
description = "If provided, this is a list of interpreter arguments used to execute the command"
type = list(string)
default = ["/bin/bash", "-c"]
}
// ----------------------------------------------------------------------------
// Customer's Certificates
// ----------------------------------------------------------------------------
variable "tls_key" {
description = "TLS key encrypted with Base64"
type = string
default = ""
}
variable "tls_cert" {
description = "TLS certificate encrypted with Base64"
type = string
default = ""
}
variable "create_nginx" {
default = false
type = bool
description = "Decides whether we want to create nginx resources using terraform or not"
}
variable "nginx_release_name" {
default = "nginx-ingress"
type = string
description = "Name of the nginx release name"
}
variable "nginx_namespace" {
default = "nginx"
type = string
description = "Name of the nginx namespace"
}
variable "nginx_chart_version" {
type = string
description = "nginx chart version"
}
variable "create_nginx_namespace" {
default = true
type = bool
description = "Boolean to control nginx namespace creation"
}
variable "nginx_values_file" {
default = "nginx_values.yaml"
type = string
description = "Name of the values file which holds the helm chart values"
}
variable "boot_secrets" {
description = ""
type = list(object({
name = string
value = string
type = string
}))
default = []
}
variable "enable_acl" {
description = "Flag to enable ACL instead of bucket ownership for S3 storage"
type = bool
default = false
}