{"id":21725451,"url":"https://github.com/jameswoolfenden/terraform-aws-confluent","last_synced_at":"2025-03-20T22:49:38.173Z","repository":{"id":81359188,"uuid":"196934807","full_name":"JamesWoolfenden/terraform-aws-confluent","owner":"JamesWoolfenden","description":"To Provision Confluent Kafka 4","archived":false,"fork":false,"pushed_at":"2023-07-29T20:11:52.000Z","size":141,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-25T19:28:05.156Z","etag":null,"topics":["aws","codebuild","confluent","kafka","module","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JamesWoolfenden.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-15T06:08:03.000Z","updated_at":"2024-03-21T21:22:43.000Z","dependencies_parsed_at":"2025-01-25T19:36:16.556Z","dependency_job_id":null,"html_url":"https://github.com/JamesWoolfenden/terraform-aws-confluent","commit_stats":null,"previous_names":[],"tags_count":57,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-confluent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-confluent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-confluent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-confluent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JamesWoolfenden","download_url":"https://codeload.github.com/JamesWoolfenden/terraform-aws-confluent/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244706500,"owners_count":20496570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","codebuild","confluent","kafka","module","terraform"],"created_at":"2024-11-26T03:17:45.994Z","updated_at":"2025-03-20T22:49:38.166Z","avatar_url":"https://github.com/JamesWoolfenden.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-aws-confluent\n\n[![Build Status](https://github.com/JamesWoolfenden/terraform-aws-ecr/workflows/Verify%20and%20Bump/badge.svg?branch=master)](https://github.com/JamesWoolfenden/terraform-aws-ecr)\n[![Latest Release](https://img.shields.io/github/release/JamesWoolfenden/terraform-aws-ecr.svg)](https://github.com/JamesWoolfenden/terraform-aws-ecr/releases/latest)\n[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/JamesWoolfenden/terraform-aws-confluent.svg?label=latest)](https://github.com/JamesWoolfenden/terraform-aws-confluent/releases/latest)\n![Terraform Version](https://img.shields.io/badge/tf-%3E%3D0.14.0-blue.svg)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/JamesWoolfenden/terraform-aws-confluent/cis_aws)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=JamesWoolfenden%2Fterraform-aws-confluent\u0026benchmark=CIS+AWS+V1.2)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![checkov](https://img.shields.io/badge/checkov-verified-brightgreen)](https://www.checkov.io/)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/jameswoolfenden/terraform-aws-confluent/general)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=JamesWoolfenden%2Fterraform-aws-confluent\u0026benchmark=INFRASTRUCTURE+SECURITY)\n\nTerraform module to provision Confluent Kafka. This works with Confluent 4, you'll need to have built the AMI's that go with this. It's based a classic AWS 6 subnet (3 private 3 public in three AZs) model.\n\n---\n\nIt's 100% Open Source and licensed under the [APACHE2](LICENSE).\n\n## Usage\n\nInclude this repository as a module in your existing Terraform code, follow example-real not examplea as that is test data:\n\n```hcl\nmodule \"confluent\" {\n  source                        = \"github.com/JamesWoolfenden/terraform-aws-confluent\"\n  ami_id = {\n    broker    = data.aws_ami.broker.id\n    connect   = data.aws_ami.connect.id\n    control   = data.aws_ami.control.id\n    schema    = data.aws_ami.schema.id\n    redhat    = data.aws_ami.redhat.id\n    zookeeper = data.aws_ami.zookeeper.id\n  }\n  allowed_ranges                = var.allowed_ranges\n  allowed_connect_cluster_range = var.allowed_connect_cluster_range\n  account_name                  = var.account_name\n  bastion_count                 = var.bastion_count\n  bastion_private_ip            = local.bastion_private_ip\n  bastion_subnet                = tolist(data.aws_subnet_ids.public.ids)[0]\n  broker_subnets                = data.aws_subnet_ids.private.ids\n  broker_private_ip             = local.broker_private_ip\n  broker_protocol               = var.broker_protocol\n  confluent_license             = var.confluent_license\n  connect_private_ip            = local.connect_private_ip\n  consumer_subnets              = tolist(data.aws_subnet_ids.private.ids)\n  control_center_private_ip     = local.control_center_private_ip\n  control_center_subnets        = tolist(data.aws_subnet_ids.private.ids)\n  domain                        = var.domain\n  key_name                      = \"id_rsa.${var.account_name}\"\n  name                          = var.cluster_name\n  producer_subnets              = [data.aws_subnet_ids.private.ids, data.aws_subnet_ids.private.ids]\n  private_zone                  = data.aws_route53_zone.selected\n  schema_private_ip             = local.schema_private_ip\n  private_subnets               = tolist(data.aws_subnet_ids.private.ids)\n  stunnel_cert                  = tls_private_key.example.private_key_pem\n  vpc_cidr                      = data.aws_vpc.vpc.cidr_block\n  vpc_id                        = local.vpc_id\n  zk_private_ip                 = local.zk_private_ip\n  zk_subnets                    = concat(tolist(data.aws_subnet_ids.private.ids), tolist(data.aws_subnet_ids.private.ids))\n}\n```\n\n## Costs\n\n```text\nmonthly cost estimate\n\nProject: .\n\n Name                                                            Monthly Qty  Unit            Monthly Cost\n\n module.cluster.aws_instance.bastion[0]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                 16  GB-months              $1.86\n\n module.cluster.aws_instance.brokers[0]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n ├─ root_block_device\n │  └─ Storage (general purpose SSD, gp2)                                 32  GB-months              $3.71\n ├─ ebs_block_device[0]\n │  └─ Storage (general purpose SSD, gp2)                              4,000  GB-months            $464.00\n ├─ ebs_block_device[1]\n │  └─ Storage (general purpose SSD, gp2)                              4,000  GB-months            $464.00\n └─ ebs_block_device[2]\n    └─ Storage (general purpose SSD, gp2)                              4,000  GB-months            $464.00\n\n module.cluster.aws_instance.brokers[1]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n ├─ root_block_device\n │  └─ Storage (general purpose SSD, gp2)                                 32  GB-months              $3.71\n ├─ ebs_block_device[0]\n │  └─ Storage (general purpose SSD, gp2)                              4,000  GB-months            $464.00\n ├─ ebs_block_device[1]\n │  └─ Storage (general purpose SSD, gp2)                              4,000  GB-months            $464.00\n └─ ebs_block_device[2]\n    └─ Storage (general purpose SSD, gp2)                              4,000  GB-months            $464.00\n\n module.cluster.aws_instance.brokers[2]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n ├─ root_block_device\n │  └─ Storage (general purpose SSD, gp2)                                 32  GB-months              $3.71\n ├─ ebs_block_device[0]\n │  └─ Storage (general purpose SSD, gp2)                              4,000  GB-months            $464.00\n ├─ ebs_block_device[1]\n │  └─ Storage (general purpose SSD, gp2)                              4,000  GB-months            $464.00\n └─ ebs_block_device[2]\n    └─ Storage (general purpose SSD, gp2)                              4,000  GB-months            $464.00\n\n module.cluster.aws_instance.connect-cluster[0]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                 60  GB-months              $6.96\n\n module.cluster.aws_instance.connect-cluster[1]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                 60  GB-months              $6.96\n\n module.cluster.aws_instance.connect-cluster[2]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                 60  GB-months              $6.96\n\n module.cluster.aws_instance.control-center[0]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                300  GB-months             $34.80\n\n module.cluster.aws_instance.control-center[1]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                300  GB-months             $34.80\n\n module.cluster.aws_instance.control-center[2]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                300  GB-months             $34.80\n\n module.cluster.aws_instance.schema-registry[0]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                 32  GB-months              $3.71\n\n module.cluster.aws_instance.schema-registry[1]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                 32  GB-months              $3.71\n\n module.cluster.aws_instance.schema-registry[2]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                 32  GB-months              $3.71\n\n module.cluster.aws_instance.zookeeper[0]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                 32  GB-months              $3.71\n\n module.cluster.aws_instance.zookeeper[1]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                 32  GB-months              $3.71\n\n module.cluster.aws_instance.zookeeper[2]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                 32  GB-months              $3.71\n\n module.cluster.aws_instance.zookeeper[3]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                 32  GB-months              $3.71\n\n module.cluster.aws_instance.zookeeper[4]\n ├─ Instance usage (Linux/UNIX, on-demand, t2.micro)                     730  hours                  $9.64\n ├─ EC2 detailed monitoring                                                7  metrics                $2.10\n └─ root_block_device\n    └─ Storage (general purpose SSD, gp2)                                 32  GB-months              $3.71\n\n module.cluster.aws_lb.broker\n ├─ Network load balancer                                                730  hours                 $19.32\n └─ Load balancer capacity units                               Cost depends on usage: $0.006 per LCU-hours\n\n module.cluster.aws_lb.schema\n ├─ Network load balancer                                                730  hours                 $19.32\n └─ Load balancer capacity units                               Cost depends on usage: $0.006 per LCU-hours\n\n module.cluster.aws_route53_record.connect_cluster[0]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.connect_cluster[1]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.connect_cluster[2]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.control_centre[0]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.kafka[0]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.kafka[1]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.kafka[2]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.reverse_connect_cluster[0]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.reverse_connect_cluster[1]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.reverse_connect_cluster[2]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.reverse_control_centre[0]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.reverse_kafka[0]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.reverse_kafka[1]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.reverse_kafka[2]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.reverse_zookeeper[0]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.reverse_zookeeper[1]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.reverse_zookeeper[2]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.reverse_zookeeper[3]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.reverse_zookeeper[4]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.zookeeper[0]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.zookeeper[1]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.zookeeper[2]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.zookeeper[3]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_record.zookeeper[4]\n ├─ Standard queries (first 1B)                                Cost depends on usage: $0.40 per 1M queries\n ├─ Latency based routing queries (first 1B)                   Cost depends on usage: $0.60 per 1M queries\n └─ Geo DNS queries (first 1B)                                 Cost depends on usage: $0.70 per 1M queries\n\n module.cluster.aws_route53_zone.reverse\n └─ Hosted zone                                                            1  months                 $0.50\n\n PROJECT TOTAL                                                                                   $4,594.35\n```\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\nNo requirements.\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | n/a |\n| \u003ca name=\"provider_template\"\u003e\u003c/a\u003e [template](#provider\\_template) | n/a |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_iam_instance_profile.confluent_ssm](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_instance_profile) | resource |\n| [aws_iam_role.confluent_ssm](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy.confluent](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |\n| [aws_iam_role_policy_attachment.role-attach](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_instance.bastion](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |\n| [aws_instance.brokers](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |\n| [aws_instance.connect-cluster](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |\n| [aws_instance.control-center](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |\n| [aws_instance.schema-registry](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |\n| [aws_instance.zookeeper](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |\n| [aws_lb.broker](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb) | resource |\n| [aws_lb.schema](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb) | resource |\n| [aws_lb_listener.broker](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_listener) | resource |\n| [aws_lb_listener.schema](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_listener) | resource |\n| [aws_lb_target_group.broker](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_target_group) | resource |\n| [aws_lb_target_group.schema](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_target_group) | resource |\n| [aws_lb_target_group_attachment.brokers](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_target_group_attachment) | resource |\n| [aws_lb_target_group_attachment.schema](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_target_group_attachment) | resource |\n| [aws_route53_hosted_zone_dnssec.example](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_hosted_zone_dnssec) | resource |\n| [aws_route53_key_signing_key.example](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_key_signing_key) | resource |\n| [aws_route53_record.connect_cluster](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record) | resource |\n| [aws_route53_record.control_centre](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record) | resource |\n| [aws_route53_record.kafka](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record) | resource |\n| [aws_route53_record.reverse_connect_cluster](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record) | resource |\n| [aws_route53_record.reverse_control_centre](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record) | resource |\n| [aws_route53_record.reverse_kafka](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record) | resource |\n| [aws_route53_record.reverse_zookeeper](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record) | resource |\n| [aws_route53_record.zookeeper](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record) | resource |\n| [aws_route53_zone.reverse](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_zone) | resource |\n| [aws_security_group.bastions](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |\n| [aws_security_group.brokers](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |\n| [aws_security_group.connect](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |\n| [aws_security_group.control-center](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |\n| [aws_security_group.schema](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |\n| [aws_security_group.ssh](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |\n| [aws_security_group.zookeepers](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |\n| [aws_vpc_endpoint_service.broker](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint_service) | resource |\n| [aws_vpc_endpoint_service.schema](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint_service) | resource |\n| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |\n| [aws_iam_policy_document.confluent](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_iam_policy_document.ssm](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |\n| [template_file.broker_user_data](https://registry.terraform.io/providers/hashicorp/template/latest/docs/data-sources/file) | data source |\n| [template_file.connect_cluster_user_data](https://registry.terraform.io/providers/hashicorp/template/latest/docs/data-sources/file) | data source |\n| [template_file.control_centre_user_data](https://registry.terraform.io/providers/hashicorp/template/latest/docs/data-sources/file) | data source |\n| [template_file.schema_registry_user_data](https://registry.terraform.io/providers/hashicorp/template/latest/docs/data-sources/file) | data source |\n| [template_file.zookeeper_user_data](https://registry.terraform.io/providers/hashicorp/template/latest/docs/data-sources/file) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_account_name\"\u003e\u003c/a\u003e [account\\_name](#input\\_account\\_name) | Name of AWS account type e.g. Development. Testing or Production to help with naming | `string` | `\"development\"` | no |\n| \u003ca name=\"input_allowed_connect_cluster_range\"\u003e\u003c/a\u003e [allowed\\_connect\\_cluster\\_range](#input\\_allowed\\_connect\\_cluster\\_range) | n/a | `list(any)` | n/a | yes |\n| \u003ca name=\"input_allowed_ranges\"\u003e\u003c/a\u003e [allowed\\_ranges](#input\\_allowed\\_ranges) | A list of allowed IPs that can connect | `list(any)` | `[]` | no |\n| \u003ca name=\"input_ami_id\"\u003e\u003c/a\u003e [ami\\_id](#input\\_ami\\_id) | n/a | `any` | n/a | yes |\n| \u003ca name=\"input_bastion_count\"\u003e\u003c/a\u003e [bastion\\_count](#input\\_bastion\\_count) | n/a | `number` | `1` | no |\n| \u003ca name=\"input_bastion_instance_type\"\u003e\u003c/a\u003e [bastion\\_instance\\_type](#input\\_bastion\\_instance\\_type) | Size of Bastion instance | `string` | `\"t2.micro\"` | no |\n| \u003ca name=\"input_bastion_private_ip\"\u003e\u003c/a\u003e [bastion\\_private\\_ip](#input\\_bastion\\_private\\_ip) | Allows you to specify the private IP | `string` | `\"\"` | no |\n| \u003ca name=\"input_bastion_subnet\"\u003e\u003c/a\u003e [bastion\\_subnet](#input\\_bastion\\_subnet) | The id name of the subnet to put the bastion in. | `string` | n/a | yes |\n| \u003ca name=\"input_broker_instance_type\"\u003e\u003c/a\u003e [broker\\_instance\\_type](#input\\_broker\\_instance\\_type) | Size of broker instance | `string` | `\"t2.micro\"` | no |\n| \u003ca name=\"input_broker_private_ip\"\u003e\u003c/a\u003e [broker\\_private\\_ip](#input\\_broker\\_private\\_ip) | n/a | `list(any)` | n/a | yes |\n| \u003ca name=\"input_broker_protocol\"\u003e\u003c/a\u003e [broker\\_protocol](#input\\_broker\\_protocol) | Broker protocol setting | `string` | `\"SSL\"` | no |\n| \u003ca name=\"input_broker_subnets\"\u003e\u003c/a\u003e [broker\\_subnets](#input\\_broker\\_subnets) | n/a | `list(any)` | n/a | yes |\n| \u003ca name=\"input_bucket_arn\"\u003e\u003c/a\u003e [bucket\\_arn](#input\\_bucket\\_arn) | n/a | `string` | `\"\"` | no |\n| \u003ca name=\"input_client_instance_type\"\u003e\u003c/a\u003e [client\\_instance\\_type](#input\\_client\\_instance\\_type) | Size of client instance | `string` | `\"t2.micro\"` | no |\n| \u003ca name=\"input_confluent_license\"\u003e\u003c/a\u003e [confluent\\_license](#input\\_confluent\\_license) | Your Confluent licence | `string` | `\"123456789\"` | no |\n| \u003ca name=\"input_connect_instance_type\"\u003e\u003c/a\u003e [connect\\_instance\\_type](#input\\_connect\\_instance\\_type) | Size of broker instance | `string` | `\"t2.micro\"` | no |\n| \u003ca name=\"input_connect_private_ip\"\u003e\u003c/a\u003e [connect\\_private\\_ip](#input\\_connect\\_private\\_ip) | n/a | `list(any)` | n/a | yes |\n| \u003ca name=\"input_consumer_instance_type\"\u003e\u003c/a\u003e [consumer\\_instance\\_type](#input\\_consumer\\_instance\\_type) | Size of consumer instance | `string` | `\"t2.micro\"` | no |\n| \u003ca name=\"input_consumer_subnets\"\u003e\u003c/a\u003e [consumer\\_subnets](#input\\_consumer\\_subnets) | n/a | `list(any)` | n/a | yes |\n| \u003ca name=\"input_control_center_instance_type\"\u003e\u003c/a\u003e [control\\_center\\_instance\\_type](#input\\_control\\_center\\_instance\\_type) | Size of control center instance | `string` | `\"t2.micro\"` | no |\n| \u003ca name=\"input_control_center_private_ip\"\u003e\u003c/a\u003e [control\\_center\\_private\\_ip](#input\\_control\\_center\\_private\\_ip) | n/a | `list(any)` | n/a | yes |\n| \u003ca name=\"input_control_center_subnets\"\u003e\u003c/a\u003e [control\\_center\\_subnets](#input\\_control\\_center\\_subnets) | n/a | `list(any)` | n/a | yes |\n| \u003ca name=\"input_domain\"\u003e\u003c/a\u003e [domain](#input\\_domain) | n/a | `string` | n/a | yes |\n| \u003ca name=\"input_egress_range\"\u003e\u003c/a\u003e [egress\\_range](#input\\_egress\\_range) | n/a | `list(any)` | \u003cpre\u003e[\u003cbr\u003e  \"0.0.0.0/0\"\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_key_name\"\u003e\u003c/a\u003e [key\\_name](#input\\_key\\_name) | n/a | `string` | n/a | yes |\n| \u003ca name=\"input_kms_key\"\u003e\u003c/a\u003e [kms\\_key](#input\\_kms\\_key) | n/a | `any` | n/a | yes |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | n/a | `string` | n/a | yes |\n| \u003ca name=\"input_private_subnets\"\u003e\u003c/a\u003e [private\\_subnets](#input\\_private\\_subnets) | n/a | `list(any)` | n/a | yes |\n| \u003ca name=\"input_private_zone\"\u003e\u003c/a\u003e [private\\_zone](#input\\_private\\_zone) | n/a | `any` | n/a | yes |\n| \u003ca name=\"input_producer_subnets\"\u003e\u003c/a\u003e [producer\\_subnets](#input\\_producer\\_subnets) | n/a | `list(any)` | n/a | yes |\n| \u003ca name=\"input_roles\"\u003e\u003c/a\u003e [roles](#input\\_roles) | n/a | `list(any)` | \u003cpre\u003e[\u003cbr\u003e  \"arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM\",\u003cbr\u003e  \"arn:aws:iam::aws:policy/CloudWatchLogsFullAccess\",\u003cbr\u003e  \"arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy\"\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_schema_instance_type\"\u003e\u003c/a\u003e [schema\\_instance\\_type](#input\\_schema\\_instance\\_type) | n/a | `string` | `\"t2.micro\"` | no |\n| \u003ca name=\"input_schema_private_ip\"\u003e\u003c/a\u003e [schema\\_private\\_ip](#input\\_schema\\_private\\_ip) | n/a | `list(any)` | n/a | yes |\n| \u003ca name=\"input_stunnel_cert\"\u003e\u003c/a\u003e [stunnel\\_cert](#input\\_stunnel\\_cert) | n/a | `any` | n/a | yes |\n| \u003ca name=\"input_vpc_cidr\"\u003e\u003c/a\u003e [vpc\\_cidr](#input\\_vpc\\_cidr) | n/a | `string` | n/a | yes |\n| \u003ca name=\"input_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#input\\_vpc\\_id) | n/a | `string` | n/a | yes |\n| \u003ca name=\"input_zk_private_ip\"\u003e\u003c/a\u003e [zk\\_private\\_ip](#input\\_zk\\_private\\_ip) | n/a | `list(any)` | n/a | yes |\n| \u003ca name=\"input_zk_subnets\"\u003e\u003c/a\u003e [zk\\_subnets](#input\\_zk\\_subnets) | n/a | `list(any)` | n/a | yes |\n| \u003ca name=\"input_zookeeper\"\u003e\u003c/a\u003e [zookeeper](#input\\_zookeeper) | n/a | `map(any)` | \u003cpre\u003e{\u003cbr\u003e  \"client-listener-port\": \"5570\",\u003cbr\u003e  \"instance_type\": \"t2.micro\",\u003cbr\u003e  \"leader-listener-port\": \"5590\",\u003cbr\u003e  \"peer-listener-port\": \"5580\"\u003cbr\u003e}\u003c/pre\u003e | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_bastion_ip\"\u003e\u003c/a\u003e [bastion\\_ip](#output\\_bastion\\_ip) | n/a |\n| \u003ca name=\"output_public_dns\"\u003e\u003c/a\u003e [public\\_dns](#output\\_public\\_dns) | n/a |\n| \u003ca name=\"output_public_ips\"\u003e\u003c/a\u003e [public\\_ips](#output\\_public\\_ips) | n/a |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n## Policy\n\n\u003c!-- BEGINNING OF PRE-COMMIT-PIKE DOCS HOOK --\u003e\nThe Terraform resource required is:\n\n```golang\nresource \"aws_iam_policy\" \"terraform_pike\" {\n  name_prefix = \"terraform_pike\"\n  path        = \"/\"\n  description = \"Pike Autogenerated policy from IAC\"\n\n  policy = jsonencode({\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Sid\": \"VisualEditor0\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"ec2:AuthorizeSecurityGroupEgress\",\n                \"ec2:AuthorizeSecurityGroupIngress\",\n                \"ec2:CreateSecurityGroup\",\n                \"ec2:DeleteSecurityGroup\",\n                \"ec2:DescribeAccountAttributes\",\n                \"ec2:DescribeInstanceAttribute\",\n                \"ec2:DescribeInstanceCreditSpecifications\",\n                \"ec2:DescribeInstanceTypes\",\n                \"ec2:DescribeInstances\",\n                \"ec2:DescribeNetworkInterfaces\",\n                \"ec2:DescribeSecurityGroups\",\n                \"ec2:DescribeTags\",\n                \"ec2:DescribeVolumes\",\n                \"ec2:DescribeVpcs\",\n                \"ec2:ModifyInstanceAttribute\",\n                \"ec2:MonitorInstances\",\n                \"ec2:RevokeSecurityGroupEgress\",\n                \"ec2:RevokeSecurityGroupIngress\",\n                \"ec2:RunInstances\",\n                \"ec2:StartInstances\",\n                \"ec2:StopInstances\",\n                \"ec2:TerminateInstances\",\n                \"ec2:UnmonitorInstances\"\n            ],\n            \"Resource\": \"*\"\n        },\n        {\n            \"Sid\": \"VisualEditor1\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"elasticloadbalancing:CreateListener\",\n                \"elasticloadbalancing:CreateLoadBalancer\",\n                \"elasticloadbalancing:CreateTargetGroup\",\n                \"elasticloadbalancing:DeleteListener\",\n                \"elasticloadbalancing:DeleteLoadBalancer\",\n                \"elasticloadbalancing:DeleteTargetGroup\",\n                \"elasticloadbalancing:DeregisterTargets\",\n                \"elasticloadbalancing:DescribeListeners\",\n                \"elasticloadbalancing:DescribeLoadBalancerAttributes\",\n                \"elasticloadbalancing:DescribeLoadBalancers\",\n                \"elasticloadbalancing:DescribeTags\",\n                \"elasticloadbalancing:DescribeTargetGroupAttributes\",\n                \"elasticloadbalancing:DescribeTargetGroups\",\n                \"elasticloadbalancing:DescribeTargetHealth\",\n                \"elasticloadbalancing:ModifyListener\",\n                \"elasticloadbalancing:ModifyLoadBalancerAttributes\",\n                \"elasticloadbalancing:ModifyTargetGroupAttributes\",\n                \"elasticloadbalancing:RegisterTargets\"\n            ],\n            \"Resource\": \"*\"\n        },\n        {\n            \"Sid\": \"VisualEditor2\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"iam:AddRoleToInstanceProfile\",\n                \"iam:AttachRolePolicy\",\n                \"iam:CreateInstanceProfile\",\n                \"iam:CreateRole\",\n                \"iam:DeleteInstanceProfile\",\n                \"iam:DeleteRole\",\n                \"iam:DeleteRolePolicy\",\n                \"iam:DetachRolePolicy\",\n                \"iam:GetInstanceProfile\",\n                \"iam:GetRole\",\n                \"iam:GetRolePolicy\",\n                \"iam:ListAttachedRolePolicies\",\n                \"iam:ListInstanceProfilesForRole\",\n                \"iam:ListRolePolicies\",\n                \"iam:PassRole\",\n                \"iam:PutRolePolicy\",\n                \"iam:RemoveRoleFromInstanceProfile\",\n                \"iam:UpdateRoleDescription\"\n            ],\n            \"Resource\": \"*\"\n        },\n        {\n            \"Sid\": \"VisualEditor3\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"route53:AssociateVPCWithHostedZone\",\n                \"route53:ChangeResourceRecordSets\",\n                \"route53:CreateHostedZone\",\n                \"route53:DeleteHostedZone\",\n                \"route53:GetChange\",\n                \"route53:GetHostedZone\",\n                \"route53:ListResourceRecordSets\",\n                \"route53:ListTagsForResource\"\n            ],\n            \"Resource\": \"*\"\n        }\n    ]\n})\n}\n\n\n```\n\u003c!-- END OF PRE-COMMIT-PIKE DOCS HOOK --\u003e\n\n## Help\n\n**Got a question?**\n\nFile a GitHub [issue](https://github.com/jameswoolfenden/terraform-aws-ecr/issues).\n\n## Contributing\n\n### Bug Reports \u0026 Feature Requests\n\nPlease use the [issue tracker](https://github.com/jameswoolfenden/terraform-aws-ecr/issues) to report any bugs or file feature requests.\n\n## Copyrights\n\nCopyright © 2019-2022 James Woolfenden\n\n## License\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nSee [LICENSE](LICENSE) for full details.\n\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE file\ndistributed with this work for additional information\nregarding copyright ownership. The ASF licenses this file\nto you under the Apache License, Version 2.0 (the\n\"License\"); you may not use this file except in compliance\nwith the License. You may obtain a copy of the License at\n\n\u003chttps://www.apache.org/licenses/LICENSE-2.0\u003e\n\nUnless required by applicable law or agreed to in writing,\nsoftware distributed under the License is distributed on an\n\"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, either express or implied. See the License for the\nspecific language governing permissions and limitations\nunder the License.\n\n### Contributors\n\n[![James Woolfenden][jameswoolfenden_avatar]][jameswoolfenden_homepage]\u003cbr/\u003e[James Woolfenden][jameswoolfenden_homepage]\n\n[jameswoolfenden_homepage]: https://github.com/jameswoolfenden\n[jameswoolfenden_avatar]: https://github.com/jameswoolfenden.png?size=150\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjameswoolfenden%2Fterraform-aws-confluent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjameswoolfenden%2Fterraform-aws-confluent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjameswoolfenden%2Fterraform-aws-confluent/lists"}