https://github.com/philips-labs/kafka-on-hsdp
Terraform root module which demonstrates deployment and usage of Kafka on HSDP
https://github.com/philips-labs/kafka-on-hsdp
Last synced: 4 months ago
JSON representation
Terraform root module which demonstrates deployment and usage of Kafka on HSDP
- Host: GitHub
- URL: https://github.com/philips-labs/kafka-on-hsdp
- Owner: philips-labs
- Created: 2020-09-15T19:06:35.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2021-08-03T21:06:26.000Z (about 4 years ago)
- Last Synced: 2025-06-08T21:02:15.718Z (4 months ago)
- Language: Shell
- Homepage:
- Size: 43 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Kafka on HSDP
This Terraform root module demonstrates usage of a Kafka Cluster provisioned
on Container Host. We also spin up a Kafdrop instance as an example app hosted
on Cloud foundry>**NOTE**: authentication/authorization is mTLS-SSL. you will need to create you own certificates.
## Prerquisites
- You must be onboarded to the [HSDP Container Host service](https://www.hsdp.io/documentation/container-host) (i.e. have Cartel API credentials)
- Terraform## Requirements
| Name | Version |
|------|---------|
| [cloudfoundry](#requirement\_cloudfoundry) | >= 0.14.2 |
| [hsdp](#requirement\_hsdp) | >= 0.18.6 |## Providers
| Name | Version |
|------|---------|
| [cloudfoundry](#provider\_cloudfoundry) | >= 0.14.2 |## Modules
| Name | Source | Version |
|------|--------|---------|
| [kafka](#module\_kafka) | philips-labs/kafka/hsdp | 0.8.0 |
| [zookeeper](#module\_zookeeper) | philips-labs/zookeeper/hsdp | 0.8.0 |## Resources
| Name | Type |
|------|------|
| [cloudfoundry_app.kafdrop](https://registry.terraform.io/providers/cloudfoundry-community/cloudfoundry/latest/docs/resources/app) | resource |
| [cloudfoundry_route.kafdrop](https://registry.terraform.io/providers/cloudfoundry-community/cloudfoundry/latest/docs/resources/route) | resource |
| [cloudfoundry_domain.domain](https://registry.terraform.io/providers/cloudfoundry-community/cloudfoundry/latest/docs/data-sources/domain) | data source |
| [cloudfoundry_org.org](https://registry.terraform.io/providers/cloudfoundry-community/cloudfoundry/latest/docs/data-sources/org) | data source |
| [cloudfoundry_space.space](https://registry.terraform.io/providers/cloudfoundry-community/cloudfoundry/latest/docs/data-sources/space) | data source |## Inputs
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [bastion\_host](#input\_bastion\_host) | Bastion Host to use (region specific) | `string` | `"gw-eu1.phsdp.com"` | no |
| [cartel\_host](#input\_cartel\_host) | Cartel API host (region specific) | `string` | n/a | yes |
| [cartel\_secret](#input\_cartel\_secret) | Cartel secret to use for Container Host | `string` | n/a | yes |
| [cartel\_token](#input\_cartel\_token) | Cartel token to use for Container Host | `string` | n/a | yes |
| [cf\_api](#input\_cf\_api) | Cloud foundry API endpoint (region specific) | `string` | n/a | yes |
| [cf\_domain](#input\_cf\_domain) | Default Cloud foundry domain to use for apps | `string` | n/a | yes |
| [cf\_org](#input\_cf\_org) | Cloud foundry ORG name | `string` | n/a | yes |
| [cf\_password](#input\_cf\_password) | Cloud foundry password | `string` | n/a | yes |
| [cf\_region](#input\_cf\_region) | Cloud foundry region | `string` | `"eu-west"` | no |
| [cf\_space](#input\_cf\_space) | Cloud foundry space to provision Kafdrop in | `string` | n/a | yes |
| [cf\_username](#input\_cf\_username) | Cloud foundry username | `string` | n/a | yes |
| [kafdrop\_key\_store\_file](#input\_kafdrop\_key\_store\_file) | file path of the kafkadrop key store | `string` | n/a | yes |
| [kafka\_instance\_type](#input\_kafka\_instance\_type) | The EC2 instance type to use for Kafka nodes | `string` | `"t3.large"` | no |
| [kafka\_key\_store\_file](#input\_kafka\_key\_store\_file) | file path of the kafka key store | `string` | n/a | yes |
| [kafka\_nodes](#input\_kafka\_nodes) | Number of Kafka nodes to spin up | `number` | `1` | no |
| [kafka\_properties\_file](#input\_kafka\_properties\_file) | file path of the kafka properties file | `string` | n/a | yes |
| [kafka\_trust\_store\_file](#input\_kafka\_trust\_store\_file) | file path of the kafka trust store | `string` | n/a | yes |
| [name\_postfix](#input\_name\_postfix) | Optional postfix to append in routes | `string` | `""` | no |
| [private\_key\_file](#input\_private\_key\_file) | SSH private key. Used to access SSH bastion host | `string` | n/a | yes |
| [ssl\_pass](#input\_ssl\_pass) | one pass for all of the keys and stores | `string` | n/a | yes |
| [zoo\_key\_store\_file](#input\_zoo\_key\_store\_file) | file path of the zookeeper key store | `string` | n/a | yes |
| [zoo\_trust\_store\_file](#input\_zoo\_trust\_store\_file) | file path of the zookeeper trust store | `string` | n/a | yes |
| [zookeeper\_instance\_type](#input\_zookeeper\_instance\_type) | The EC2 instance type to use for Zookeeper servers | `string` | `"t2.medium"` | no |
| [zookeeper\_nodes](#input\_zookeeper\_nodes) | Number of Zookeeper nodes to spin up | `number` | `1` | no |## Outputs
| Name | Description |
|------|-------------|
| [kafdrop\_url](#output\_kafdrop\_url) | n/a |## key generation
Look at the (https://github.com/bitnami/bitnami-docker-kafka) for how to. there is a (https://raw.githubusercontent.com/confluentinc/confluent-platform-security-tools/master/kafka-generate-ssl.sh) which provides the necessary results.## example kafka.properties file for kafdrop and possilby your clients
kafka.securityprotocol=SSL
ssl.security.protocol=SSL
ssl.endpoint.identification.algorithm=
ssl.truststore.password=
ssl.truststore.type=JKS
ssl.keystore.password=
ssl.keystore.type=JKS
ssl.key.password=# Contact / Getting help
Post your question on the HSDP Slack `#terraform` channel
# License
License is MIT