Skip to main content
ZooKeeper 0.12.0

Exhibitor Shared Config

View SourceRelease Notes

This module creates an S3 bucket and IAM permissions that can be used by Exhibitor to store shared ZooKeeper configuration. By storing the config in S3, the Exhibitor process on each ZooKeeper server can detect and roll out config changes.

This module is used by the zookeeper-cluster module, so you typically won't have to use it directly. However, we keep this module separate in case you decide to ZooKeeper on top of a different type of cluster (e.g., co-located with Kafka), in which case you can include this module to handle the S3 bucket details for you.

Sample Usage

main.tf

# ------------------------------------------------------------------------------------------------------
# DEPLOY GRUNTWORK'S EXHIBITOR-SHARED-CONFIG MODULE
# ------------------------------------------------------------------------------------------------------

module "exhibitor_shared_config" {

source = "git::git@github.com:gruntwork-io/terraform-aws-zookeeper.git//modules/exhibitor-shared-config?ref=v0.12.0"

# ----------------------------------------------------------------------------------------------------
# REQUIRED VARIABLES
# ----------------------------------------------------------------------------------------------------

# The name to use for the S3 bucket that will store shared ZooKeeper config
s3_bucket_name = <INPUT REQUIRED>

# The ID of the IAM Role used by the nodes in the ZooKeeper cluster
zookeeper_aws_iam_role_id = <INPUT REQUIRED>

# ----------------------------------------------------------------------------------------------------
# OPTIONAL VARIABLES
# ----------------------------------------------------------------------------------------------------

# If you set this to true, when you run terraform destroy, this tells Terraform to
# delete all the objects in the S3 bucket used for shared config storage. You
# should NOT set this to true in production! This property is only here so
# automated tests can clean up after themselves.
force_destroy_shared_config_s3_bucket = false

# The Amazon Resource Name (ARN) of the KMS Key that will be used to
# encrypt/decrypt config files in the S3 bucket. The default value of null will
# use the managed aws/s3 key.
s3_bucket_kms_key_arn = null

}

Reference

Required

s3_bucket_namestringrequired

The name to use for the S3 bucket that will store shared ZooKeeper config

The ID of the IAM Role used by the nodes in the ZooKeeper cluster

Optional

If you set this to true, when you run terraform destroy, this tells Terraform to delete all the objects in the S3 bucket used for shared config storage. You should NOT set this to true in production! This property is only here so automated tests can clean up after themselves.

false
s3_bucket_kms_key_arnstringoptional

The Amazon Resource Name (ARN) of the KMS Key that will be used to encrypt/decrypt config files in the S3 bucket. The default value of null will use the managed aws/s3 key.

null