Skip to content

Commit 8928159

Browse files
committed
feat: add support for aws_mskconnect_custom_plugin and aws_mskconnect_worker_configuration resources
- Add `aws_mskconnect_custom_plugin` and `aws_mskconnect_worker_configuration` resources - Update Terraform AWS provider version to `v3.71.0` to support new resources added - Add new example project `examples/connect` for testing/demonstrating use of new resources - Add outputs for AppAutoscaling policy and CloudWatch log group
1 parent acebc78 commit 8928159

20 files changed

+812
-51
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,7 @@ override.tf.json
3535
# Ignore CLI configuration files
3636
.terraformrc
3737
terraform.rc
38+
39+
# Examples
40+
debezium*
41+
*.tar.gz

README.md

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,13 +132,13 @@ Security scanning results provided by Bridgecrew. Bridgecrew is the leading full
132132
| Name | Version |
133133
|------|---------|
134134
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.13.1 |
135-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 3.60 |
135+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 3.71 |
136136

137137
## Providers
138138

139139
| Name | Version |
140140
|------|---------|
141-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 3.60 |
141+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 3.71 |
142142

143143
## Modules
144144

@@ -156,6 +156,8 @@ No modules.
156156
| [aws_msk_cluster.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/msk_cluster) | resource |
157157
| [aws_msk_configuration.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/msk_configuration) | resource |
158158
| [aws_msk_scram_secret_association.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/msk_scram_secret_association) | resource |
159+
| [aws_mskconnect_custom_plugin.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/mskconnect_custom_plugin) | resource |
160+
| [aws_mskconnect_worker_configuration.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/mskconnect_worker_configuration) | resource |
159161

160162
## Inputs
161163

@@ -175,8 +177,14 @@ No modules.
175177
| <a name="input_configuration_description"></a> [configuration\_description](#input\_configuration\_description) | Description of the configuration | `string` | `null` | no |
176178
| <a name="input_configuration_name"></a> [configuration\_name](#input\_configuration\_name) | Name of the configuration | `string` | `null` | no |
177179
| <a name="input_configuration_server_properties"></a> [configuration\_server\_properties](#input\_configuration\_server\_properties) | 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) | `map(string)` | `{}` | no |
180+
| <a name="input_connect_custom_plugin_timeouts"></a> [connect\_custom\_plugin\_timeouts](#input\_connect\_custom\_plugin\_timeouts) | Timeout configurations for the connect custom plugins | `map(string)` | <pre>{<br> "create": null<br>}</pre> | no |
181+
| <a name="input_connect_custom_plugins"></a> [connect\_custom\_plugins](#input\_connect\_custom\_plugins) | Map of custom plugin configuration details (map of maps) | `any` | `{}` | no |
182+
| <a name="input_connect_worker_config_description"></a> [connect\_worker\_config\_description](#input\_connect\_worker\_config\_description) | A summary description of the worker configuration | `string` | `null` | no |
183+
| <a name="input_connect_worker_config_name"></a> [connect\_worker\_config\_name](#input\_connect\_worker\_config\_name) | The name of the worker configuration | `string` | `null` | no |
184+
| <a name="input_connect_worker_config_properties_file_content"></a> [connect\_worker\_config\_properties\_file\_content](#input\_connect\_worker\_config\_properties\_file\_content) | Contents of connect-distributed.properties file. The value can be either base64 encoded or in raw format | `string` | `null` | no |
178185
| <a name="input_create"></a> [create](#input\_create) | Determines whether cluster resources will be created | `bool` | `true` | no |
179186
| <a name="input_create_cloudwatch_log_group"></a> [create\_cloudwatch\_log\_group](#input\_create\_cloudwatch\_log\_group) | Determines whether to create a CloudWatch log group | `bool` | `true` | no |
187+
| <a name="input_create_connect_worker_configuration"></a> [create\_connect\_worker\_configuration](#input\_create\_connect\_worker\_configuration) | Determines whether to create connect worker configuration | `bool` | `false` | no |
180188
| <a name="input_create_schema_registry"></a> [create\_schema\_registry](#input\_create\_schema\_registry) | Determines whether to create a Glue schema registry for managing Avro schemas for the cluster | `bool` | `true` | no |
181189
| <a name="input_create_scram_secret_association"></a> [create\_scram\_secret\_association](#input\_create\_scram\_secret\_association) | Determines whether to create SASL/SCRAM secret association | `bool` | `false` | no |
182190
| <a name="input_encryption_at_rest_kms_key_arn"></a> [encryption\_at\_rest\_kms\_key\_arn](#input\_encryption\_at\_rest\_kms\_key\_arn) | 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 | `string` | `null` | no |
@@ -206,6 +214,9 @@ No modules.
206214

207215
| Name | Description |
208216
|------|-------------|
217+
| <a name="output_appautoscaling_policy_arn"></a> [appautoscaling\_policy\_arn](#output\_appautoscaling\_policy\_arn) | The ARN assigned by AWS to the scaling policy |
218+
| <a name="output_appautoscaling_policy_name"></a> [appautoscaling\_policy\_name](#output\_appautoscaling\_policy\_name) | The scaling policy's name |
219+
| <a name="output_appautoscaling_policy_policy_type"></a> [appautoscaling\_policy\_policy\_type](#output\_appautoscaling\_policy\_policy\_type) | The scaling policy's type |
209220
| <a name="output_arn"></a> [arn](#output\_arn) | Amazon Resource Name (ARN) of the MSK cluster |
210221
| <a name="output_bootstrap_brokers"></a> [bootstrap\_brokers](#output\_bootstrap\_brokers) | Comma separated list of one or more hostname:port pairs of kafka brokers suitable to bootstrap connectivity to the kafka cluster |
211222
| <a name="output_bootstrap_brokers_plaintext"></a> [bootstrap\_brokers\_plaintext](#output\_bootstrap\_brokers\_plaintext) | Comma separated list of one or more hostname:port pairs of kafka brokers suitable to bootstrap connectivity to the kafka cluster. Contains a value if `encryption_in_transit_client_broker` is set to `PLAINTEXT` or `TLS_PLAINTEXT` |
@@ -214,12 +225,16 @@ No modules.
214225
| <a name="output_bootstrap_brokers_tls"></a> [bootstrap\_brokers\_tls](#output\_bootstrap\_brokers\_tls) | One or more DNS names (or IP addresses) and TLS port pairs. This attribute will have a value if `encryption_in_transit_client_broker` is set to `TLS_PLAINTEXT` or `TLS` |
215226
| <a name="output_configuration_arn"></a> [configuration\_arn](#output\_configuration\_arn) | Amazon Resource Name (ARN) of the configuration |
216227
| <a name="output_configuration_latest_revision"></a> [configuration\_latest\_revision](#output\_configuration\_latest\_revision) | Latest revision of the configuration |
228+
| <a name="output_connect_custom_plugins"></a> [connect\_custom\_plugins](#output\_connect\_custom\_plugins) | A map of output attributes for the connect custom plugins created |
229+
| <a name="output_connect_worker_configuration_arn"></a> [connect\_worker\_configuration\_arn](#output\_connect\_worker\_configuration\_arn) | The Amazon Resource Name (ARN) of the worker configuration |
230+
| <a name="output_connect_worker_configuration_latest_revision"></a> [connect\_worker\_configuration\_latest\_revision](#output\_connect\_worker\_configuration\_latest\_revision) | An ID of the latest successfully created revision of the worker configuration |
217231
| <a name="output_current_version"></a> [current\_version](#output\_current\_version) | Current version of the MSK Cluster used for updates, e.g. `K13V1IB3VIYZZH` |
232+
| <a name="output_log_group_arn"></a> [log\_group\_arn](#output\_log\_group\_arn) | The Amazon Resource Name (ARN) specifying the log group |
218233
| <a name="output_schema_registries"></a> [schema\_registries](#output\_schema\_registries) | A map of output attributes for the schema registries created |
219234
| <a name="output_schemas"></a> [schemas](#output\_schemas) | A map of output attributes for the schemas created |
220235
| <a name="output_scram_secret_association_id"></a> [scram\_secret\_association\_id](#output\_scram\_secret\_association\_id) | Amazon Resource Name (ARN) of the MSK cluster |
221-
| <a name="output_zookeeper_connect_string"></a> [zookeeper\_connect\_string](#output\_zookeeper\_connect\_string) | A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster. The returned values are sorted alphbetically |
222-
| <a name="output_zookeeper_connect_string_tls"></a> [zookeeper\_connect\_string\_tls](#output\_zookeeper\_connect\_string\_tls) | A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster via TLS. The returned values are sorted alphbetically |
236+
| <a name="output_zookeeper_connect_string"></a> [zookeeper\_connect\_string](#output\_zookeeper\_connect\_string) | A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster. The returned values are sorted alphabetically |
237+
| <a name="output_zookeeper_connect_string_tls"></a> [zookeeper\_connect\_string\_tls](#output\_zookeeper\_connect\_string\_tls) | A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster via TLS. The returned values are sorted alphabetically |
223238
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
224239

225240
## License

examples/basic/README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Note that this example may create resources which will incur monetary charges on
2323
| Name | Version |
2424
|------|---------|
2525
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.13.1 |
26-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 3.60 |
26+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 3.71 |
2727

2828
## Providers
2929

@@ -50,6 +50,9 @@ No inputs.
5050

5151
| Name | Description |
5252
|------|-------------|
53+
| <a name="output_appautoscaling_policy_arn"></a> [appautoscaling\_policy\_arn](#output\_appautoscaling\_policy\_arn) | The ARN assigned by AWS to the scaling policy |
54+
| <a name="output_appautoscaling_policy_name"></a> [appautoscaling\_policy\_name](#output\_appautoscaling\_policy\_name) | The scaling policy's name |
55+
| <a name="output_appautoscaling_policy_policy_type"></a> [appautoscaling\_policy\_policy\_type](#output\_appautoscaling\_policy\_policy\_type) | The scaling policy's type |
5356
| <a name="output_arn"></a> [arn](#output\_arn) | Amazon Resource Name (ARN) of the MSK cluster |
5457
| <a name="output_bootstrap_brokers"></a> [bootstrap\_brokers](#output\_bootstrap\_brokers) | Comma separated list of one or more hostname:port pairs of kafka brokers suitable to bootstrap connectivity to the kafka cluster |
5558
| <a name="output_bootstrap_brokers_plaintext"></a> [bootstrap\_brokers\_plaintext](#output\_bootstrap\_brokers\_plaintext) | Comma separated list of one or more hostname:port pairs of kafka brokers suitable to bootstrap connectivity to the kafka cluster. Contains a value if `encryption_in_transit_client_broker` is set to `PLAINTEXT` or `TLS_PLAINTEXT` |
@@ -58,7 +61,13 @@ No inputs.
5861
| <a name="output_bootstrap_brokers_tls"></a> [bootstrap\_brokers\_tls](#output\_bootstrap\_brokers\_tls) | One or more DNS names (or IP addresses) and TLS port pairs. This attribute will have a value if `encryption_in_transit_client_broker` is set to `TLS_PLAINTEXT` or `TLS` |
5962
| <a name="output_configuration_arn"></a> [configuration\_arn](#output\_configuration\_arn) | Amazon Resource Name (ARN) of the configuration |
6063
| <a name="output_configuration_latest_revision"></a> [configuration\_latest\_revision](#output\_configuration\_latest\_revision) | Latest revision of the configuration |
64+
| <a name="output_connect_custom_plugins"></a> [connect\_custom\_plugins](#output\_connect\_custom\_plugins) | A map of output attributes for the connect custom plugins created |
65+
| <a name="output_connect_worker_configuration_arn"></a> [connect\_worker\_configuration\_arn](#output\_connect\_worker\_configuration\_arn) | The Amazon Resource Name (ARN) of the worker configuration |
66+
| <a name="output_connect_worker_configuration_latest_revision"></a> [connect\_worker\_configuration\_latest\_revision](#output\_connect\_worker\_configuration\_latest\_revision) | An ID of the latest successfully created revision of the worker configuration |
6167
| <a name="output_current_version"></a> [current\_version](#output\_current\_version) | Current version of the MSK Cluster used for updates, e.g. `K13V1IB3VIYZZH` |
68+
| <a name="output_log_group_arn"></a> [log\_group\_arn](#output\_log\_group\_arn) | The Amazon Resource Name (ARN) specifying the log group |
69+
| <a name="output_schema_registries"></a> [schema\_registries](#output\_schema\_registries) | A map of output attributes for the schema registries created |
70+
| <a name="output_schemas"></a> [schemas](#output\_schemas) | A map of output attributes for the schemas created |
6271
| <a name="output_scram_secret_association_id"></a> [scram\_secret\_association\_id](#output\_scram\_secret\_association\_id) | Amazon Resource Name (ARN) of the MSK cluster |
6372
| <a name="output_zookeeper_connect_string"></a> [zookeeper\_connect\_string](#output\_zookeeper\_connect\_string) | A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster. The returned values are sorted alphbetically |
6473
| <a name="output_zookeeper_connect_string_tls"></a> [zookeeper\_connect\_string\_tls](#output\_zookeeper\_connect\_string\_tls) | A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster via TLS. The returned values are sorted alphbetically |

examples/basic/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ provider "aws" {
44

55
locals {
66
region = "us-east-1"
7-
name = "example-${replace(basename(path.cwd), "_", "-")}"
7+
name = "ex-${replace(basename(path.cwd), "_", "-")}"
88

99
tags = {
1010
Example = local.name

examples/basic/outputs.tf

Lines changed: 73 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
################################################################################
2-
# MSK Cluster
2+
# Cluster
33
################################################################################
44

5-
# Cluster
65
output "arn" {
76
description = "Amazon Resource Name (ARN) of the MSK cluster"
87
value = module.msk_cluster.arn
@@ -48,7 +47,10 @@ output "zookeeper_connect_string_tls" {
4847
value = module.msk_cluster.zookeeper_connect_string_tls
4948
}
5049

50+
################################################################################
5151
# Configuration
52+
################################################################################
53+
5254
output "configuration_arn" {
5355
description = "Amazon Resource Name (ARN) of the configuration"
5456
value = module.msk_cluster.configuration_arn
@@ -59,8 +61,76 @@ output "configuration_latest_revision" {
5961
value = module.msk_cluster.configuration_latest_revision
6062
}
6163

62-
# SCRAM secret association
64+
################################################################################
65+
# Secret(s)
66+
################################################################################
67+
6368
output "scram_secret_association_id" {
6469
description = "Amazon Resource Name (ARN) of the MSK cluster"
6570
value = module.msk_cluster.scram_secret_association_id
6671
}
72+
73+
################################################################################
74+
# CloudWatch Log Group
75+
################################################################################
76+
77+
output "log_group_arn" {
78+
description = "The Amazon Resource Name (ARN) specifying the log group"
79+
value = module.msk_cluster.log_group_arn
80+
}
81+
82+
################################################################################
83+
# Storage Autoscaling
84+
################################################################################
85+
86+
output "appautoscaling_policy_arn" {
87+
description = "The ARN assigned by AWS to the scaling policy"
88+
value = module.msk_cluster.appautoscaling_policy_arn
89+
}
90+
91+
output "appautoscaling_policy_name" {
92+
description = "The scaling policy's name"
93+
value = module.msk_cluster.appautoscaling_policy_name
94+
}
95+
96+
output "appautoscaling_policy_policy_type" {
97+
description = "The scaling policy's type"
98+
value = module.msk_cluster.appautoscaling_policy_policy_type
99+
}
100+
101+
################################################################################
102+
# Glue Schema Registry & Schema
103+
################################################################################
104+
105+
output "schema_registries" {
106+
description = "A map of output attributes for the schema registries created"
107+
value = module.msk_cluster.schema_registries
108+
}
109+
110+
output "schemas" {
111+
description = "A map of output attributes for the schemas created"
112+
value = module.msk_cluster.schemas
113+
}
114+
115+
################################################################################
116+
# Connect Custom Plugin
117+
################################################################################
118+
119+
output "connect_custom_plugins" {
120+
description = "A map of output attributes for the connect custom plugins created"
121+
value = module.msk_cluster.connect_custom_plugins
122+
}
123+
124+
################################################################################
125+
# Connect Worker Configuration
126+
################################################################################
127+
128+
output "connect_worker_configuration_arn" {
129+
description = "The Amazon Resource Name (ARN) of the worker configuration"
130+
value = module.msk_cluster.connect_worker_configuration_arn
131+
}
132+
133+
output "connect_worker_configuration_latest_revision" {
134+
description = "An ID of the latest successfully created revision of the worker configuration"
135+
value = module.msk_cluster.connect_worker_configuration_latest_revision
136+
}

examples/basic/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 3.60"
7+
version = ">= 3.71"
88
}
99
}
1010
}

0 commit comments

Comments
 (0)