This repo has been forked from https://github.com/travisjeffery/terraform-provider-kafka
This is a Terraform provider for managing Kafka topics with Terraform.
Why use this Kafka provider?
- Supports adding partitions and altering configs
- Supports TLS/SASL
- Uses Kafka's new admin APIs rather than shelling out to old bash scripts
-
Download the latest compiled binary from GitHub releases.
-
Unzip/untar the archive.
-
Move it into
$HOME/.terraform.d/plugins
:
$ mkdir -p $HOME/.terraform.d/plugins
$ mv terraform-provider-kafka $HOME/.terraform.d/plugins/terraform-provider-kafka
- Create your Terraform configurations as normal, and run
terraform init
:
$ terraform init
This will find the plugin locally.
- Create a Terraform configuration file:
provider "kafka" {
hosts = ["localhost:9092"]
}
resource "kafka_topic" "example" {
name: "example"
num_partitions: "8"
replication_factor: "1"
config_entries: {
retention.bytes: "102400"
cleanup.policy: "compact
}
}
There's parameters to set if you use TLS/SASL.
- Run
terraform init
to pull in the provider:
$ terraform init
- Run
terraform plan
andterraform apply
to interact with the filesystem:
$ terraform plan
$ terraform apply
This provider supports importing externally created topics by their name. Assuming you've already created a topic declaration like the one above, you can get Terraform to manage the state of the existing topic:
$ terraform import kafka_topic.example example
For more examples, please see the examples folder in this repository.
MIT
- travisjeffery.com
- GitHub @travisjeffery
- Twitter @travisjeffery
- Medium @travisjeffery