-
Notifications
You must be signed in to change notification settings - Fork 12
/
variables.tf
345 lines (289 loc) · 9.57 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
variable "name" {
description = "Name for all resources (preferably generated by terraform-null-label `module.id`)"
type = string
default = "jitsi-meet"
}
variable "tags" {
description = "Tags as map (preferably generated by terraform-null-label `module.tags`)"
type = map(string)
default = {
Project = "Jitsi",
Module = "terraform-aws-jitsi"
}
}
variable "aws_account_id" {
description = "AWS account ID"
type = string
default = ""
}
variable "aws_region" {
description = "AWS Region (e.g. `eu-central-1`)"
type = string
}
variable "vpc_id" {
description = "ID of VPC"
type = string
}
variable "public_subnet_ids" {
description = "AutoScalingGroup Subnet IDs to create Jitsi Host into (=> public)"
type = list(string)
}
variable "enable_cross_account" {
description = "Enable cross-account with IAM Role to assume by UserData for updating of Route53 records (Valid values: `1` => Enable, `0` => Disable)"
type = string
default = "0"
}
variable "arn_role" {
description = "ARN of IAM role to assume in cross-account scenarios"
type = string
default = ""
}
# --------------------------------------------------------------------------
# Aurora Serverless
# --------------------------------------------------------------------------
variable "db_subnet_group_name" {
description = "Name for DB subnet group to associate with this Aurora Cluster"
type = string
default = null
}
variable "kms_key" {
description = "The ARN, ID or AliasARN for the KMS encryption key (RDS encryption-at-rest)"
type = string
default = null
}
variable "serverless_max" {
description = "SERVERLESS: Maximum capacity units"
type = number
default = 2
}
variable "serverless_min" {
description = "SERVERLESS: Minimum capacity units"
type = number
default = 1
}
variable "serverless_auto_pause" {
description = "SERVERLESS: Enable auto-pause after `seconds_until_auto_pause` - NOTE: If cluster is paused for >7d, cluster might be backed up with a snapshot and then restored when there is a request to connect to it)"
type = bool
default = true
}
variable "serverless_seconds_pause" {
description = "SERVERLESS: Seconds after which the the Serverless Aurora DB Cluster will be paused (valid values: `300` through `86400`)"
type = number
default = 300
}
variable "serverless_timeout_action" {
description = "SERVERLESS: Action to take when a Aurora Serverless action timeouts (e.g. `ForceApplyCapacityChange` or `RollbackCapacityChange`)"
type = string
default = "RollbackCapacityChange"
}
variable "serverless_http_endpoint" {
description = "Enable / Disbale the Aurora Serverless Data API HTTP endpoint"
type = bool
default = false
}
variable "db_name" {
description = "Name of Database"
type = string
default = "jitsi"
}
variable "apply_immediately" {
description = "Whether to apply changes to the cluster immediately or at the next maintenance window"
type = bool
default = true
}
variable "preferred_maintenance_window" {
description = "Weekly time range during which system changes can occur (in UTC - e.g. `wed:04:00-wed:04:30` => Wednesday between 04:00-04:30)"
type = string
default = "sun:02:30-sun:03:30"
}
variable "backup_retention_days" {
description = "Days for how long Backups will be retained"
type = number
default = 30
}
variable "backup_window" {
description = "Daily time range during automated backups (if enabled - Default = true) will are created (UTC)"
type = string
default = "01:00-02:00"
}
variable "deletion_protection" {
description = "Enable / Disable deletion protection for this Aurora Cluster"
type = bool
default = false
}
# --------------------------------------------------------------------------
# Jitsi
# --------------------------------------------------------------------------
variable "jitsi_admin_username" {
description = "The name of prodosy/Jitsi user who can start meetings"
type = string
}
variable "jitsi_admin_password" {
description = "The password of prodosy/Jitsi user who can start meetings"
type = string
}
variable "enable_welcome_page" {
description = "Whether the UI for starting a new meeting should be shown or whether a random room should be opened"
type = bool
}
variable "default_language" {
description = "Default language of the UI"
type = string
default = "en"
}
variable "default_background_color" {
description = "Background color for Jitsi installation"
type = string
default = "#474747"
}
variable "watermark_url" {
description = "URL of the watermark in the top left corner"
type = string
default = "images/watermark.png"
}
variable "language_detection" {
type = bool
default = true
}
# --------------------------------------------------------------------------
# EC2
# --------------------------------------------------------------------------
variable "ec2_instance_type" {
description = "EC2 instance type"
type = string
}
variable "ebs_type" {
description = "EBS root block device type (e.g. `standard`, `gp2`)"
type = string
default = "gp2"
}
variable "ebs_size" {
description = "EBS root block device size in gigabytes (e.g. `20`)"
type = number
default = 10
}
# --------------------------------------------------------------------------
# AutoScalingGroup
# --------------------------------------------------------------------------
variable "asg_metrics" {
description = "List of metrics to collect of AutoScalingGroup"
type = list(string)
default = [
"GroupMinSize",
"GroupMaxSize",
"GroupDesiredCapacity",
"GroupInServiceInstances",
"GroupPendingInstances",
"GroupStandbyInstances",
"GroupTerminatingInstances",
"GroupTotalInstances"
]
// default above => all available metrics
}
# --------------------------------------------------------------------------
# Jitsi
# --------------------------------------------------------------------------
variable "host" {
description = "The host part of the Route53 A record referencing the Jitsi DNS (e.g. `jitsi` for `jitsi.example.com`)"
type = string
default = "meet"
}
variable "domain" {
description = "The domain part of the Route53 A record referencing the Jitsi DNS (e.g. `example` for `jitsi.example.com`)"
type = string
}
variable "letsencrypt_email" {
description = "E-Mail address for LetsEncrypt"
type = string
}
variable "timezone" {
description = "Timezone set in the EC2 instance UserData"
type = string
default = "Europe/Berlin"
}
variable "public_zone_id" {
description = "Route53 Public Hosted Zone ID to create Bastion Host DNS records"
type = string
}
variable "private_zone_id" {
description = "Route53 Private Hosted Zone ID to create Bastion Host DNS records"
type = string
}
# --------------------------------------------------------------------------
# SecurityGroup & Key Pair
# --------------------------------------------------------------------------
variable "key_pair_name" {
description = "Name of pre-existing AWS Key Pair name to associate with Jitsi"
type = string
default = null
}
variable "ssh_cidrs" {
description = "IPV4 CIDRs to allow for SSH access"
type = map(string)
default = {}
}
variable "jitsi_cidrs" {
description = "IPV4 CIDRs to allow for Jitsi access"
type = map(string)
default = {
"ALL-IPv4" = "0.0.0.0/0"
}
}
# --------------------------------------------------------------------------
# CloudWatch Logs
# --------------------------------------------------------------------------
variable "cw_kms_arn" {
description = "KMS Key ARN for CloudWatch encryption"
type = string
default = null
}
variable "cw_retention" {
description = "Specifies the number of days you want to retain log events in the specified log groups (e.g. `30` => 30 days)"
type = number
default = 30
}
# --------------------------------------------------------------------------
# Data Lifecycle Manager
# --------------------------------------------------------------------------
variable "enable_dlm" {
description = "Enable / Disable Data Lifecycle Manager for automatic EBS Snapshots"
type = bool
default = true
}
variable "state" {
description = "Enable / Disable DLM Lifecycle Policy (e.g. `ENABLED` or `DISABLED`)"
type = string
default = "ENABLED"
}
variable "schedule_name" {
description = "Name of the DLM policy schedule"
type = string
default = "1 week of daily snapshots"
}
variable "schedule_interval" {
description = "How often this lifecycle policy should be evaluated (valid values: `1`, `2`, `3`, `4`, `6`, `8`, `12` or `24`)"
type = number
default = 24
}
variable "schedule_time" {
description = "Time in 24 hour format when the policy should be evaluated (e.g. `02:30`)"
type = string
default = "02:30"
}
variable "retain_count" {
description = "How many snapshots to keep (valid value: integeger between `1` and `1000`)"
type = string
default = 7
}
variable "tags_to_add_map" {
description = "Map of extra tags to add to the snapshots"
type = map(string)
default = {
SnapshotCreator = "DLM"
}
}
variable "copy_tags" {
description = "Copy all user-defined tags on a source volume to snapshots of the volume created by this policy"
type = bool
default = true
}