Skip to content

Commit

Permalink
chore: Enable Network peering acc tests using AWS to run as part of CI (
Browse files Browse the repository at this point in the history
  • Loading branch information
andreaangiolillo committed Dec 28, 2023
1 parent a2844a5 commit 5aaed33
Show file tree
Hide file tree
Showing 8 changed files with 80 additions and 216 deletions.
7 changes: 7 additions & 0 deletions .github/workflows/acceptance-tests.yml
Expand Up @@ -430,7 +430,14 @@ jobs:
MONGODB_ATLAS_BASE_URL: ${{ vars.MONGODB_ATLAS_BASE_URL }}
MONGODB_ATLAS_ENABLE_BETA: ${{ vars.MONGODB_ATLAS_ENABLE_BETA }}
MONGODB_ATLAS_ENDPOINT_ID: ${{ vars.MONGODB_ATLAS_AWS_ENDPOINT_ID_NETWORK }}
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ vars.AWS_REGION }}
AWS_SECURITY_GROUP_1: ${{ vars.AWS_SECURITY_GROUP_1 }}
AWS_SECURITY_GROUP_2: ${{ vars.AWS_SECURITY_GROUP_2 }}
AWS_VPC_CIDR_BLOCK: ${{ vars.AWS_VPC_CIDR_BLOCK }}
AWS_VPC_ID: ${{ vars.AWS_VPC_ID }}
TEST_REGEX: "^TestAccNetwork"
run: make testacc

Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/migration-tests.yml
Expand Up @@ -107,6 +107,14 @@ jobs:
MONGODB_ATLAS_PROJECT_OWNER_ID: ${{ vars.MONGODB_ATLAS_PROJECT_OWNER_ID }}
MONGODB_ATLAS_TEAMS_IDS: ${{ vars.MONGODB_ATLAS_TEAMS_IDS }}
MONGODB_ATLAS_LAST_VERSION: ${{ needs.get-provider-version.outputs.provider_version }}
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ vars.AWS_REGION }}
AWS_SECURITY_GROUP_1: ${{ vars.AWS_SECURITY_GROUP_1 }}
AWS_SECURITY_GROUP_2: ${{ vars.AWS_SECURITY_GROUP_2 }}
AWS_VPC_CIDR_BLOCK: ${{ vars.AWS_VPC_CIDR_BLOCK }}
AWS_VPC_ID: ${{ vars.AWS_VPC_ID }}
TEST_REGEX: "^TestAccMigrationProject"
run: make testacc

Expand Down

This file was deleted.

This file was deleted.

72 changes: 49 additions & 23 deletions internal/service/networkpeering/resource_network_peering_test.go
Expand Up @@ -17,33 +17,46 @@ import (
matlas "go.mongodb.org/atlas/mongodbatlas"
)

func TestAccNetworkRSNetworkPeering_basicAWS(t *testing.T) {
acc.SkipTestExtCred(t)
func TestAccNetworkNetworkPeering_basicAWS(t *testing.T) {
var (
peer matlas.Peer
resourceName = "mongodbatlas_network_peering.test"
projectID = os.Getenv("MONGODB_ATLAS_PROJECT_ID")
vpcID = os.Getenv("AWS_VPC_ID")
vpcCIDRBlock = os.Getenv("AWS_VPC_CIDR_BLOCK")
awsAccountID = os.Getenv("AWS_ACCOUNT_ID")
awsRegion = os.Getenv("AWS_REGION")
providerName = "AWS"
peer matlas.Peer
resourceName = "mongodbatlas_network_peering.test"
dataSourceName = "data.mongodbatlas_network_peering.test"
pluralDataSourceName = "data.mongodbatlas_network_peerings.test"
orgID = os.Getenv("MONGODB_ATLAS_ORG_ID")
vpcID = os.Getenv("AWS_VPC_ID")
vpcCIDRBlock = os.Getenv("AWS_VPC_CIDR_BLOCK")
awsAccountID = os.Getenv("AWS_ACCOUNT_ID")
awsRegion = os.Getenv("AWS_REGION")
providerName = "AWS"
projectName = acctest.RandomWithPrefix("test-acc-project-aws")
)

resource.Test(t, resource.TestCase{
PreCheck: func() { acc.PreCheck(t); acc.PreCheckPeeringEnvAWS(t) },
PreCheck: func() { acc.PreCheckBasic(t); acc.PreCheckPeeringEnvAWS(t) },
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
CheckDestroy: acc.CheckDestroyNetworkPeering,
Steps: []resource.TestStep{
{
Config: testAccMongoDBAtlasNetworkPeeringConfigAWS(projectID, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion),
Config: testAccMongoDBAtlasNetworkPeeringConfigAWS(orgID, projectName, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion),
Check: resource.ComposeTestCheckFunc(
testAccCheckMongoDBAtlasNetworkPeeringExists(resourceName, &peer),
resource.TestCheckResourceAttrSet(resourceName, "project_id"),
resource.TestCheckResourceAttrSet(resourceName, "container_id"),
resource.TestCheckResourceAttr(resourceName, "provider_name", providerName),
resource.TestCheckResourceAttr(resourceName, "vpc_id", vpcID),
resource.TestCheckResourceAttr(resourceName, "aws_account_id", awsAccountID),

resource.TestCheckResourceAttrSet(dataSourceName, "project_id"),
resource.TestCheckResourceAttrSet(dataSourceName, "container_id"),
resource.TestCheckResourceAttr(dataSourceName, "provider_name", providerName),
resource.TestCheckResourceAttr(dataSourceName, "vpc_id", vpcID),
resource.TestCheckResourceAttr(dataSourceName, "aws_account_id", awsAccountID),

resource.TestCheckResourceAttrSet(pluralDataSourceName, "results.#"),
resource.TestCheckResourceAttrSet(pluralDataSourceName, "results.0.provider_name"),
resource.TestCheckResourceAttrSet(pluralDataSourceName, "results.0.vpc_id"),
resource.TestCheckResourceAttrSet(pluralDataSourceName, "results.0.aws_account_id"),
),
},
{
Expand Down Expand Up @@ -240,25 +253,38 @@ func testAccCheckMongoDBAtlasNetworkPeeringExists(resourceName string, peer *mat
}
}

func testAccMongoDBAtlasNetworkPeeringConfigAWS(projectID, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion string) string {
func testAccMongoDBAtlasNetworkPeeringConfigAWS(orgID, projectName, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion string) string {
return fmt.Sprintf(`
resource "mongodbatlas_project" "my_project" {
name = %[2]q
org_id = %[1]q
}
resource "mongodbatlas_network_container" "test" {
project_id = "%[1]s"
project_id = mongodbatlas_project.my_project.id
atlas_cidr_block = "192.168.208.0/21"
provider_name = "%[2]s"
region_name = "%[6]s"
provider_name = "%[3]s"
region_name = "%[7]s"
}
resource "mongodbatlas_network_peering" "test" {
accepter_region_name = lower(replace("%[6]s", "_", "-"))
project_id = "%[1]s"
accepter_region_name = lower(replace("%[7]s", "_", "-"))
project_id = mongodbatlas_project.my_project.id
container_id = mongodbatlas_network_container.test.id
provider_name = "%[2]s"
route_table_cidr_block = "%[5]s"
vpc_id = "%[3]s"
aws_account_id = "%[4]s"
provider_name = "%[3]s"
route_table_cidr_block = "%[6]s"
vpc_id = "%[4]s"
aws_account_id = "%[5]s"
}
data "mongodbatlas_network_peering" "test" {
project_id = mongodbatlas_project.my_project.id
peering_id = mongodbatlas_network_peering.test.peer_id
}
data "mongodbatlas_network_peerings" "test" {
project_id = mongodbatlas_network_peering.test.project_id
}
`, projectID, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion)
`, orgID, projectName, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion)
}

func testAccMongoDBAtlasNetworkPeeringConfigAzure(projectID, providerName, directoryID, subscriptionID, resourceGroupName, vNetName string) string {
Expand Down
Expand Up @@ -83,38 +83,37 @@ func TestAccMigrationProjectDSProjectIPAccessList_SettingCIDRBlock(t *testing.T)
}

func TestAccMigrationProjectDSProjectIPAccessList_SettingAWSSecurityGroup(t *testing.T) {
acc.SkipTestExtCred(t)
projectName := acctest.RandomWithPrefix("test-acc-migration-project-aws")
dataSourceName := "data.mongodbatlas_project_ip_access_list.test"
vpcID := os.Getenv("AWS_VPC_ID")
vpcCIDRBlock := os.Getenv("AWS_VPC_CIDR_BLOCK")
awsAccountID := os.Getenv("AWS_ACCOUNT_ID")
awsRegion := os.Getenv("AWS_REGION")
providerName := "AWS"

projectID := os.Getenv("MONGODB_ATLAS_PROJECT_ID")
awsSGroup := os.Getenv("AWS_SECURITY_GROUP_ID")
orgID := os.Getenv("MONGODB_ATLAS_ORG_ID")
awsSGroup := os.Getenv("AWS_SECURITY_GROUP_1")
comment := fmt.Sprintf("TestAcc for awsSecurityGroup (%s)", awsSGroup)

resource.Test(t, resource.TestCase{
PreCheck: func() { acc.PreCheck(t) },
PreCheck: func() { acc.PreCheckBasic(t) },
Steps: []resource.TestStep{
{
ExternalProviders: mig.ExternalProviders(),
Config: testAccDataMongoDBAtlasProjectIPAccessListConfigSettingAWSSecurityGroup(projectID, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion, awsSGroup, comment),
Config: acc.ConfigProjectIPAccessListWithAWSSecurityGroup(orgID, projectName, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion, awsSGroup, comment),
Check: resource.ComposeTestCheckFunc(
acc.CheckProjectIPAccessListExists(dataSourceName),
resource.TestCheckResourceAttrSet(dataSourceName, "project_id"),
resource.TestCheckResourceAttrSet(dataSourceName, "aws_security_group"),
resource.TestCheckResourceAttrSet(dataSourceName, "comment"),

resource.TestCheckResourceAttr(dataSourceName, "project_id", projectID),
resource.TestCheckResourceAttr(dataSourceName, "aws_security_group", awsSGroup),
resource.TestCheckResourceAttr(dataSourceName, "comment", comment),
),
},
{
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
Config: testAccDataMongoDBAtlasProjectIPAccessListConfigSettingAWSSecurityGroup(projectID, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion, awsSGroup, comment),
Config: acc.ConfigProjectIPAccessListWithAWSSecurityGroup(orgID, projectName, providerName, vpcID, awsAccountID, vpcCIDRBlock, awsRegion, awsSGroup, comment),
ConfigPlanChecks: resource.ConfigPlanChecks{
PostApplyPreRefresh: []plancheck.PlanCheck{
acc.DebugPlan(),
Expand Down

0 comments on commit 5aaed33

Please sign in to comment.