Skip to content

Commit 9b18479

Browse files
Gaurav SinghjiaqchenO
authored andcommitted
Added - Support for ADB-S: Allow Public Access to Databases on Private Endpoint
1 parent a05fc12 commit 9b18479

File tree

2 files changed

+44
-63
lines changed

2 files changed

+44
-63
lines changed

examples/database/adb/autonomous_database.tf

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,31 @@ resource "oci_database_autonomous_database" "test_autonomous_database_bck_ret_da
129129
is_free_tier = "false"
130130
}
131131

132+
resource "oci_database_autonomous_database" "autonomous_database_private_ip_with_acls" {
133+
#Required
134+
admin_password = random_string.autonomous_database_admin_password.result
135+
compartment_id = var.compartment_ocid
136+
compute_count = "2.0"
137+
compute_model = "ECPU"
138+
data_storage_size_in_tbs = "1"
139+
db_name = "adbdbpeacl"
140+
141+
#Optional
142+
db_version = data.oci_database_autonomous_db_versions.test_autonomous_db_versions.autonomous_db_versions[0].version
143+
db_workload = var.autonomous_database_db_workload
144+
display_name = "example_autonomous_database"
145+
freeform_tags = var.autonomous_database_freeform_tags
146+
is_auto_scaling_enabled = "true"
147+
is_auto_scaling_for_storage_enabled = "true"
148+
license_model = var.autonomous_database_license_model
149+
is_preview_version_with_service_terms_accepted = "false"
150+
character_set = "AL32UTF8"
151+
ncharacter_set = "AL16UTF16"
152+
subnet_id = oci_core_subnet.test_subnet.id
153+
nsg_ids = ["test-bn-nsg-id-1"]
154+
whitelisted_ips = ["1.1.1.28"]
155+
}
156+
132157
resource "oci_database_autonomous_database" "test_autonomous_database_db_tools" {
133158
admin_password = random_string.autonomous_database_admin_password.result
134159
compartment_id = var.compartment_ocid

internal/integrationtest/database_autonomous_database_resource_test.go

Lines changed: 19 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -211,13 +211,12 @@ var (
211211

212212
autonomousDatabasePEWithPublicAccessRepresentation = acctest.RepresentationCopyWithRemovedProperties(
213213
acctest.RepresentationCopyWithNewProperties(
214-
DatabaseAutonomousDatabaseRepresentation,
214+
autonomousDatabaseRepresentationECPU,
215215
map[string]interface{}{
216-
"nsg_ids": acctest.Representation{RepType: acctest.Optional, Create: []string{`${oci_core_network_security_group.test_network_security_group.id}`}, Update: []string{`${oci_core_network_security_group.test_network_security_group.id}`, `${oci_core_network_security_group.test_network_security_group2.id}`}},
217-
"private_endpoint_label": acctest.Representation{RepType: acctest.Optional, Create: `xlx4fc9y`},
218-
"private_endpoint_ip": acctest.Representation{RepType: acctest.Optional, Create: `10.0.0.97`},
216+
"nsg_ids": acctest.Representation{RepType: acctest.Optional, Create: []string{`${oci_core_network_security_group.test_network_security_group.id}`}},
217+
"private_endpoint_label": acctest.Representation{RepType: acctest.Optional, Create: `pePublicLabel`},
219218
"subnet_id": acctest.Representation{RepType: acctest.Optional, Create: `${oci_core_subnet.test_subnet.id}`},
220-
"whitelisted_ips": acctest.Representation{RepType: acctest.Optional, Create: []string{`1.1.1.1/28`}},
219+
"whitelisted_ips": acctest.Representation{RepType: acctest.Optional, Create: []string{`1.1.1.1/28`}, Update: []string{`1.1.1.1/28`, `1.1.1.1/29`}},
221220
}), []string{"scheduled_operations"})
222221

223222
AutonomousDatabasePrivateEndpointResourceDependencies = acctest.GenerateResourceFromRepresentationMap("oci_core_subnet", "test_subnet", acctest.Required, acctest.Create, CoreSubnetRepresentation) +
@@ -1967,7 +1966,8 @@ func TestResourceDatabaseAutonomousDatabaseResource_privateEndpointWithPublicAcc
19671966
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
19681967
resource.TestCheckResourceAttr(resourceName, "admin_password", "BEstrO0ng_#11"),
19691968
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
1970-
resource.TestCheckResourceAttr(resourceName, "cpu_core_count", "1"),
1969+
resource.TestCheckResourceAttr(resourceName, "cpu_core_count", "0"),
1970+
resource.TestCheckResourceAttr(resourceName, "compute_count", "4"),
19711971
resource.TestCheckResourceAttr(resourceName, "data_storage_size_in_tbs", "1"),
19721972
resource.TestCheckResourceAttr(resourceName, "db_name", adbName),
19731973
resource.TestCheckResourceAttr(resourceName, "db_workload", "OLTP"),
@@ -1978,10 +1978,10 @@ func TestResourceDatabaseAutonomousDatabaseResource_privateEndpointWithPublicAcc
19781978
resource.TestCheckResourceAttr(resourceName, "is_dedicated", "false"),
19791979
resource.TestCheckResourceAttr(resourceName, "is_preview_version_with_service_terms_accepted", "false"),
19801980
resource.TestCheckResourceAttr(resourceName, "license_model", "LICENSE_INCLUDED"),
1981-
resource.TestCheckResourceAttr(resourceName, "private_endpoint_ip", "10.0.0.97"),
1982-
resource.TestCheckResourceAttr(resourceName, "private_endpoint_label", "xlx4fc9y"),
1983-
resource.TestCheckResourceAttr(resourceName, "whitelisted_ips", "1.1.1.1/28"),
1981+
resource.TestCheckResourceAttr(resourceName, "private_endpoint_label", "pePublicLabel"),
1982+
resource.TestCheckResourceAttr(resourceName, "whitelisted_ips.#", "1"),
19841983
resource.TestCheckResourceAttr(resourceName, "nsg_ids.#", "1"),
1984+
resource.TestCheckResourceAttr(resourceName, "public_connection_urls.#", "1"),
19851985
resource.TestCheckResourceAttrSet(resourceName, "state"),
19861986
resource.TestCheckResourceAttrSet(resourceName, "subnet_id"),
19871987
resource.TestCheckResourceAttr(resourceName, "is_mtls_connection_required", "false"),
@@ -1994,76 +1994,32 @@ func TestResourceDatabaseAutonomousDatabaseResource_privateEndpointWithPublicAcc
19941994
),
19951995
},
19961996

1997-
//2. modify acl's of pe database
1997+
//1. modify acl's of pe database
19981998
{
19991999
Config: config + compartmentIdVariableStr + AutonomousDatabasePrivateEndpointResourceDependencies +
20002000
acctest.GenerateResourceFromRepresentationMap("oci_database_autonomous_database", "test_autonomous_database", acctest.Optional, acctest.Update,
2001-
acctest.RepresentationCopyWithNewProperties(autonomousDatabasePrivateEndpointRepresentation, map[string]interface{}{
2002-
"whitelisted_ips": acctest.Representation{RepType: acctest.Optional, Update: []string{"1.1.1.29"}},
2003-
})),
2001+
acctest.RepresentationCopyWithRemovedProperties(acctest.RepresentationCopyWithNewProperties(autonomousDatabasePEWithPublicAccessRepresentation, map[string]interface{}{
2002+
"whitelisted_ips": acctest.Representation{RepType: acctest.Optional, Update: []string{"1.1.1.28", "1.1.1.29"}},
2003+
}), []string{"admin_password", "display_name", "freeform_tags", "db_tools_details", "is_mtls_connection_required"})),
20042004
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
2005-
resource.TestCheckResourceAttr(resourceName, "admin_password", "BEstrO0ng_#12"),
20062005
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
2007-
resource.TestCheckResourceAttr(resourceName, "cpu_core_count", "1"),
2006+
resource.TestCheckResourceAttr(resourceName, "cpu_core_count", "0"),
2007+
resource.TestCheckResourceAttr(resourceName, "compute_count", "4"),
20082008
resource.TestCheckResourceAttr(resourceName, "data_storage_size_in_tbs", "1"),
20092009
resource.TestCheckResourceAttr(resourceName, "db_name", adbName),
20102010
resource.TestCheckResourceAttr(resourceName, "db_workload", "OLTP"),
2011-
resource.TestCheckResourceAttr(resourceName, "display_name", "displayName2"),
20122011
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
20132012
resource.TestCheckResourceAttrSet(resourceName, "id"),
20142013
resource.TestCheckResourceAttr(resourceName, "is_auto_scaling_enabled", "false"),
20152014
resource.TestCheckResourceAttr(resourceName, "is_dedicated", "false"),
20162015
resource.TestCheckResourceAttr(resourceName, "is_preview_version_with_service_terms_accepted", "false"),
20172016
resource.TestCheckResourceAttr(resourceName, "license_model", "LICENSE_INCLUDED"),
20182017
resource.TestCheckResourceAttr(resourceName, "nsg_ids.#", "1"),
2019-
resource.TestCheckResourceAttr(resourceName, "private_endpoint_ip", "10.0.0.97"),
2020-
resource.TestCheckResourceAttr(resourceName, "private_endpoint_label", "xlx4fc9y"),
2021-
resource.TestCheckResourceAttr(resourceName, "whitelisted_ips", "1.1.1.1/29"),
2022-
resource.TestCheckResourceAttrSet(resourceName, "state"),
2023-
resource.TestCheckResourceAttr(resourceName, "is_mtls_connection_required", "true"),
2024-
resource.TestCheckResourceAttr(resourceName, "connection_strings.0.profiles.#", "3"),
2025-
2026-
func(s *terraform.State) (err error) {
2027-
resId2, err = acctest.FromInstanceState(s, resourceName, "id")
2028-
if resId != resId2 {
2029-
return fmt.Errorf("Resource recreated when it was supposed to be updated.")
2030-
}
2031-
return err
2032-
},
2033-
),
2034-
},
2035-
2036-
//3. change network access to public
2037-
{
2038-
Config: config + compartmentIdVariableStr + AutonomousDatabasePrivateEndpointResourceDependencies +
2039-
acctest.GenerateResourceFromRepresentationMap("oci_database_autonomous_database", "test_autonomous_database", acctest.Optional, acctest.Update,
2040-
acctest.RepresentationCopyWithNewProperties(acctest.RepresentationCopyWithRemovedProperties(autonomousDatabasePEWithPublicAccessRepresentation, []string{"nsg_ids", "private_endpoint_label", "subnet_id"}), map[string]interface{}{
2041-
"nsg_ids": acctest.Representation{RepType: acctest.Optional, Create: []string{`${oci_core_network_security_group.test_network_security_group.id}`}, Update: []string{}},
2042-
"private_endpoint_label": acctest.Representation{RepType: acctest.Optional, Create: `null`},
2043-
"private_endpoint_ip": acctest.Representation{RepType: acctest.Optional, Create: `null`},
2044-
"subnet_id": acctest.Representation{RepType: acctest.Optional, Create: `null`},
2045-
"db_version": acctest.Representation{RepType: acctest.Optional, Create: `19c`, Update: `19c`},
2046-
})),
2047-
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
2048-
resource.TestCheckResourceAttr(resourceName, "admin_password", "BEstrO0ng_#12"),
2049-
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
2050-
resource.TestCheckResourceAttr(resourceName, "cpu_core_count", "1"),
2051-
resource.TestCheckResourceAttr(resourceName, "data_storage_size_in_tbs", "1"),
2052-
resource.TestCheckResourceAttr(resourceName, "db_name", adbName),
2053-
resource.TestCheckResourceAttr(resourceName, "db_workload", "OLTP"),
2054-
resource.TestCheckResourceAttr(resourceName, "display_name", "displayName2"),
2055-
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
2056-
resource.TestCheckResourceAttrSet(resourceName, "id"),
2057-
resource.TestCheckResourceAttr(resourceName, "is_auto_scaling_enabled", "false"),
2058-
resource.TestCheckResourceAttr(resourceName, "is_dedicated", "false"),
2059-
resource.TestCheckResourceAttr(resourceName, "is_preview_version_with_service_terms_accepted", "false"),
2060-
resource.TestCheckResourceAttr(resourceName, "license_model", "LICENSE_INCLUDED"),
2061-
resource.TestCheckResourceAttr(resourceName, "nsg_ids.#", "0"),
2062-
resource.TestCheckResourceAttr(resourceName, "private_endpoint_ip", "null"),
2063-
resource.TestCheckResourceAttr(resourceName, "private_endpoint_label", "null"),
2018+
resource.TestCheckResourceAttr(resourceName, "private_endpoint_label", "pePublicLabel"),
2019+
resource.TestCheckResourceAttr(resourceName, "whitelisted_ips.#", "2"),
2020+
resource.TestCheckResourceAttr(resourceName, "public_connection_urls.#", "1"),
20642021
resource.TestCheckResourceAttrSet(resourceName, "state"),
2065-
resource.TestCheckResourceAttr(resourceName, "is_mtls_connection_required", "true"),
2066-
resource.TestCheckResourceAttr(resourceName, "connection_strings.0.profiles.#", "3"),
2022+
resource.TestCheckResourceAttr(resourceName, "connection_strings.0.profiles.#", "6"),
20672023

20682024
func(s *terraform.State) (err error) {
20692025
resId2, err = acctest.FromInstanceState(s, resourceName, "id")

0 commit comments

Comments
 (0)