Skip to content

Terraform module to create Zookeeper ensemble on HSDP Container Host

License

Notifications You must be signed in to change notification settings

philips-labs/terraform-hsdp-zookeeper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HSDP Zookeeper module

Module to create an Apache Zookeeper ensemble cluster deployed on the HSDP Container Host infrastructure. This module serves as a blueprint for future HSDP Container Host modules. Example usage

module "zookeeper" {
  source = "github.com/philips-labs/terraform-hsdp-zookeeper"

  nodes        = 5
  bastion_host = "bastion.host"
  user         = "ronswanson"
  private_key  = file("~/.ssh/dec.key")
  user_groups  = ["ronswanson", "poc"]
  trust_store   = {
    truststore = "./truststore.jks"
    password   = "somepass"
  }
  key_store     = {
    keystore   = "./keystore.jks"
    password   = "somepass"
  }
}

IMPORTANT SECURITY INFORMATION

This module currently enables only mTLS-SSL between Kafka, Zookeeper or any connecting client apps. Operating and maintaining applications on Container Host is always your responsibility. This includes ensuring any security measures are in place in case you need them.

Requirements

Name Version
hsdp >= 0.9.4

Providers

Name Version
hsdp >= 0.9.4
random n/a

Inputs

Name Description Type Default Required
bastion_host Bastion host to use for SSH connections string n/a yes
enable_exporter Indicates whether jmx exporter is enabled or not bool false no
host_name The middlename for your host default is a random number string "" no
image The docker image to use string "bitnami/zookeeper:latest" no
instance_type The instance type to use string "t2.medium" no
key_store Key Store for SSL, same key used for all nodes
object(
{ keystore = string,
password = string }
)
n/a yes
nodes Number of nodes number 3 no
private_key Private key for SSH access string n/a yes
tld The tld for your host default is a dev string "dev" no
trust_store Trust store for SSL
object(
{ truststore = string,
password = string }
)
n/a yes
user LDAP user to use for connections string n/a yes
user_groups User groups to assign to cluster list(string) [] no
volume_size The volume size to use in GB number 20 no

Key Store object

This object has two properties that needs to be filled

Name Description Type Default Required
keystore The path of the keystore file in JKS format string none yes
password The password to be used for the key store string none yes

trust Store object

This object has two properties that needs to be filled

Name Description Type Default Required
truststore The path of the truststore file in JKS format string none yes
password The password to be used for the trust store string none yes

Outputs

Name Description
zookeeper_name_nodes Container Host Zookeeper instance names
zookeeper_nodes Container Host Zookeeper instances
zookeeper_port Zookeeper port

Contact / Getting help

Andy Lo-A-Foe andy.lo-a-foe@philips.com

License

License is MIT