Skip to content

feat: support for new ICD hosting model #439

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jul 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ To attach access management tags to resources in this module, you need the follo
| <a name="input_member_cpu_count"></a> [member\_cpu\_count](#input\_member\_cpu\_count) | Allocated dedicated CPU per member. For shared CPU, set to 0. For more information, see https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-resources-scaling | `number` | `0` | no |
| <a name="input_member_disk_mb"></a> [member\_disk\_mb](#input\_member\_disk\_mb) | Allocated disk per member. For more information, see https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-resources-scaling | `number` | `5120` | no |
| <a name="input_member_host_flavor"></a> [member\_host\_flavor](#input\_member\_host\_flavor) | Allocated host flavor per member. For more information, see https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/database#host_flavor | `string` | `null` | no |
| <a name="input_member_memory_mb"></a> [member\_memory\_mb](#input\_member\_memory\_mb) | Allocated memory per-member. See the following doc for supported values: https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-resources-scaling | `number` | `1024` | no |
| <a name="input_member_memory_mb"></a> [member\_memory\_mb](#input\_member\_memory\_mb) | Allocated memory per-member. See the following doc for supported values: https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-resources-scaling | `number` | `4096` | no |
| <a name="input_members"></a> [members](#input\_members) | Allocated number of members. Members can be scaled up but not down. | `number` | `2` | no |
| <a name="input_name"></a> [name](#input\_name) | The name to give the Postgresql instance. | `string` | n/a | yes |
| <a name="input_pg_version"></a> [pg\_version](#input\_pg\_version) | Version of the PostgreSQL instance to provision. If no value is passed, the current preferred version of IBM Cloud Databases is used. | `string` | `null` | no |
Expand Down
34 changes: 18 additions & 16 deletions examples/backup/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,15 @@ module "resource_group" {
}

module "postgresql_db" {
count = var.postgresql_db_backup_crn != null ? 0 : 1
source = "../.."
resource_group_id = module.resource_group.resource_group_id
name = "${var.prefix}-postgres"
pg_version = var.pg_version
region = var.region
resource_tags = var.resource_tags
access_tags = var.access_tags
count = var.postgresql_db_backup_crn != null ? 0 : 1
source = "../.."
resource_group_id = module.resource_group.resource_group_id
name = "${var.prefix}-postgres"
pg_version = var.pg_version
region = var.region
resource_tags = var.resource_tags
access_tags = var.access_tags
member_host_flavor = "multitenant"
}

data "ibm_database_backups" "backup_database" {
Expand All @@ -28,12 +29,13 @@ data "ibm_database_backups" "backup_database" {

# New postgresql instance pointing to the backup instance
module "restored_postgresql_db" {
source = "../.."
resource_group_id = module.resource_group.resource_group_id
name = "${var.prefix}-postgres-restored"
pg_version = var.pg_version
region = var.region
resource_tags = var.resource_tags
access_tags = var.access_tags
backup_crn = var.postgresql_db_backup_crn == null ? data.ibm_database_backups.backup_database[0].backups[0].backup_id : var.postgresql_db_backup_crn
source = "../.."
resource_group_id = module.resource_group.resource_group_id
name = "${var.prefix}-postgres-restored"
pg_version = var.pg_version
region = var.region
resource_tags = var.resource_tags
access_tags = var.access_tags
member_host_flavor = "multitenant"
backup_crn = var.postgresql_db_backup_crn == null ? data.ibm_database_backups.backup_database[0].backups[0].backup_id : var.postgresql_db_backup_crn
}
1 change: 1 addition & 0 deletions examples/complete/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ module "postgresql_db" {
resource_tags = var.resource_tags
service_credential_names = var.service_credential_names
access_tags = var.access_tags
member_host_flavor = "multitenant"
# Example of setting configuration - none of the below is mandatory - those settings are set in this example for illustation purpose and ensure path is exercised in automated test using this example.
configuration = {
shared_buffers = 32000
Expand Down
1 change: 1 addition & 0 deletions examples/fscloud/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ module "postgresql_db" {
service_credential_names = var.service_credential_names
access_tags = var.access_tags
auto_scaling = var.auto_scaling
member_host_flavor = "b3c.4x16.encrypted"
cbr_rules = [
{
description = "${var.prefix}-postgres access only from vpc"
Expand Down
28 changes: 15 additions & 13 deletions examples/pitr/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,19 @@ module "resource_group" {

# New ICD postgresql database instance pointing to a PITR time
module "postgresql_db_pitr" {
source = "../.."
resource_group_id = module.resource_group.resource_group_id
name = "${var.prefix}-postgres-pitr"
region = var.region
resource_tags = var.resource_tags
access_tags = var.access_tags
member_memory_mb = 3072
member_disk_mb = 15360
member_cpu_count = 9
members = var.members
pg_version = var.pg_version
pitr_id = var.pitr_id
pitr_time = var.pitr_time == "" ? " " : var.pitr_time
source = "../.."
resource_group_id = module.resource_group.resource_group_id
name = "${var.prefix}-postgres-pitr"
region = var.region
resource_tags = var.resource_tags
access_tags = var.access_tags
member_memory_mb = 3072
member_disk_mb = 15360
member_cpu_count = 9
member_host_flavor = "multitenant"
members = var.members
pg_version = var.pg_version
pitr_id = var.pitr_id
pitr_time = var.pitr_time == "" ? " " : var.pitr_time

}
6 changes: 3 additions & 3 deletions main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ resource "ibm_database" "postgresql_db" {
dynamic "group" {
for_each = local.host_flavor_set && var.member_host_flavor != "multitenant" ? [1] : []
content {
group_id = "member" # Only member type is allowed for postgresql
group_id = "member" # Only member type is allowed for IBM Cloud Databases
host_flavor {
id = var.member_host_flavor
}
Expand All @@ -108,7 +108,7 @@ resource "ibm_database" "postgresql_db" {
dynamic "group" {
for_each = local.host_flavor_set && var.member_host_flavor == "multitenant" ? [1] : []
content {
group_id = "member" # Only member type is allowed for postgresql
group_id = "member" # Only member type is allowed for IBM Cloud Databases
host_flavor {
id = var.member_host_flavor
}
Expand All @@ -134,7 +134,7 @@ resource "ibm_database" "postgresql_db" {
dynamic "group" {
for_each = local.host_flavor_set ? [] : [1]
content {
group_id = "member" # Only member type is allowed for postgresql
group_id = "member" # Only member type is allowed for IBM Cloud Databases
memory {
allocation_mb = var.member_memory_mb
}
Expand Down
2 changes: 1 addition & 1 deletion modules/fscloud/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ No resources.
| <a name="input_member_cpu_count"></a> [member\_cpu\_count](#input\_member\_cpu\_count) | Allocated dedicated CPU per member. For shared CPU, set to 0. For more information, see https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-resources-scaling | `number` | `3` | no |
| <a name="input_member_disk_mb"></a> [member\_disk\_mb](#input\_member\_disk\_mb) | Allocated disk per member. For more information, see https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-resources-scaling | `number` | `5120` | no |
| <a name="input_member_host_flavor"></a> [member\_host\_flavor](#input\_member\_host\_flavor) | Allocated host flavor per member. For more information, see https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/database#host_flavor | `string` | `null` | no |
| <a name="input_member_memory_mb"></a> [member\_memory\_mb](#input\_member\_memory\_mb) | Allocated memory per member. For more information, see https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-resources-scaling | `number` | `1024` | no |
| <a name="input_member_memory_mb"></a> [member\_memory\_mb](#input\_member\_memory\_mb) | Allocated memory per member. For more information, see https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-resources-scaling | `number` | `4096` | no |
| <a name="input_members"></a> [members](#input\_members) | Allocated number of members. Members can be scaled up but not down. | `number` | `2` | no |
| <a name="input_name"></a> [name](#input\_name) | The name to give the Postgresql instance. | `string` | n/a | yes |
| <a name="input_pg_version"></a> [pg\_version](#input\_pg\_version) | Version of the PostgreSQL instance. If no value is passed, the current preferred version of IBM Cloud Databases is used. | `string` | `null` | no |
Expand Down
2 changes: 1 addition & 1 deletion modules/fscloud/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ variable "region" {
variable "member_memory_mb" {
type = number
description = "Allocated memory per member. For more information, see https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-resources-scaling"
default = 1024
default = 4096
}

variable "member_disk_mb" {
Expand Down
2 changes: 1 addition & 1 deletion variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ variable "region" {
variable "member_memory_mb" {
type = number
description = "Allocated memory per-member. See the following doc for supported values: https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-resources-scaling"
default = 1024
default = 4096
# Validation is done in the Terraform plan phase by the IBM provider, so no need to add extra validation here.
}

Expand Down