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.
How do you use this module?
See the root README for instructions on using Terraform modules.
{"treedata":{"name":"root","toggled":true,"children":[{"name":".circleci","children":[{"name":"config.yml","path":".circleci/config.yml","sha":"c050ca0390cf497b7b66c9b20d454644fd07c433"}]},{"name":".gitignore","path":".gitignore","sha":"680445c9f2a64093b79e862110e7ba5a1631396b"},{"name":".pre-commit-config.yaml","path":".pre-commit-config.yaml","sha":"a231a87f4d53a3db368ba9a52c2ce4c72665be6c"},{"name":"CODEOWNERS","path":"CODEOWNERS","sha":"4be01a6334d39aa5bf6abe6baae701f5e2a8c5ac"},{"name":"LICENSE.txt","path":"LICENSE.txt","sha":"689cf10ec98e3297a75bdd9b9fb5da10b7a675f8"},{"name":"README.md","path":"README.md","sha":"70fb59469641fa364526a7ec8edb710befb3986d"},{"name":"examples","children":[{"name":"install-open-jdk","children":[{"name":"main.tf","path":"examples/install-open-jdk/main.tf","sha":"f31506fb8e3fbd065956d2423c95a713ac793bf3"},{"name":"outputs.tf","path":"examples/install-open-jdk/outputs.tf","sha":"6d1b9b915cdb10c8ba114d61d0c47f0babd2ebe8"},{"name":"packer","children":[{"name":"build.json","path":"examples/install-open-jdk/packer/build.json","sha":"a52ffa21b70d809026886f0c539de5340159102d"}]},{"name":"vars.tf","path":"examples/install-open-jdk/vars.tf","sha":"d1eba93458ba1cfdf6b588d968e558f756087e9f"}]},{"name":"zookeeper-ami","children":[{"name":"README.md","path":"examples/zookeeper-ami/README.md","sha":"05c95c33022491de1a986d0aca53019913a1f44a"},{"name":"configure-image.sh","path":"examples/zookeeper-ami/configure-image.sh","sha":"1284a3e34391d6d45e93ba03a325accad284c496"},{"name":"docker-compose.yml","path":"examples/zookeeper-ami/docker-compose.yml","sha":"4a19a656e2f87a6cbf054f03e561af25293cc50e"},{"name":"mock","children":[{"name":"README.md","path":"examples/zookeeper-ami/mock/README.md","sha":"281f2d6e28652e1269003052189206637f7a39e1"},{"name":"bash-commons","children":[{"name":"aws.sh","path":"examples/zookeeper-ami/mock/bash-commons/aws.sh","sha":"3410f13c4a89f2b9ebadef09c678a44471b57426"}]},{"name":"modules","children":[{"name":"attach-eni","path":"examples/zookeeper-ami/mock/modules/attach-eni","sha":"da052caea4586b27c2dc13e521092e9403fcc327"},{"name":"mount-ebs-volume","path":"examples/zookeeper-ami/mock/modules/mount-ebs-volume","sha":"e0171fef05dbd120dc8668ceeca176cc5c0dfce4"}]},{"name":"user-data","children":[{"name":"user-data.sh","path":"examples/zookeeper-ami/mock/user-data/user-data.sh","sha":"43a641aa2937ba6f7c07c8391c947de2f65b7920"}]}]},{"name":"zookeeper.json","path":"examples/zookeeper-ami/zookeeper.json","sha":"8c4b84869fd40a1db9bc8bef61d6b3a19b3762c0"}]},{"name":"zookeeper-cluster","children":[{"name":"README.md","path":"examples/zookeeper-cluster/README.md","sha":"eda7e80c820a57b327129083f52b73e0713ae6b3"},{"name":"main.tf","path":"examples/zookeeper-cluster/main.tf","sha":"73231469ead7422e5e018787801bc8074ae22155"},{"name":"outputs.tf","path":"examples/zookeeper-cluster/outputs.tf","sha":"b975f1a72a486b619e310e8140110b84dfc29085"},{"name":"user-data","children":[{"name":"user-data.sh","path":"examples/zookeeper-cluster/user-data/user-data.sh","sha":"e9791f80ed83847ba70305ce8ae5ef069f5c650a"}]},{"name":"vars.tf","path":"examples/zookeeper-cluster/vars.tf","sha":"ad3d6ba8d303e025fa8afd2a618510deeafd2e20"}]}]},{"name":"modules","children":[{"name":"bash-commons","children":[{"name":"README.md","path":"modules/bash-commons/README.md","sha":"36085f6f3d8ce299f64aa01f05761f60037a307b"},{"name":"install.sh","path":"modules/bash-commons/install.sh","sha":"aef9fac2b81593e7fe9bbc54c775d77883b78904"},{"name":"lib","children":[{"name":"assert.sh","path":"modules/bash-commons/lib/assert.sh","sha":"46db8af49acb3e8d707447827dc614740add6a63"},{"name":"aws.sh","path":"modules/bash-commons/lib/aws.sh","sha":"3f14d36e2c7b57c91be34bdf30fff4f400a7d1aa"},{"name":"log.sh","path":"modules/bash-commons/lib/log.sh","sha":"66f936873d4d104c94693d3e68790cc0b9d36c63"},{"name":"os.sh","path":"modules/bash-commons/lib/os.sh","sha":"435e592c0e992f2266247a2da797a0eefc429f35"},{"name":"strings.sh","path":"modules/bash-commons/lib/strings.sh","sha":"19dbfe630edfbe71e7c8c1beee3d50fffdd5b1e6"}]}]},{"name":"exhibitor-shared-config","children":[{"name":"README.md","path":"modules/exhibitor-shared-config/README.md","sha":"736686bba5c252be2acf0eb14a00dd59a23d72a0","toggled":true},{"name":"main.tf","path":"modules/exhibitor-shared-config/main.tf","sha":"311599fba070613cebff664e67ae2ce8349d6d74"},{"name":"outputs.tf","path":"modules/exhibitor-shared-config/outputs.tf","sha":"f25b449e17b3d611d5248bd58499219511792c79"},{"name":"vars.tf","path":"modules/exhibitor-shared-config/vars.tf","sha":"627fa84d0ef4c7c765e312acc8d9ca775688ed4b"}],"toggled":true},{"name":"install-exhibitor","children":[{"name":"README.md","path":"modules/install-exhibitor/README.md","sha":"95b622d4e7ed592c3a1c042c387b3d1ece4c0747"},{"name":"install.sh","path":"modules/install-exhibitor/install.sh","sha":"e6041bd754a016778e56a18c9bff3108f7d84470"},{"name":"pom.xml","path":"modules/install-exhibitor/pom.xml","sha":"e5cca292196cdaa093cc484465eb5bc2d48ed618"},{"name":"zookeeper-log4j.properties","path":"modules/install-exhibitor/zookeeper-log4j.properties","sha":"80e3ae28555ed63b5a74d127796ff3f2adfce223"}]},{"name":"install-open-jdk","children":[{"name":"README.md","path":"modules/install-open-jdk/README.md","sha":"ecf31489edfe0016cd78d7bf6225056dd3981173"},{"name":"install.sh","path":"modules/install-open-jdk/install.sh","sha":"63f6788b1d716303f54a865c6a03f659d2a60949"}]},{"name":"install-oracle-jdk","children":[{"name":"README.md","path":"modules/install-oracle-jdk/README.md","sha":"1e4be20a4464add964f1311b17da9e4e069bd2a8"},{"name":"install.sh","path":"modules/install-oracle-jdk/install.sh","sha":"681d9298e1c0809e0a5166673d499aea827539f1"}]},{"name":"install-supervisord","children":[{"name":"README.md","path":"modules/install-supervisord/README.md","sha":"5575c3cb66fcf12358a924249d5fec9febd275c2"},{"name":"install.sh","path":"modules/install-supervisord/install.sh","sha":"9a29cb5400e16f30a203e4e4d617dd2e51360594"},{"name":"supervisor-initd-script.sh","path":"modules/install-supervisord/supervisor-initd-script.sh","sha":"171b91613e98ab2bd10282025caff1707918c95a"},{"name":"supervisor-systemd-unit.service","path":"modules/install-supervisord/supervisor-systemd-unit.service","sha":"76b13943df6585299f93c101873bdfd81ca3fa19"},{"name":"supervisord.conf","path":"modules/install-supervisord/supervisord.conf","sha":"d96beb0ca9a16279ed1bdf74cbb6516275d85085"}]},{"name":"install-zookeeper","children":[{"name":"README.md","path":"modules/install-zookeeper/README.md","sha":"25009f48b77b50b22a6f3deae8235d640d457728"},{"name":"install.sh","path":"modules/install-zookeeper/install.sh","sha":"ff633d56374449a32523458932a772cc4f260ebb"},{"name":"security","children":[{"name":"zookeeper.KEYS","path":"modules/install-zookeeper/security/zookeeper.KEYS","sha":"f23552bd9489de0f229bb4bb27dfb6a0376904f4"},{"name":"zookeeper.asc","path":"modules/install-zookeeper/security/zookeeper.asc","sha":"de701fc5a9b18af3095d32de998b95d7f25667ef"}]}]},{"name":"run-exhibitor","children":[{"name":"README.md","path":"modules/run-exhibitor/README.md","sha":"473183248833afc4c2912d6abe1ab13ebc79f91d"},{"name":"bin","children":[{"name":"run-exhibitor","path":"modules/run-exhibitor/bin/run-exhibitor","sha":"3896b59705311166ff4320a166d586fcfad7a87b"}]},{"name":"install.sh","path":"modules/run-exhibitor/install.sh","sha":"2526ea9044211107baa2e01da2a27c55ab884ff7"}]},{"name":"run-health-checker","children":[{"name":"README.md","path":"modules/run-health-checker/README.md","sha":"4610cc44b430ad38e7ddf4475bcc2609bdbd5fbc"},{"name":"bin","children":[{"name":"check-zookeeper","path":"modules/run-health-checker/bin/check-zookeeper","sha":"c952376818aa1b3c08e6ce54c6b7b44811911696"},{"name":"run-health-checker","path":"modules/run-health-checker/bin/run-health-checker","sha":"3b663fa426632481b1e618285ef983cffd395809"}]},{"name":"install.sh","path":"modules/run-health-checker/install.sh","sha":"dc8cbdf7ef4a8e1feb96613adfd96bf5c7c1a29e"}]},{"name":"zookeeper-cluster","children":[{"name":"README.md","path":"modules/zookeeper-cluster/README.md","sha":"0567ae6a33387ef0a8afe59bad3b0bc6933d6b37"},{"name":"main.tf","path":"modules/zookeeper-cluster/main.tf","sha":"e134bea4660409dcb410a5564934a3a887fc5a53"},{"name":"outputs.tf","path":"modules/zookeeper-cluster/outputs.tf","sha":"424dada690378a4bd7aa8e903c61ad77746ebf99"},{"name":"vars.tf","path":"modules/zookeeper-cluster/vars.tf","sha":"8474ebfa78cc045581dbea258aba97b7fea65b42"}]},{"name":"zookeeper-iam-permissions","children":[{"name":"README.md","path":"modules/zookeeper-iam-permissions/README.md","sha":"2399cd6680bfbf24b2b13cca69048d06d6afc5ed"},{"name":"main.tf","path":"modules/zookeeper-iam-permissions/main.tf","sha":"3572ea5c426474b19f64dd50839449722b248273"},{"name":"vars.tf","path":"modules/zookeeper-iam-permissions/vars.tf","sha":"9c3a5c00d0591fd79c9e63b6c8bf753cc14cda61"}]},{"name":"zookeeper-security-group-rules","children":[{"name":"README.md","path":"modules/zookeeper-security-group-rules/README.md","sha":"dbc968a1d10180608a86efe6adfdb83f658be2b0"},{"name":"main.tf","path":"modules/zookeeper-security-group-rules/main.tf","sha":"ef54f638da4f84b8dc77a2371fd7ac625a75ddb5"},{"name":"vars.tf","path":"modules/zookeeper-security-group-rules/vars.tf","sha":"6319feab9b2eb4407d562436d716e64ef57b17fd"}]}],"toggled":true},{"name":"terraform-cloud-enterprise-private-module-registry-placeholder.tf","path":"terraform-cloud-enterprise-private-module-registry-placeholder.tf","sha":"ae586c0fe830819580e1009d41a9074f16e65bed"},{"name":"test","children":[{"name":"README.md","path":"test/README.md","sha":"a3b551ce00165ed25029229aae7a5ac5d9c33f91"},{"name":"go.mod","path":"test/go.mod","sha":"5331de1d0f74542edadd2797d897c9545072d764"},{"name":"go.sum","path":"test/go.sum","sha":"2ecc8f01ae9df11f47331af57d359b6cb726098a"},{"name":"open_jdk_test.go","path":"test/open_jdk_test.go","sha":"18e6c2f4c4e5c5a22ae4c85fb1934d6275858fb9"},{"name":"validation","children":[{"name":"validate_all_modules_and_examples_test.go","path":"test/validation/validate_all_modules_and_examples_test.go","sha":"74c928d0cbc2914e5cd708277bd857cb2375b660"}]},{"name":"zookeeper_cluster_test.go","path":"test/zookeeper_cluster_test.go","sha":"84fc388e44cd82e7cf52a5a8011ea2f4a37a7571"}]}]},"detailsContent":"<h1 class=\"preview__body--title\" id=\"exhibitor-shared-config\">Exhibitor Shared Config</h1><div class=\"preview__body--border\"></div><p>This module creates an S3 bucket and IAM permissions that can be used by\n<a href=\"https://github.com/soabase/exhibitor/\" class=\"preview__body--description--blue\" target=\"_blank\">Exhibitor</a> to store <a href=\"https://github.com/soabase/exhibitor/wiki/Shared-Configuration\" class=\"preview__body--description--blue\" target=\"_blank\">shared ZooKeeper\nconfiguration</a>. By storing the config in S3, the\nExhibitor process on each ZooKeeper server can detect and roll out config changes.</p>\n<p>This module is used by the <a href=\"/repos/v0.11.1/package-zookeeper/modules/zookeeper-cluster\" class=\"preview__body--description--blue\">zookeeper-cluster module</a>, so you typically won't have to use\nit directly. However, we keep this module separate in case you decide to ZooKeeper on top of a different type of\ncluster (e.g., co-located with <a href=\"/repos/terraform-aws-kafka\" class=\"preview__body--description--blue\">Kafka</a>), in which case you can include\nthis module to handle the S3 bucket details for you.</p>\n<h2 class=\"preview__body--subtitle\" id=\"how-do-you-use-this-module\">How do you use this module?</h2>\n<ul>\n<li>See the <a href=\"/repos/v0.11.1/package-zookeeper/README.md\" class=\"preview__body--description--blue\">root README</a> for instructions on using Terraform modules.</li>\n<li>See the <a href=\"/repos/v0.11.1/package-zookeeper/modules/zookeeper-cluster\" class=\"preview__body--description--blue\">zookeeper-cluster module</a> folder for sample usage.</li>\n<li>See <a href=\"/repos/v0.11.1/package-zookeeper/modules/exhibitor-shared-config/vars.tf\" class=\"preview__body--description--blue\">vars.tf</a> for all the variables you can set on this module.</li>\n</ul>\n","repoName":"package-zookeeper","repoRef":"v0.12.0","serviceDescriptor":{"serviceName":"Apache ZooKeeper","serviceRepoName":"package-zookeeper","serviceRepoOrg":"gruntwork-io","cloudProviders":["aws"],"description":"Deploy an Apache ZooKeeper cluster. Supports automatic bootstrap, Exhibitor, zero-downtime rolling deployment, and auto healing.","imageUrl":"zookeeper.png","licenseType":"subscriber","technologies":["Terraform","Bash"],"compliance":[],"tags":[""]},"serviceCategoryName":"NoSQL","fileName":"README.md","filePath":"/modules/exhibitor-shared-config","title":"Repo Browser: Apache ZooKeeper","description":"Browse the repos in the Gruntwork Infrastructure as Code Library."}