Skip to content

It is a provider to get the amount of memory for each instance class of RDS.

Notifications You must be signed in to change notification settings

winebarrel/terraform-provider-rds

Repository files navigation

terraform-provider-rds

CI

It is a provider to get the amount of memory for each instance class of RDS.

Usage

terraform {
  required_providers {
    rds = {
      source = "winebarrel/rds"
    }
  }
}

provider "rds" {
}

data "rds_db_instance_memory" "main" {
  for_each       = { for i in data.rds_db_instances.main.instances : i.name => i.instance_class if i.tags["Env"] == "production" }
  instance_class = each.value
}

data "rds_db_instance_memory_map" "main" {
}

data "rds_db_instances" "main" {
  # filter {
  #   name   = "db-instance-id"
  #   values = ["database-1"]
  # }
}

output "rds" {
  description = "rds"
  value       = data.rds_db_instance_memory.main
}

output "memory_map" {
  description = "rds"
  value       = data.rds_db_instance_memory_map.main.memory_by_instance_class
}
$ terraform apply

...

Outputs:

rds = {
  "database-1" = {
    "id" = "terraform-20220716115109174100000002"
    "instance_class" = "db.t3.micro"
    "memory" = 1
    "tags" = {
      "Env" = "production"
    }
  }
  ...
}
memory_map = tomap({
  "db.m1.large" = 7.5
  "db.m1.medium" = 3.75
  "db.m1.small" = 1.7
  ...
}

Run locally for development

cp rds.tf.sample rds.tf
make tf-plan