diff --git a/examples/backup/main.tf b/examples/backup/main.tf index 737afd2f..48756b08 100644 --- a/examples/backup/main.tf +++ b/examples/backup/main.tf @@ -15,7 +15,7 @@ module "postgresql_db" { source = "../.." resource_group_id = module.resource_group.resource_group_id name = "${var.prefix}-postgres" - postgresql_version = var.pg_version + postgresql_version = var.postgresql_version region = var.region tags = var.resource_tags access_tags = var.access_tags @@ -35,7 +35,7 @@ module "restored_icd_postgresql" { # version = "X.Y.Z" # Replace "X.Y.Z" with a release version to lock into a specific release resource_group_id = module.resource_group.resource_group_id name = "${var.prefix}-postgres-restored" - postgresql_version = var.pg_version + postgresql_version = var.postgresql_version region = var.region tags = var.resource_tags access_tags = var.access_tags diff --git a/examples/backup/variables.tf b/examples/backup/variables.tf index fbaac999..affdb951 100644 --- a/examples/backup/variables.tf +++ b/examples/backup/variables.tf @@ -14,7 +14,7 @@ variable "prefix" { description = "Prefix to append to all resources created by this example" } -variable "pg_version" { +variable "postgresql_version" { description = "Version of the postgresql instance. If no value passed, the current ICD preferred version is used." type = string default = null diff --git a/examples/complete/main.tf b/examples/complete/main.tf index b7d942d8..102f595a 100644 --- a/examples/complete/main.tf +++ b/examples/complete/main.tf @@ -109,7 +109,7 @@ module "icd_postgresql" { resource_group_id = module.resource_group.resource_group_id name = "${var.prefix}-postgres" region = var.region - postgresql_version = var.pg_version + postgresql_version = var.postgresql_version admin_pass = var.admin_pass users = var.users # Example of how to use different KMS keys for data and backups diff --git a/examples/complete/variables.tf b/examples/complete/variables.tf index babfe6ce..ccc7393c 100644 --- a/examples/complete/variables.tf +++ b/examples/complete/variables.tf @@ -32,7 +32,7 @@ variable "access_tags" { default = [] } -variable "pg_version" { +variable "postgresql_version" { description = "Version of the PostgreSQL instance. If no value is passed, the current preferred version of IBM Cloud Databases is used." type = string default = null diff --git a/examples/fscloud/main.tf b/examples/fscloud/main.tf index f31e741d..4cd42594 100644 --- a/examples/fscloud/main.tf +++ b/examples/fscloud/main.tf @@ -61,7 +61,7 @@ module "postgresql_db" { resource_group_id = module.resource_group.resource_group_id name = "${var.prefix}-postgres" region = var.region - pg_version = var.pg_version + postgresql_version = var.postgresql_version kms_key_crn = var.kms_key_crn backup_encryption_key_crn = var.backup_encryption_key_crn backup_crn = var.backup_crn diff --git a/examples/fscloud/variables.tf b/examples/fscloud/variables.tf index e65037b6..18af5c1d 100644 --- a/examples/fscloud/variables.tf +++ b/examples/fscloud/variables.tf @@ -32,7 +32,7 @@ variable "access_tags" { default = [] } -variable "pg_version" { +variable "postgresql_version" { description = "Version of the PostgreSQL instance. If no value is passed, the current preferred version of IBM Cloud Databases is used." type = string default = null diff --git a/examples/pitr/main.tf b/examples/pitr/main.tf index 0646e9a1..f8742f40 100644 --- a/examples/pitr/main.tf +++ b/examples/pitr/main.tf @@ -26,7 +26,7 @@ module "postgresql_db_pitr" { cpu_count = 0 member_host_flavor = "multitenant" members = var.members - postgresql_version = var.pg_version + postgresql_version = var.postgresql_version pitr_id = var.pitr_id pitr_time = var.pitr_time } diff --git a/examples/pitr/variables.tf b/examples/pitr/variables.tf index 1ca31f4d..8a8f2bbd 100644 --- a/examples/pitr/variables.tf +++ b/examples/pitr/variables.tf @@ -20,7 +20,7 @@ variable "resource_group" { default = null } -variable "pg_version" { +variable "postgresql_version" { description = "Version of the postgresql instance. If no value passed, the current ICD preferred version is used." type = string default = null diff --git a/modules/fscloud/README.md b/modules/fscloud/README.md index eb0d855e..9e9c9f71 100644 --- a/modules/fscloud/README.md +++ b/modules/fscloud/README.md @@ -42,7 +42,7 @@ No resources. | [member\_memory\_mb](#input\_member\_memory\_mb) | Allocated memory per member. [Learn more](https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-resources-scaling) | `number` | `4096` | no | | [members](#input\_members) | Allocated number of members. Members can be scaled up but not down. | `number` | `2` | no | | [name](#input\_name) | The name to give the Postgresql instance. | `string` | n/a | yes | -| [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 | +| [postgresql\_version](#input\_postgresql\_version) | Version of the PostgreSQL instance. If no value is passed, the current preferred version of IBM Cloud Databases is used. | `string` | `null` | no | | [region](#input\_region) | The region where you want to deploy your instance. Must be the same region as the Hyper Protect Crypto Services instance. | `string` | `"us-south"` | no | | [remote\_leader\_crn](#input\_remote\_leader\_crn) | A CRN of the leader database to make the replica(read-only) deployment. The leader database is created by a database deployment with the same service ID. A read-only replica is set up to replicate all of your data from the leader deployment to the replica deployment by using asynchronous replication. For more information, see https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-read-only-replicas | `string` | `null` | no | | [resource\_group\_id](#input\_resource\_group\_id) | The resource group ID where the PostgreSQL instance will be created. | `string` | n/a | yes | diff --git a/modules/fscloud/main.tf b/modules/fscloud/main.tf index fc3ef21f..fd88a682 100644 --- a/modules/fscloud/main.tf +++ b/modules/fscloud/main.tf @@ -6,7 +6,7 @@ module "postgresql_db" { remote_leader_crn = var.remote_leader_crn skip_iam_authorization_policy = var.skip_iam_authorization_policy service_endpoints = "private" - postgresql_version = var.pg_version + postgresql_version = var.postgresql_version use_ibm_owned_encryption_key = var.use_ibm_owned_encryption_key use_same_kms_key_for_backups = var.use_same_kms_key_for_backups use_default_backup_encryption_key = var.use_default_backup_encryption_key diff --git a/modules/fscloud/variables.tf b/modules/fscloud/variables.tf index 14ed0a4d..5cfc79f8 100644 --- a/modules/fscloud/variables.tf +++ b/modules/fscloud/variables.tf @@ -12,7 +12,7 @@ variable "name" { description = "The name to give the Postgresql instance." } -variable "pg_version" { +variable "postgresql_version" { type = string description = "Version of the PostgreSQL instance. If no value is passed, the current preferred version of IBM Cloud Databases is used." default = null diff --git a/tests/other_test.go b/tests/other_test.go index b5e54140..fc69907e 100644 --- a/tests/other_test.go +++ b/tests/other_test.go @@ -19,7 +19,7 @@ func TestRunRestoredDBExample(t *testing.T) { BestRegionYAMLPath: regionSelectionPath, ResourceGroup: resourceGroup, TerraformVars: map[string]interface{}{ - "pg_version": "13", + "postgresql_version": "13", }, CloudInfoService: sharedInfoSvc, }) @@ -39,10 +39,10 @@ func TestRunPointInTimeRecoveryDBExample(t *testing.T) { ResourceGroup: resourceGroup, Region: fmt.Sprint(permanentResources["postgresqlPITRRegion"]), TerraformVars: map[string]interface{}{ - "pitr_id": permanentResources["postgresqlPITRCrn"], - "pitr_time": "", // if blank string is passed, earliest_point_in_time_recovery_time will be used to restore - "pg_version": permanentResources["postgresqlPITRVersion"], - "members": "3", // Lock members to 3 as the permanent postgres instances has 3 members + "pitr_id": permanentResources["postgresqlPITRCrn"], + "pitr_time": "", // if blank string is passed, earliest_point_in_time_recovery_time will be used to restore + "postgresql_version": permanentResources["postgresqlPITRVersion"], + "members": "3", // Lock members to 3 as the permanent postgres instances has 3 members }, CloudInfoService: sharedInfoSvc, }) @@ -59,7 +59,7 @@ func testPlanICDVersions(t *testing.T, version string) { Testing: t, TerraformDir: "examples/basic", TerraformVars: map[string]interface{}{ - "pg_version": version, + "postgresql_version": version, }, CloudInfoService: sharedInfoSvc, }) @@ -88,7 +88,7 @@ func TestRunCompleteExample(t *testing.T) { BestRegionYAMLPath: regionSelectionPath, ResourceGroup: resourceGroup, TerraformVars: map[string]interface{}{ - "pg_version": "13", + "postgresql_version": "13", }, CloudInfoService: sharedInfoSvc, }) diff --git a/tests/pr_test.go b/tests/pr_test.go index 5b7eaabc..57dd5a77 100644 --- a/tests/pr_test.go +++ b/tests/pr_test.go @@ -129,30 +129,35 @@ func TestRunSecurityEnforcedSolutionSchematics(t *testing.T) { assert.Nil(t, err, "This should not have errored") } -func TestRunSecurityEnforcedUpgradeSolution(t *testing.T) { +func TestRunSecurityEnforcedUpgradeSolutionSchematics(t *testing.T) { t.Parallel() - options := testhelper.TestOptionsDefault(&testhelper.TestOptions{ - Testing: t, - TerraformDir: fullyConfigurableSolutionTerraformDir, - Region: "us-south", - Prefix: "pg-fc-upg", - ResourceGroup: resourceGroup, + options := testschematic.TestSchematicOptionsDefault(&testschematic.TestSchematicOptions{ + Testing: t, + Region: "us-south", + Prefix: "pg-se-upg", + ResourceGroup: resourceGroup, + TarIncludePatterns: []string{ + "*.tf", + fullyConfigurableSolutionTerraformDir + "/*.tf", + securityEnforcedSolutionTerraformDir + "/*.tf", + }, + TemplateFolder: securityEnforcedSolutionTerraformDir, + Tags: []string{"pg-se-upg"}, + DeleteWorkspaceOnFail: false, + WaitJobCompleteMinutes: 120, CheckApplyResultForUpgrade: true, }) - options.TerraformVars = map[string]interface{}{ - "prefix": options.Prefix, - "access_tags": permanentResources["accessTags"], - "existing_kms_instance_crn": permanentResources["hpcs_south_crn"], - "existing_resource_group_name": resourceGroup, + options.TerraformVars = []testschematic.TestSchematicTerraformVar{ + {Name: "ibmcloud_api_key", Value: options.RequiredEnvironmentVars["TF_VAR_ibmcloud_api_key"], DataType: "string", Secure: true}, + {Name: "prefix", Value: options.Prefix, DataType: "string"}, + {Name: "existing_resource_group_name", Value: resourceGroup, DataType: "string"}, + {Name: "existing_kms_instance_crn", Value: permanentResources["hpcs_south_crn"], DataType: "string"}, } - output, err := options.RunTestUpgrade() - if !options.UpgradeTestSkipped { - assert.Nil(t, err, "This should not have errored") - assert.NotNil(t, output, "Expected some output") - } + err := options.RunSchematicUpgradeTest() + assert.Nil(t, err, "This should not have errored") } func TestPlanValidation(t *testing.T) {