provider "aws" {
  region = "us-east-1"
}

terraform {
  backend "s3" {
    bucket  = "dev-orcd-terraform-state"
    key     = "dev/terraform-managed-kafka-neo4j-streams/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

module "managed_kafka" {
  source = "git@github.com:theorchard/terraform-managed-kafka.git"

  environment           = "dev"
  cluster_name          = "managed-kafka-neo4j-streams"
  kafka_properties      = "kafka_properties.conf"
  kafka_ebs_volume_size = 80
  access_cidr_blocks = [
    "10.30.0.0/22",
    "10.40.0.0/22",
    "192.168.31.0/24",
    "192.168.32.0/24",
    "192.168.33.0/24",
    "192.168.40.0/22",
  ]
}

module "kafka_topics" {
  source = "../modules/kafka_provisioner"

  bootstrap_broker_tls = split(",", module.managed_kafka.bootstrap_brokers_tls)[0]
  kafka_topics         = "maxwell_art_relations_neo4j_dlq,maxwell_art_relations_neo4j_ddl,maxwell_art_relations_artist_info,maxwell_art_relations_multi_table"
  kafka_partitions     = 3
  kafka_replication    = 3
}

module "datadog_dashboard" {
  source       = "git@github.com:theorchard/terraform-datadog.git//modules/msk"
  environment  = "dev"
  cluster_name = "managed-kafka-neo4j-streams"
}

