documentdb
This component is responsible for provisioning DocumentDB clusters.
Usage
Stack Level: Regional
Here is an example snippet for how to use this component:
components:
terraform:
documentdb:
backend:
s3:
workspace_key_prefix: documentdb
vars:
enabled: true
cluster_size: 3
engine: docdb
engine_version: 3.6.0
cluster_family: docdb3.6
retention_period: 35
Variables
Required Variables
Optional Variables
apply_immediately
(bool
) optionalSpecifies whether any cluster modifications are applied immediately, or during the next maintenance window
Default value:
true
auto_minor_version_upgrade
(bool
) optionalSpecifies whether any minor engine upgrades will be applied automatically to the DB instance during the maintenance window or not
Default value:
true
cluster_family
(string
) optionalThe family of the DocumentDB cluster parameter group. For more details, see https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-parameter-group-create.html
Default value:
"docdb3.6"
cluster_parameters
optionalList of DB parameters to apply
Type:
list(object({
apply_method = string
name = string
value = string
}))Default value:
[ ]
cluster_size
(number
) optionalNumber of DB instances to create in the cluster
Default value:
3
db_port
(number
) optionalDocumentDB port
Default value:
27017
deletion_protection_enabled
(bool
) optionalA value that indicates whether the DB cluster has deletion protection enabled
Default value:
false
dns_gbl_delegated_environment_name
(string
) optionalThe name of the environment where global
dns_delegated
is provisionedDefault value:
"gbl"
eks_security_group_ingress_enabled
(bool
) optionalWhether to add the Security Group managed by the EKS cluster in the same regional stack to the ingress allowlist of the DocumentDB cluster.
Default value:
true
enabled_cloudwatch_logs_exports
(list(string)
) optionalList of log types to export to cloudwatch. The following log types are supported:
audit
,error
,general
,slowquery
Default value:
[ ]
encryption_enabled
(bool
) optionalSpecifies whether the DB cluster is encrypted
Default value:
true
engine
(string
) optionalThe name of the database engine to be used for this DB cluster. Defaults to
docdb
. Valid values:docdb
Default value:
"docdb"
engine_version
(string
) optionalThe version number of the database engine to use
Default value:
"3.6.0"
instance_class
(string
) optionalThe instance class to use. For more details, see https://docs.aws.amazon.com/documentdb/latest/developerguide/db-instance-classes.html#db-instance-class-specs
Default value:
"db.r4.large"
master_username
(string
) optional(Required unless a snapshot_identifier is provided) Username for the master DB user
Default value:
"admin1"
preferred_backup_window
(string
) optionalDaily time range during which the backups happen
Default value:
"07:00-09:00"
preferred_maintenance_window
(string
) optionalThe window to perform maintenance in. Syntax:
ddd:hh24:mi-ddd:hh24:mi
.Default value:
"Mon:22:00-Mon:23:00"
retention_period
(number
) optionalNumber of days to retain backups for
Default value:
5
skip_final_snapshot
(bool
) optionalDetermines whether a final DB snapshot is created before the DB cluster is deleted
Default value:
true
snapshot_identifier
(string
) optionalSpecifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot
Default value:
""
Context Variables
The following variables are defined in the context.tf
file of this module and part of the terraform-null-label pattern.
context.tf
file of this module and part of the terraform-null-label pattern.Outputs
arn
Amazon Resource Name (ARN) of the cluster
cluster_name
Cluster Identifier
endpoint
Endpoint of the DocumentDB cluster
master_host
DB master hostname
master_username
Username for the master DB user
reader_endpoint
A read-only endpoint of the DocumentDB cluster, automatically load-balanced across replicas
replicas_host
DB replicas hostname
security_group_arn
ARN of the DocumentDB cluster Security Group
security_group_id
ID of the DocumentDB cluster Security Group
security_group_name
Name of the DocumentDB cluster Security Group
Dependencies
Requirements
terraform
, version:>= 1.0.0
aws
, version:>= 3.0
random
, version:>= 3.0
Providers
aws
, version:>= 3.0
random
, version:>= 3.0
Modules
Name | Version | Source | Description |
---|---|---|---|
dns_delegated | 1.8.0 | cloudposse/stack-config/yaml//modules/remote-state | n/a |
documentdb_cluster | 0.14.0 | cloudposse/documentdb-cluster/aws | n/a |
eks | 1.8.0 | cloudposse/stack-config/yaml//modules/remote-state | n/a |
iam_roles | latest | ../account-map/modules/iam-roles | n/a |
this | 0.25.0 | cloudposse/label/null | n/a |
vpc | 1.8.0 | cloudposse/stack-config/yaml//modules/remote-state | n/a |
Resources
The following resources are used by this module:
aws_ssm_parameter.master_password
(resource)aws_ssm_parameter.master_username
(resource)random_password.master_password
(resource)
Data Sources
The following data sources are used by this module:
References
- cloudposse/terraform-aws-components - Cloud Posse's upstream component