Terraform deployment scripts for Beekeeper.
Includes support for deploying Beekeeper on ECS and Kubernetes. Also includes deployment scripts for a Lambda which notifies Slack when Beekeeper's dead letter queue receives a message (this module is not required to run Beekeeper).
A database password is defined in aws-secrets-manager
. The terraform module will use that password for the database (see property k8s_db_password_secret
).
Name | Version |
---|---|
archive | n/a |
aws | n/a |
kubernetes | n/a |
random | n/a |
template | n/a |
Name | Description | Type | Default | Required |
---|---|---|---|---|
allowed_s3_buckets | List of S3 Buckets to which Beekeeper will have read-write access. | list(string) |
[] |
no |
apiary_metastore_listener_arn | ARN of the Apiary Metastore Listener. | string |
n/a | yes |
aws_region | AWS region to use for resources. | string |
n/a | yes |
beekeeper_tags | A map of tags to apply to resources. | map(string) |
n/a | yes |
path_cleanup_docker_image | Beekeeper Path Cleanup docker image. | string |
"expediagroup/beekeeper-path-cleanup" |
no |
path_cleanup_docker_image_version | Beekeeper Path Cleanup docker image version. | string |
"latest" |
no |
path_cleanup_ecs_cpu | The amount of CPU used to allocate for the Beekeeper Path Cleanup ECS task. Valid values: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html |
number |
2048 |
no |
path_cleanup_ecs_memory | The amount of memory (in MiB) used to allocate for the Beekeeper Path Cleanup container. Valid values: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html |
number |
4096 |
no |
metadata_cleanup_docker_image | Beekeeper Metadata Cleanup docker image. | string |
"expediagroup/beekeeper-metadata-cleanup" |
no |
metadata_cleanup_docker_image_version | Beekeeper Metadata Cleanup docker image version. | string |
"latest" |
no |
db_backup_retention | The number of days to retain backups for the RDS Beekeeper DB. | number |
10 |
no |
db_backup_window | Preferred backup window for the RDS Beekeeper DB in UTC. | string |
"02:00-03:00" |
no |
db_maintenance_window | Preferred maintenance window for the RDS Beekeeper DB in UTC. | string |
"wed:03:00-wed:04:00" |
no |
db_apply_immediately | Specifies whether any database modifications are applied immediately, or during the next maintenance window. | bool |
false |
no |
db_performance_insights_enabled | Specifies whether Performance Insights are enabled. | bool |
true |
no |
db_password_key | Key to acquire the database password for the strategy specified. | string |
n/a | yes |
db_username | Username for the master DB user. | string |
"beekeeper" |
no |
docker_registry_auth_secret_name | Docker Registry authentication SecretManager secret name. | string |
"" |
no |
path_cleanup_dry_run_enabled | Enable Path Cleanup to perform dry runs of deletions only. | string |
"false" |
no |
metadata_cleanup_dry_run_enabled | Enable Metadata Cleanup to perform dry runs of deletions only. | string |
"false" |
no |
graphite_enabled | Enable to produce Graphite metrics - true or false. | string |
"false" |
no |
graphite_host | Graphite metrics host. | string |
"localhost" |
no |
graphite_port | Graphite port. | number |
2003 |
no |
graphite_prefix | Prefix for Graphite metrics. | string |
"" |
no |
metastore_uri | URI of the metastore where tables to be cleaned-up are located. Required for Beekeeper Metadata Cleanup. | string |
"" |
yes |
instance_name | Beekeeper instance name to identify resources in multi-instance deployments. | string |
"" |
no |
instance_type | Service to run Beekeeper on. Supported services: ecs (default), k8s . Leaving this blank will still deploy auxiliary components (e.g. RDS, SQS etc.). |
string |
"ecs" |
no |
k8s_app_name | Name to give to all Kubernetes resources that are deployed. | string |
"beekeeper" |
no |
k8s_path_cleanup_cpu | Total cpu to allot to the Beekeeper Path Cleanup pod. | string |
"500m" |
no |
k8s_path_cleanup_ingress_host | Ingress host name for Beekeeper Path Cleanup. | string |
"" |
no |
k8s_path_cleanup_ingress_path | Ingress path regex for Beekeeper Path Cleanup. | string |
"" |
no |
k8s_path_cleanup_liveness_delay | Liveness delay (in seconds) for the Beekeeper Path Cleanup service. | number |
60 |
no |
k8s_path_cleanup_memory | Total memory to allot to the Beekeeper Path Cleanup pod. | string |
"2Gi" |
no |
k8s_path_cleanup_port | Internal port that the Beekeeper Path Cleanup service runs on. | number |
8008 |
no |
k8s_metadata_cleanup_cpu | Total cpu to allot to the Beekeeper Metadata Cleanup pod. | string |
"500m" |
no |
k8s_metadata_cleanup_ingress_host | Ingress host name for Beekeeper Metadata Cleanup. | string |
"" |
no |
k8s_metadata_cleanup_ingress_path | Ingress path regex for Beekeeper Metadata Cleanup. | string |
"" |
no |
k8s_metadata_cleanup_liveness_delay | Liveness delay (in seconds) for the Beekeeper Metadata Cleanup service. | number |
60 |
no |
k8s_metadata_cleanup_memory | Total memory to allot to the Beekeeper Metadata Cleanup pod. | string |
"2Gi" |
no |
k8s_metadata_cleanup_port | Internal port that the Beekeeper Metadata Cleanup service runs on. | number |
9008 |
no |
k8s_image_pull_policy | Policy for the Kubernetes orchestrator to pull images. | string |
"Always" |
no |
k8s_ingress_enabled | Boolean flag to determine if we should create an ingress or not. (0 = off, 1 = on). | number |
0 |
no |
k8s_ingress_tls_hosts | List of hosts for TLS configuration of a Kubernetes ingress. | list(string) |
[] |
no |
k8s_ingress_tls_secret | Secret name for TLS configuration of a Kubernetes ingress. | string |
"" |
no |
k8s_kiam_role_arn | KIAM role arn to use for creating a K8S IAM role with the correct assume role permissions. | string |
"" |
no |
k8s_db_password_secret | Name of the Kubernetes secret that would store the db password for beekeeper. | string |
"beekeeper-db-password" |
no |
k8s_namespace | Namespace to deploy all Kubernetes resources to. | string |
"beekeeper" |
no |
k8s_node_affinity | Full node_affinity object as per terraform/Kubernetes docs. | object({}) |
{} |
no |
k8s_node_selector | Full node_selector object as per terraform/Kubernetes docs. | object({}) |
{} |
no |
k8s_node_tolerations | Full k8s_node_tolerations object as per terraform/Kubernetes docs. | object({}) |
{} |
no |
k8s_scheduler_apiary_cpu | Total cpu to allot to the Beekeeper Scheduler Apiary pod. | string |
"500m" |
no |
k8s_scheduler_apiary_ingress_host | Ingress host name for Beekeeper Scheduler Apiary. | string |
"" |
no |
k8s_scheduler_apiary_ingress_path | Ingress path regex for Beekeeper Scheduler Apiary. | string |
"" |
no |
k8s_scheduler_apiary_liveness_delay | Liveness delay (in seconds) for the Beekeeper Scheduling service. | number |
60 |
no |
k8s_scheduler_apiary_memory | Total memory to allot to the Beekeeper Scheduler Apiary pod. | string |
"2Gi" |
no |
k8s_scheduler_apiary_port | Internal port that the Beekeeper Scheduler Apiary service runs on. | number |
8080 |
no |
message_retention_seconds | SQS message retention (s). | number |
604800 |
no |
scheduler_apiary_docker_image | Beekeeper Scheduler Apiary image. | string |
"expediagroup/beekeeper-scheduler-apiary" |
no |
scheduler_apiary_docker_image_version | Beekeeper Scheduler Apiary image version. | string |
"latest" |
no |
scheduler_apiary_ecs_cpu | The amount of CPU used to allocate for the Beekeeper Scheduler Apiary ECS task. Valid values: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html |
number |
2048 |
no |
scheduler_apiary_ecs_memory | The amount of memory (in MiB) used to allocate for the Beekeeper Scheduler Apiary container. Valid values: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html |
number |
4096 |
no |
k8s_api_memory | Total memory to allot to the Beekeeper API pod | string |
"1Gi" |
no |
k8s_api_cpu | Total cpu to allot to the Beekeeper API pod | string |
"500m" |
no |
k8s_beekeeper_api_port | Internal port that the Beekeeper API service runs on | number |
7008 |
yes |
k8s_api_liveness_delay | Liveness delay (in seconds) for the Beekeeper API service | number |
60 |
no |
k8s_api_ingress_host | Ingress host name for Beekeeper API | string |
"" |
no |
k8s_api_ingress_path | Ingress path regex for Beekeeper API | string |
"" |
no |
api_docker_image | Beekeeper API image | string |
"expediagroup/beekeeper-api" |
yes |
api_docker_image_version | Beekeeper API docker image version | string |
"latest" |
no |
prometheus_enabled | Enable to pull metrics using Prometheus - true or false. | string |
"false" |
no |
queue_name | Beekeeper SQS Queue name. | string |
"apiary-beekeeper" |
no |
queue_stale_messages_timeout | Beekeeper SQS Queue Cloudwatch Alert timeout for messages older than this number of seconds. | number |
1209600 |
no |
rds_allocated_storage | RDS allocated storage in GBs. | string |
10 |
no |
rds_engine_version | RDS engine version. | string |
"8.0" |
no |
rds_instance_class | RDS instance class. | string |
"db.t2.micro" |
no |
rds_max_allocated_storage | RDS max allocated storage (autoscaling) in GBs. | string |
100 |
no |
rds_parameter_group_name | RDS parameter group. | string |
"default.mysql8.0" |
no |
rds_storage_type | RDS storage type. | string |
"gp3" |
no |
rds_subnets | Subnets in which to provision Beekeeper RDS DB. | list(string) |
n/a | yes |
receive_wait_time_seconds | SQS receive wait time (s). | number |
20 |
no |
scheduler_apiary_delay_ms | Delay between each cleanup job that is scheduled in milliseconds. | number |
300000 |
no |
slack_channel | Slack channel to which alerts about messages landing on the dead letter queue should be sent. | string |
"" |
no |
slack_lambda_enabled | Boolean flag to determine if Beekeeper should create a Slack notifying Lambda for the dead letter queue. (0 = off, 1 = on). | number |
0 |
no |
slack_webhook_url | Slack URL to which alerts about messages landing on the dead letter queue should be sent. | string |
"" |
no |
subnets | Subnets in which to install Beekeeper. | list(string) |
n/a | yes |
vpc_id | VPC in which to install Beekeeper. | string |
n/a | yes |
No output.
This project is available under the Apache 2.0 License.
Copyright 2019 Expedia, Inc.