-
Notifications
You must be signed in to change notification settings - Fork 1
/
variables.tf
245 lines (205 loc) · 7.27 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
variable "name" {
type = string
default = ""
description = "Name (e.g. `app` or `cluster`)."
}
variable "environment" {
type = string
default = ""
description = "Environment (e.g. `prod`, `dev`, `staging`)."
}
variable "label_order" {
type = list(any)
default = ["name", "environment"]
description = "Label order, e.g. `name`,`application`."
}
variable "managedby" {
type = string
default = "hello@clouddrove.com"
description = "ManagedBy, eg 'CloudDrove'"
}
variable "kafka_version" {
type = string
default = "2.2.1"
description = "Version of Kafka brokers"
}
variable "kafka_broker_number" {
type = number
default = 1
description = "Kafka brokers per zone"
}
variable "broker_node_instance_type" {
type = string
default = null
description = "Specify the instance type to use for the kafka brokers. e.g. kafka.m5.large. ([Pricing info](https://aws.amazon.com/msk/pricing/))"
}
variable "broker_node_ebs_volume_size" {
description = "The size in GiB of the EBS volume for the data drive on each broker node"
type = number
default = null
}
variable "broker_node_client_subnets" {
type = list(string)
default = []
description = "A list of subnets to connect to in client VPC ([documentation](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#clusters-prop-brokernodegroupinfo-clientsubnets))"
}
variable "broker_node_security_groups" {
type = list(string)
default = []
description = "A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster"
}
variable "msk_cluster_enabled" {
type = bool
default = true
description = "Flag to control the msk-cluster creation."
}
variable "configuration_description" {
type = string
default = "Complete example configuration"
description = "Description of the configuration"
}
variable "configuration_server_properties" {
type = map(string)
default = {}
description = "Contents of the server.properties file. Supported properties are documented in the [MSK Developer Guide](https://docs.aws.amazon.com/msk/latest/developerguide/msk-configuration-properties.html)"
}
variable "enhanced_monitoring" {
type = string
default = "PER_TOPIC_PER_PARTITION"
description = "Specify the desired enhanced MSK CloudWatch monitoring level. See [Monitoring Amazon MSK with Amazon CloudWatch](https://docs.aws.amazon.com/msk/latest/developerguide/monitoring.html)"
}
variable "client_authentication_tls_certificate_authority_arns" {
type = list(string)
default = []
description = "List of ACM Certificate Authority Amazon Resource Names (ARNs)"
}
variable "client_authentication_sasl_scram" {
type = bool
default = false
description = "Enables SCRAM client authentication via AWS Secrets Manager"
}
variable "client_authentication_sasl_iam" {
type = bool
default = false
description = "Enables IAM client authentication"
}
variable "encryption_in_transit_client_broker" {
type = string
default = null
description = "Encryption setting for data in transit between clients and brokers. Valid values: `TLS`, `TLS_PLAINTEXT`, and `PLAINTEXT`. Default value is `TLS`"
}
variable "encryption_in_transit_in_cluster" {
type = bool
default = null
description = "Whether data communication among broker nodes is encrypted. Default value: `true`"
}
variable "encryption_at_rest_kms_key_arn" {
type = string
default = null
description = "You may specify a KMS key short ID or ARN (it will always output an ARN) to use for encrypting your data at rest. If no key is specified, an AWS managed KMS ('aws/msk' managed service) key will be used for encrypting the data at rest"
}
variable "jmx_exporter_enabled" {
type = bool
default = false
description = "Indicates whether you want to enable or disable the JMX Exporter"
}
variable "node_exporter_enabled" {
type = bool
default = false
description = "Indicates whether you want to enable or disable the Node Exporter"
}
variable "cloudwatch_logs_enabled" {
description = "Indicates whether you want to enable or disable streaming broker logs to Cloudwatch Logs"
type = bool
default = false
}
variable "firehose_logs_enabled" {
type = bool
default = false
description = "Indicates whether you want to enable or disable streaming broker logs to Kinesis Data Firehose"
}
variable "firehose_delivery_stream" {
type = string
default = null
description = "Name of the Kinesis Data Firehose delivery stream to deliver logs to"
}
variable "s3_logs_enabled" {
type = bool
default = false
description = "Indicates whether you want to enable or disable streaming broker logs to S3"
}
variable "s3_logs_bucket" {
type = string
default = null
description = "Name of the S3 bucket to deliver logs to"
}
variable "s3_logs_prefix" {
type = string
default = null
description = "Prefix to append to the folder name"
}
variable "timeouts" {
type = map(string)
default = {}
description = "Create, update, and delete timeout configurations for the cluster"
}
variable "create_cloudwatch_log_group" {
type = bool
default = true
description = "Determines whether to create a CloudWatch log group"
}
variable "cloudwatch_log_group_name" {
type = string
default = null
description = "Name of the Cloudwatch Log Group to deliver logs to"
}
variable "create_scram_secret_association" {
type = bool
default = false
description = "Determines whether to create SASL/SCRAM secret association"
}
variable "scram_secret_association_secret_arn_list" {
type = list(string)
default = [""]
description = "List of AWS Secrets Manager secret ARNs to associate with SCRAM"
}
variable "cloudwatch_log_group_retention_in_days" {
type = number
default = 0
description = "Specifies the number of days you want to retain log events in the log group"
}
variable "cloudwatch_log_group_kms_key_id" {
type = string
default = null
description = "The ARN of the KMS Key to use when encrypting log data"
}
variable "scaling_max_capacity" {
type = number
default = 250
description = "Max storage capacity for Kafka broker autoscaling"
}
variable "scaling_role_arn" {
type = string
default = null
description = "The ARN of the IAM role that allows Application AutoScaling to modify your scalable target on your behalf. This defaults to an IAM Service-Linked Role"
}
variable "scaling_target_value" {
type = number
default = 70
description = "The Kafka broker storage utilization at which scaling is initiated"
}
variable "create_schema_registry" {
type = bool
default = true
description = "Determines whether to create a Glue schema registry for managing Avro schemas for the cluster"
}
variable "schema_registries" {
type = map(any)
default = {}
description = "A map of schema registries to be created"
}
variable "schemas" {
type = map(any)
default = {}
description = "A map schemas to be created within the schema registry"
}