Files
infra-provisioner/templates/rds-tf/main.tf
2020-07-31 13:18:13 +05:30

127 lines
4.8 KiB
HCL

terraform {
backend "s3" {
bucket = "navi-bank-terraform-command-state"
region = "ap-south-1"
key = "rds"
workspace_key_prefix = "rds-states/{{ .ExtraResources.Database.InstanceName }}"
profile = "cmd"
acl = "bucket-owner-full-control"
}
}
module "rds" {
source = "git::ssh://git@github.cmd.navi-tech.in/navi-infra/rds.git"
environment = {{ .ExtraResources.Environment | quote }}
instance_name = {{ .ExtraResources.Database.InstanceName | quote }}
password = {{ .ExtraResources.Database.Password | quote }}
user = {{ .ExtraResources.Database.User | quote }}
name = {{ .Deployment.Name | quote }}
monitoring_password = {{ .ExtraResources.Database.MonitoringPassword | quote }}
monitoring_user = {{ .ExtraResources.Database.MonitoringUser | quote }}
databases = {{ .ExtraResources.Database.DbNames | mustToJson }}
database_tags = {
Team = {{ .Team.Name | quote }}
medici-app = "{{ .Deployment.Name }}-{{ .Deployment.NameSuffix }}"
medici-owner = {{ .Team.Name | quote }}
medici-environment = {{ .ExtraResources.Environment | quote }}
}
team = {{ .Team.Name | quote }}
{{- if .ExtraResources.Database.SizeInGb }}
size = {{ .ExtraResources.Database.SizeInGb }}
{{- else }}
size = 50
{{- end }}
{{- if .ExtraResources.Database.DbExtensions }}
db_extensions = {{ .ExtraResources.Database.DbExtensions | mustToJson }}
{{- end }}
{{- if .ExtraResources.Database.ReadonlyUser }}
readonly_user = {{ .ExtraResources.Database.ReadonlyUser | mustToJson }}
{{- end }}
{{- if .ExtraResources.Database.ReadonlyUser }}
readonly_password = {{ .ExtraResources.Database.ReadonlyPassword | mustToJson }}
{{- end }}
{{- if .ExtraResources.Database.PerformanceInsightsEnabled }}
performance_insights_enabled = {{ .ExtraResources.Database.PerformanceInsightsEnabled | mustToJson }}
{{- end }}
{{- if .ExtraResources.Database.AwsInstanceClass }}
aws_instance_class = {{ .ExtraResources.Database.AwsInstanceClass | quote }}
{{- end }}
{{- if .ExtraResources.Database.BackupDisabled }}
backup_retention_period = 0
{{- else }}
backup_retention_period = 7
{{- end }}
{{- if not .ExtraResources.Database.MultiAZDisabled }}
multi_az = true
{{- end }}
{{- if .ExtraResources.Database.PsqlFamily }}
psql_family = {{ .ExtraResources.Database.PsqlFamily | quote }}
{{- end }}
{{- if .ExtraResources.Database.PsqlEngineVersion }}
psql_engine_version = {{ .ExtraResources.Database.PsqlEngineVersion | quote }}
{{- end }}
{{- if .ExtraResources.Database.ReadReplica }}
read_replica_instance_class = {{ .ExtraResources.Database.ReadReplica.AwsInstanceClass | mustToJson }}
read_replica_performance_insights_enabled = {{ .ExtraResources.Database.ReadReplica.PerformanceInsightsEnabled | mustToJson }}
{{- end }}
{{- if .ExtraResources.Database.ApplyImmediately }}
apply_immediately = {{ .ExtraResources.Database.ApplyImmediately | mustToJson }}
{{- end }}
{{- if .ExtraResources.Database.RdsAlertThresholds }}
{{- if .ExtraResources.Database.RdsAlertThresholds.CpuUtilization }}
cpu_utilization_alarm_threshold = {{ .ExtraResources.Database.RdsAlertThresholds.CpuUtilization | quote }}
{{- end }}
{{- if .ExtraResources.Database.RdsAlertThresholds.CpuCreditBalance }}
cpucredit_balance_alarm_threshold = {{ .ExtraResources.Database.RdsAlertThresholds.CpuCreditBalance | quote }}
{{- end }}
{{- if .ExtraResources.Database.RdsAlertThresholds.BurstBalance }}
burst_balance_alarm_threshold = {{ .ExtraResources.Database.RdsAlertThresholds.BurstBalance | quote }}
{{- end }}
{{- if .ExtraResources.Database.RdsAlertThresholds.DBConnections }}
db_connections_alarm_threshold = {{ .ExtraResources.Database.RdsAlertThresholds.DBConnections | quote }}
{{- end }}
{{- if .ExtraResources.Database.RdsAlertThresholds.QueueDepth }}
queue_depth_alarm_threshold = {{ .ExtraResources.Database.RdsAlertThresholds.QueueDepth | quote }}
{{- end }}
{{- if .ExtraResources.Database.RdsAlertThresholds.FreeStorageSpacePercent }}
free_storage_space_percent = {{ .ExtraResources.Database.RdsAlertThresholds.FreeStorageSpacePercent | mustToJson }}
{{- end }}
{{- if .ExtraResources.Database.RdsAlertThresholds.FreeMemoryTooLowInBytes }}
freeable_memory_threshold = {{ .ExtraResources.Database.RdsAlertThresholds.FreeMemoryTooLowInBytes | mustToJson }}
{{- end }}
{{- if .ExtraResources.Database.RdsAlertThresholds.ReadLatency }}
read_latency_alarm_threshold = {{ .ExtraResources.Database.RdsAlertThresholds.ReadLatency | quote }}
{{- end }}
{{- if .ExtraResources.Database.RdsAlertThresholds.WriteLatency }}
write_latency_alarm_threshold = {{ .ExtraResources.Database.RdsAlertThresholds.WriteLatency | quote }}
{{- end }}
{{- end }}
}