feat(loadbalancer): add security_group_id and disable_security_group_assignment field (#986)
This commit is contained in:
parent
65c6106ea9
commit
b1e97e92f9
9 changed files with 350 additions and 62 deletions
|
|
@ -29,17 +29,18 @@ var resourceMinConfig string
|
|||
var resourceMaxConfig string
|
||||
|
||||
var testConfigVarsMin = config.Variables{
|
||||
"project_id": config.StringVariable(testutil.ProjectId),
|
||||
"plan_id": config.StringVariable("p10"),
|
||||
"network_name": config.StringVariable(fmt.Sprintf("tf-acc-n%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))),
|
||||
"server_name": config.StringVariable(fmt.Sprintf("tf-acc-s%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))),
|
||||
"loadbalancer_name": config.StringVariable(fmt.Sprintf("tf-acc-l%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))),
|
||||
"target_pool_name": config.StringVariable("example-target-pool"),
|
||||
"target_port": config.StringVariable("5432"),
|
||||
"target_display_name": config.StringVariable("example-target"),
|
||||
"listener_port": config.StringVariable("5432"),
|
||||
"listener_protocol": config.StringVariable("PROTOCOL_TLS_PASSTHROUGH"),
|
||||
"network_role": config.StringVariable("ROLE_LISTENERS_AND_TARGETS"),
|
||||
"project_id": config.StringVariable(testutil.ProjectId),
|
||||
"plan_id": config.StringVariable("p10"),
|
||||
"disable_security_group_assignment": config.BoolVariable(false),
|
||||
"network_name": config.StringVariable(fmt.Sprintf("tf-acc-n%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))),
|
||||
"server_name": config.StringVariable(fmt.Sprintf("tf-acc-s%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))),
|
||||
"loadbalancer_name": config.StringVariable(fmt.Sprintf("tf-acc-l%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))),
|
||||
"target_pool_name": config.StringVariable("example-target-pool"),
|
||||
"target_port": config.StringVariable("5432"),
|
||||
"target_display_name": config.StringVariable("example-target"),
|
||||
"listener_port": config.StringVariable("5432"),
|
||||
"listener_protocol": config.StringVariable("PROTOCOL_TLS_PASSTHROUGH"),
|
||||
"network_role": config.StringVariable("ROLE_LISTENERS_AND_TARGETS"),
|
||||
|
||||
"obs_display_name": config.StringVariable("obs-user"),
|
||||
"obs_username": config.StringVariable("obs-username"),
|
||||
|
|
@ -47,17 +48,18 @@ var testConfigVarsMin = config.Variables{
|
|||
}
|
||||
|
||||
var testConfigVarsMax = config.Variables{
|
||||
"project_id": config.StringVariable(testutil.ProjectId),
|
||||
"plan_id": config.StringVariable("p10"),
|
||||
"network_name": config.StringVariable(fmt.Sprintf("tf-acc-n%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))),
|
||||
"server_name": config.StringVariable(fmt.Sprintf("tf-acc-s%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))),
|
||||
"loadbalancer_name": config.StringVariable(fmt.Sprintf("tf-acc-l%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))),
|
||||
"target_pool_name": config.StringVariable("example-target-pool"),
|
||||
"target_port": config.StringVariable("5432"),
|
||||
"target_display_name": config.StringVariable("example-target"),
|
||||
"listener_port": config.StringVariable("5432"),
|
||||
"listener_protocol": config.StringVariable("PROTOCOL_TLS_PASSTHROUGH"),
|
||||
"network_role": config.StringVariable("ROLE_LISTENERS_AND_TARGETS"),
|
||||
"project_id": config.StringVariable(testutil.ProjectId),
|
||||
"plan_id": config.StringVariable("p10"),
|
||||
"disable_security_group_assignment": config.BoolVariable(true),
|
||||
"network_name": config.StringVariable(fmt.Sprintf("tf-acc-n%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))),
|
||||
"server_name": config.StringVariable(fmt.Sprintf("tf-acc-s%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))),
|
||||
"loadbalancer_name": config.StringVariable(fmt.Sprintf("tf-acc-l%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))),
|
||||
"target_pool_name": config.StringVariable("example-target-pool"),
|
||||
"target_port": config.StringVariable("5432"),
|
||||
"target_display_name": config.StringVariable("example-target"),
|
||||
"listener_port": config.StringVariable("5432"),
|
||||
"listener_protocol": config.StringVariable("PROTOCOL_TLS_PASSTHROUGH"),
|
||||
"network_role": config.StringVariable("ROLE_LISTENERS_AND_TARGETS"),
|
||||
|
||||
"listener_display_name": config.StringVariable("example-listener"),
|
||||
"listener_server_name_indicators": config.StringVariable("acc-test.runs.onstackit.cloud"),
|
||||
|
|
@ -118,10 +120,12 @@ func TestAccLoadBalancerResourceMin(t *testing.T) {
|
|||
resource.TestCheckResourceAttrSet("stackit_loadbalancer.loadbalancer", "networks.0.network_id"),
|
||||
resource.TestCheckResourceAttr("stackit_loadbalancer.loadbalancer", "networks.0.role", testutil.ConvertConfigVariable(testConfigVarsMin["network_role"])),
|
||||
resource.TestCheckResourceAttrSet("stackit_loadbalancer.loadbalancer", "external_address"),
|
||||
resource.TestCheckResourceAttr("stackit_loadbalancer.loadbalancer", "disable_security_group_assignment", "false"),
|
||||
resource.TestCheckNoResourceAttr("stackit_loadbalancer.loadbalancer", "options.observability.logs.credentials_ref"),
|
||||
resource.TestCheckNoResourceAttr("stackit_loadbalancer.loadbalancer", "options.observability.logs.push_url"),
|
||||
resource.TestCheckNoResourceAttr("stackit_loadbalancer.loadbalancer", "options.observability.metrics.credentials_ref"),
|
||||
resource.TestCheckNoResourceAttr("stackit_loadbalancer.loadbalancer", "options.observability.metrics.push_url"),
|
||||
resource.TestCheckResourceAttrSet("stackit_loadbalancer.loadbalancer", "security_group_id"),
|
||||
|
||||
// Loadbalancer observability credentials resource
|
||||
resource.TestCheckResourceAttr("stackit_loadbalancer_observability_credential.obs_credential", "project_id", testutil.ConvertConfigVariable(testConfigVarsMin["project_id"])),
|
||||
|
|
@ -168,10 +172,16 @@ func TestAccLoadBalancerResourceMin(t *testing.T) {
|
|||
resource.TestCheckResourceAttrSet("data.stackit_loadbalancer.loadbalancer", "networks.0.network_id"),
|
||||
resource.TestCheckResourceAttr("data.stackit_loadbalancer.loadbalancer", "networks.0.role", testutil.ConvertConfigVariable(testConfigVarsMin["network_role"])),
|
||||
resource.TestCheckResourceAttrSet("data.stackit_loadbalancer.loadbalancer", "external_address"),
|
||||
resource.TestCheckResourceAttr("data.stackit_loadbalancer.loadbalancer", "disable_security_group_assignment", "false"),
|
||||
resource.TestCheckNoResourceAttr("data.stackit_loadbalancer.loadbalancer", "options.observability.logs.credentials_ref"),
|
||||
resource.TestCheckNoResourceAttr("data.stackit_loadbalancer.loadbalancer", "options.observability.logs.push_url"),
|
||||
resource.TestCheckNoResourceAttr("data.stackit_loadbalancer.loadbalancer", "options.observability.metrics.credentials_ref"),
|
||||
resource.TestCheckNoResourceAttr("data.stackit_loadbalancer.loadbalancer", "options.observability.metrics.push_url"),
|
||||
resource.TestCheckResourceAttrSet("data.stackit_loadbalancer.loadbalancer", "security_group_id"),
|
||||
resource.TestCheckResourceAttrPair(
|
||||
"stackit_loadbalancer.loadbalancer", "security_group_id",
|
||||
"data.stackit_loadbalancer.loadbalancer", "security_group_id",
|
||||
),
|
||||
)},
|
||||
// Import
|
||||
{
|
||||
|
|
@ -186,8 +196,11 @@ func TestAccLoadBalancerResourceMin(t *testing.T) {
|
|||
if !ok {
|
||||
return "", fmt.Errorf("couldn't find attribute name")
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s,%s,%s", testutil.ProjectId, testutil.Region, name), nil
|
||||
region, ok := r.Primary.Attributes["region"]
|
||||
if !ok {
|
||||
return "", fmt.Errorf("couldn't find attribute region")
|
||||
}
|
||||
return fmt.Sprintf("%s,%s,%s", testutil.ProjectId, region, name), nil
|
||||
},
|
||||
ImportState: true,
|
||||
ImportStateVerify: true,
|
||||
|
|
@ -234,7 +247,8 @@ func TestAccLoadBalancerResourceMax(t *testing.T) {
|
|||
resource.TestCheckResourceAttrSet("stackit_loadbalancer.loadbalancer", "networks.0.network_id"),
|
||||
resource.TestCheckResourceAttr("stackit_loadbalancer.loadbalancer", "networks.0.role", testutil.ConvertConfigVariable(testConfigVarsMax["network_role"])),
|
||||
resource.TestCheckResourceAttrSet("stackit_loadbalancer.loadbalancer", "external_address"),
|
||||
|
||||
resource.TestCheckResourceAttr("stackit_loadbalancer.loadbalancer", "disable_security_group_assignment", testutil.ConvertConfigVariable(testConfigVarsMax["disable_security_group_assignment"])),
|
||||
resource.TestCheckResourceAttrSet("stackit_loadbalancer.loadbalancer", "security_group_id"),
|
||||
resource.TestCheckResourceAttr("stackit_loadbalancer.loadbalancer", "target_pools.0.active_health_check.healthy_threshold", testutil.ConvertConfigVariable(testConfigVarsMax["healthy_threshold"])),
|
||||
resource.TestCheckResourceAttr("stackit_loadbalancer.loadbalancer", "target_pools.0.active_health_check.interval", testutil.ConvertConfigVariable(testConfigVarsMax["health_interval"])),
|
||||
resource.TestCheckResourceAttr("stackit_loadbalancer.loadbalancer", "target_pools.0.active_health_check.interval_jitter", testutil.ConvertConfigVariable(testConfigVarsMax["health_interval_jitter"])),
|
||||
|
|
@ -304,22 +318,25 @@ func TestAccLoadBalancerResourceMax(t *testing.T) {
|
|||
resource.TestCheckResourceAttrSet("data.stackit_loadbalancer.loadbalancer", "networks.0.network_id"),
|
||||
resource.TestCheckResourceAttr("data.stackit_loadbalancer.loadbalancer", "networks.0.role", testutil.ConvertConfigVariable(testConfigVarsMax["network_role"])),
|
||||
resource.TestCheckResourceAttrSet("data.stackit_loadbalancer.loadbalancer", "external_address"),
|
||||
|
||||
resource.TestCheckResourceAttr("data.stackit_loadbalancer.loadbalancer", "disable_security_group_assignment", testutil.ConvertConfigVariable(testConfigVarsMax["disable_security_group_assignment"])),
|
||||
resource.TestCheckResourceAttrSet("stackit_loadbalancer.loadbalancer", "security_group_id"),
|
||||
resource.TestCheckResourceAttr("data.stackit_loadbalancer.loadbalancer", "target_pools.0.active_health_check.healthy_threshold", testutil.ConvertConfigVariable(testConfigVarsMax["healthy_threshold"])),
|
||||
resource.TestCheckResourceAttr("data.stackit_loadbalancer.loadbalancer", "target_pools.0.active_health_check.interval", testutil.ConvertConfigVariable(testConfigVarsMax["health_interval"])),
|
||||
resource.TestCheckResourceAttr("data.stackit_loadbalancer.loadbalancer", "target_pools.0.active_health_check.interval_jitter", testutil.ConvertConfigVariable(testConfigVarsMax["health_interval_jitter"])),
|
||||
resource.TestCheckResourceAttr("data.stackit_loadbalancer.loadbalancer", "target_pools.0.active_health_check.timeout", testutil.ConvertConfigVariable(testConfigVarsMax["health_timeout"])),
|
||||
resource.TestCheckResourceAttr("data.stackit_loadbalancer.loadbalancer", "target_pools.0.active_health_check.unhealthy_threshold", testutil.ConvertConfigVariable(testConfigVarsMax["unhealthy_threshold"])),
|
||||
|
||||
resource.TestCheckResourceAttr("data.stackit_loadbalancer.loadbalancer", "target_pools.0.session_persistence.use_source_ip_address", testutil.ConvertConfigVariable(testConfigVarsMax["use_source_ip_address"])),
|
||||
resource.TestCheckResourceAttr("data.stackit_loadbalancer.loadbalancer", "options.acl.0", testutil.ConvertConfigVariable(testConfigVarsMax["acl"])),
|
||||
|
||||
resource.TestCheckResourceAttrSet("data.stackit_loadbalancer.loadbalancer", "options.observability.logs.credentials_ref"),
|
||||
resource.TestCheckResourceAttrPair("stackit_loadbalancer_observability_credential.logs", "credentials_ref", "data.stackit_loadbalancer.loadbalancer", "options.observability.logs.credentials_ref"),
|
||||
resource.TestCheckResourceAttr("data.stackit_loadbalancer.loadbalancer", "options.observability.logs.push_url", testutil.ConvertConfigVariable(testConfigVarsMax["observability_logs_push_url"])),
|
||||
resource.TestCheckResourceAttrSet("data.stackit_loadbalancer.loadbalancer", "options.observability.metrics.credentials_ref"),
|
||||
resource.TestCheckResourceAttrPair("stackit_loadbalancer_observability_credential.metrics", "credentials_ref", "data.stackit_loadbalancer.loadbalancer", "options.observability.metrics.credentials_ref"),
|
||||
resource.TestCheckResourceAttr("data.stackit_loadbalancer.loadbalancer", "options.observability.metrics.push_url", testutil.ConvertConfigVariable(testConfigVarsMax["observability_metrics_push_url"])),
|
||||
resource.TestCheckResourceAttrPair(
|
||||
"stackit_loadbalancer.loadbalancer", "security_group_id",
|
||||
"data.stackit_loadbalancer.loadbalancer", "security_group_id",
|
||||
),
|
||||
)},
|
||||
// Import
|
||||
{
|
||||
|
|
@ -334,8 +351,11 @@ func TestAccLoadBalancerResourceMax(t *testing.T) {
|
|||
if !ok {
|
||||
return "", fmt.Errorf("couldn't find attribute name")
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s,%s,%s", testutil.ProjectId, testutil.Region, name), nil
|
||||
region, ok := r.Primary.Attributes["region"]
|
||||
if !ok {
|
||||
return "", fmt.Errorf("couldn't find attribute region")
|
||||
}
|
||||
return fmt.Sprintf("%s,%s,%s", testutil.ProjectId, region, name), nil
|
||||
},
|
||||
ImportState: true,
|
||||
ImportStateVerify: true,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue