Skip to content

lsst-sqre/terraform-efd-gke

Repository files navigation

terraform efd-gke "top level" deployment

Build Status

Deploys an efd instance on top of a gke cluster.

Usage

This package is intended to be used as a "top level" deployment, rather than as a general purpose module, and thus declares provider configuration that that may be inappropriate in a module.

terragrunt configuration example:

terragrunt = {
  terraform {
    source = "git::git@github.com:lsst-sqre/terraform-efd-gke.git//?ref=master"
  }
}

Inputs

Name Description Type Default Required
aws_zone_id route53 Hosted Zone ID to manage DNS records in. string n/a yes
brokers_disk_size Disk size for the cp-kafka brokers. string "15Gi" no
deploy_name Name of deployment. string "efd" no
dns_enable create route53 dns records. string "false" no
dns_overwrite overwrite pre-existing DNS records string "false" no
domain_name DNS domain name to use when creating route53 records. string n/a yes
env_name Name of deployment environment. string n/a yes
github_token GitHub personal access token for authenticating to the GitHub API. (defaul: vault) string "" no
github_user GitHub username for authenticating to the GitHub API. (defaul: vault) string "" no
gke_version gke master/node version string "latest" no
google_project google cloud project ID string "plasma-geode-127520" no
google_region google cloud region string "us-central1" no
google_zone google cloud region/zone string "us-central1-b" no
grafana_oauth_client_id github oauth Client ID for grafana. (default: vault) string "" no
grafana_oauth_client_secret github oauth Client Secret for grafana. (default: vault) string "" no
grafana_oauth_team_ids github team id (integer value treated as string) string "1936535" no
influxdb_admin_pass influxdb admin account passphrase. (default: vault) string "" no
influxdb_admin_user influxdb admin account name. (default: vault) string "" no
influxdb_telegraf_pass InfluxDB password for the telegraf user. (default: vault) string "" no
initial_node_count number of gke nodes to start string "3" no
machine_type machine type of default gke pool nodes string "n1-standard-2" no
prometheus_oauth_client_id github oauth client id. (default: vault) string "" no
prometheus_oauth_client_secret github oauth client secret. (default: vault) string "" no
prometheus_oauth_github_org limit access to prometheus dashboard to members of this org string "lsst-sqre" no
tls_crt wildcard tls certificate. (default: vault) string "" no
tls_key wildcard tls private key. (default: vault) string "" no
zookeeper_data_dir_size Size for Data dir, where ZooKeeper will store the in-memory database snapshots. string "15Gi" no
zookeeper_log_dir_size Size for data log dir, which is a dedicated log device to be used, and helps avoid competition between logging and snaphots. string "15Gi" no

Outputs

Name Description
confluent_lb0
confluent_lb1
confluent_lb2
grafana_admin_pass grafana admin user account password.
grafana_admin_user name of the grafana admin user account.
grafana_fqdn fqdn of grafana service.
grafana_url url of grafana dashboard.
influxdb_fqdn fqdn of influxdb service.
nginx_ingress_ip
prometheus_fqdn fqdn of prometheus service.
prometheus_url url of prometheus dashboard.
registry_fqdn fqdn of schema registry service.

Vault Secrets

See vault.md

helm

Note that the helm provider is used, which requires an initialized helm repo configuration.

pre-commit hooks

go get github.com/segmentio/terraform-docs
pip install --user pre-commit
pre-commit install

# manual run
pre-commit run -a

See Also