Module library

Redshift

Terraform module to create AWS Redshift resources

Inputs

40 / 81
allow_version_upgradeoptionalbool

If `true`, major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster. Default is `true`

Defaultnull
apply_immediatelyoptionalbool

Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is `false`

Defaultnull
authentication_profilesoptionalmap(object({ name = optional(string) # Will fall back to key if not set content …

Map of authentication profiles to create

Default{}
automated_snapshot_retention_periodoptionalnumber

The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with create-cluster-snapshot. Default is 1

Defaultnull
availability_zoneoptionalstring

The EC2 Availability Zone (AZ) in which you want Amazon Redshift to provision the cluster. Can only be changed if `availability_zone_relocation_enabled` is `true`

Defaultnull
availability_zone_relocation_enabledoptionalbool

If `true`, the cluster can be relocated to another availability zone, either automatically by AWS or when requested. Default is `false`. Available for use on clusters from the RA3 instance family

Defaultnull
cloudwatch_log_group_kms_key_idoptionalstring

The ARN of the KMS Key to use when encrypting log data

Defaultnull
cloudwatch_log_group_retention_in_daysoptionalnumber

The number of days to retain CloudWatch logs for the redshift cluster

Default0
cloudwatch_log_group_skip_destroyoptionalbool

Set to true if you do not wish the log group (and any logs it may contain) to be deleted at destroy time, and instead just remove the log group from the Terraform state

Defaultnull
cloudwatch_log_group_tagsoptionalmap(string)

Additional tags to add to cloudwatch log groups created

Default{}
cluster_identifieroptionalstring

The Cluster Identifier. Must be a lower case string

Default""
cluster_timeoutsoptionalobject({ create = optional(string) update = optional(string) delete = optional(s…

Create, update, and delete timeout configurations for the cluster

Defaultnull
cluster_versionoptionalstring

The version of the Amazon Redshift engine software that you want to deploy on the cluster. The version selected runs on all the nodes in the cluster

Defaultnull
createoptionalbool

Determines whether to create Redshift cluster and resources (affects all resources)

Defaulttrue
create_cloudwatch_log_groupoptionalbool

Determines whether a CloudWatch log group is created for each `var.logging.log_exports`

Defaultfalse
create_parameter_groupoptionalbool

Determines whether to create a parameter group or use existing

Defaulttrue
create_scheduled_action_iam_roleoptionalbool

Determines whether a scheduled action IAM role is created

Defaultfalse
create_security_groupoptionalbool

Determines whether to create security group for Redshift cluster

Defaulttrue
create_subnet_groupoptionalbool

Determines whether to create a subnet group or use existing

Defaulttrue
database_nameoptionalstring

The name of the first database to be created when the cluster is created. If you do not provide a name, Amazon Redshift will create a default database called `dev`

Defaultnull
default_iam_role_arnoptionalstring

The Amazon Resource Name (ARN) for the IAM role that was set as default for the cluster when the cluster was created

Defaultnull
elastic_ipoptionalstring

The Elastic IP (EIP) address for the cluster

Defaultnull
encryptedoptionalbool

If `true`, the data in the cluster is encrypted at rest

Defaultnull
endpoint_accessoptionalmap(object({ name = optional(string) # Will fall back to key if not set resource…

Map of endpoint access (managed VPC endpoint) definitions to create

Default{}
enhanced_vpc_routingoptionalbool

If `true`, enhanced VPC routing is enabled

Defaultnull
final_snapshot_identifieroptionalstring

The identifier of the final snapshot that is to be created immediately before deleting the cluster. If this parameter is provided, `skip_final_snapshot` must be `false`

Defaultnull
iam_role_arnsoptionallist(string)

A list of IAM Role ARNs to associate with the cluster. A Maximum of 10 can be associated to the cluster at any time

Default[]
iam_role_descriptionoptionalstring

Description of the scheduled action IAM role

Defaultnull
iam_role_nameoptionalstring

Name to use on scheduled action IAM role created

Defaultnull
iam_role_pathoptionalstring

Scheduled action IAM role path

Defaultnull
iam_role_permissions_boundaryoptionalstring

ARN of the policy that is used to set the permissions boundary for the scheduled action IAM role

Defaultnull
iam_role_tagsoptionalmap(string)

A map of additional tags to add to the scheduled action IAM role created

Default{}
iam_role_use_name_prefixoptionalstring

Determines whether scheduled action the IAM role name (`iam_role_name`) is used as a prefix

Defaulttrue
kms_key_arnoptionalstring

The ARN for the KMS encryption key. When specifying `kms_key_arn`, `encrypted` needs to be set to `true`

Defaultnull
loggingoptionalobject({ bucket_name = optional(string) log_destination_type = optional(string) …

Logging configuration for the cluster

Defaultnull
maintenance_track_nameoptionalstring

The name of the maintenance track for the restored cluster. When you take a snapshot, the snapshot inherits the MaintenanceTrack value from the cluster. The snapshot might be on a different track than the cluster that was the source for the snapshot. Default value is `current`

Defaultnull
manage_master_passwordoptionalbool

Whether to use AWS SecretsManager to manage the cluster admin credentials. Conflicts with `master_password_wo`. One of `master_password_wo` or `manage_master_password` is required unless `snapshot_identifier` is provided

Defaulttrue
manage_master_password_rotationoptionalbool

Whether to manage the master user password rotation. Setting this value to false after previously having been set to true will disable automatic rotation

Defaultfalse
manual_snapshot_retention_periodoptionalnumber

The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. Valid values are between `-1` and `3653`. Default value is `-1`

Defaultnull
master_password_rotate_immediatelyoptionalbool

Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window

Defaultnull

All 81 are optional — the module deploys with none of them set. Showing 40, so the site stays a static download — the remaining 41 are in the source.

Outputs

38
authentication_profiles

Map of authentication profiles created and their associated attributes

cluster_arn

The Redshift cluster ARN

cluster_automated_snapshot_retention_period

The backup retention period

cluster_availability_zone

The availability zone of the Cluster

cluster_database_name

The name of the default database in the Cluster

cluster_dns_name

The DNS name of the cluster

cluster_encrypted

Whether the data in the cluster is encrypted

cluster_endpoint

The connection endpoint

cluster_hostname

The hostname of the Redshift cluster

cluster_id

The Redshift cluster ID

cluster_identifier

The Redshift cluster identifier

cluster_master_password

The Redshift cluster master password

cluster_master_username

The Redshift cluster master username

cluster_namespace_arn

The namespace Amazon Resource Name (ARN) of the cluster

cluster_node_type

The type of nodes in the cluster

cluster_nodes

The nodes in the cluster. Each node is a map of the following attributes: `node_role`, `private_ip_address`, and `public_ip_address`

cluster_parameter_group_name

The name of the parameter group to be associated with this cluster

cluster_port

The port the cluster responds on

cluster_preferred_maintenance_window

The backup window

cluster_public_key

The public key for the cluster

cluster_revision_number

The specific revision number of the database in the cluster

cluster_secretsmanager_secret_rotation_enabled

Specifies whether automatic rotation is enabled for the secret

cluster_subnet_group_name

The name of a cluster subnet group to be associated with this cluster

cluster_type

The Redshift cluster type

cluster_version

The version of Redshift engine software

cluster_vpc_security_group_ids

The VPC security group ids associated with the cluster

endpoint_access

A map of access endpoints created and their attributes

master_password_secret_arn

ARN of managed master password secret

parameter_group_arn

Amazon Resource Name (ARN) of the parameter group created

parameter_group_id

The name of the Redshift parameter group created

scheduled_action_iam_role_arn

Scheduled actions IAM role ARN

scheduled_action_iam_role_name

Scheduled actions IAM role name

scheduled_action_iam_role_unique_id

Stable and unique string identifying the scheduled action IAM role

scheduled_actions

A map of maps containing scheduled action details

snapshot_schedule_arn

Amazon Resource Name (ARN) of the Redshift Snapshot Schedule

subnet_group_arn

Amazon Resource Name (ARN) of the Redshift subnet group created

subnet_group_id

The ID of Redshift Subnet group created

usage_limits

Map of usage limits created and their associated attributes

What the agent wires into the next module. An edge on the architecture diagram is one of these consumed by something else.