Skip to content
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

New resource: azurerm_custom_ip_prefix #21322

Merged
merged 50 commits into from
Jul 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
6eb3640
New Resource: azurerm_custom_ip_prefix
manicminer Apr 6, 2023
674f0be
azurerm_custom_ip_prefix tests
manicminer Apr 6, 2023
6bdf655
azurerm_custom_ip_prefix docs
manicminer Apr 6, 2023
441714f
Clarify lack of v6 support
manicminer Apr 6, 2023
a9ff18f
Support decommissioning/recommissioning to toggle regional/global com…
manicminer Apr 6, 2023
21f1026
Tests to cover regional/internet recommissioning (e.g. promotion)
manicminer Apr 6, 2023
2c4213d
Reduce read timeout to 5 mins
manicminer Apr 6, 2023
8006cfe
goimports
manicminer Apr 6, 2023
52ea7ca
Apply suggestions from code review
manicminer Apr 11, 2023
af059a6
Apply suggestions from code review
manicminer Apr 11, 2023
1dd1c9d
check for deadline and tweak polling intervals
manicminer Apr 11, 2023
12aabec
custom_ip_prefix: warning note in docs about decommissioning a produc…
manicminer Apr 11, 2023
b5ad57c
fix fudged autocomplete
manicminer Apr 11, 2023
931a2e0
custom_ip_prefix: do not set noInternetAdvertise when provisioning, c…
manicminer Apr 12, 2023
f8f9411
custom_ip_prefix: support multiple final states per path step
manicminer Apr 12, 2023
8990081
custom_ip_prefix: preliminary v6 support, improve import check
manicminer Apr 20, 2023
306d9ae
Support custom timeouts for acceptance tests in TeamCity
manicminer Apr 24, 2023
432d1c7
custom_ip_prefix: testing ipv6 support
manicminer May 3, 2023
925a61e
azurerm_custom_ip_prefix: fix v6 test resource naming
manicminer May 10, 2023
f29d470
azurerm_custom_ip_prefix: support v6 child prefixes, tidy up state logic
manicminer May 10, 2023
9fb6c10
azurerm_custom_ip_prefix: fix crash, test fixes
manicminer May 10, 2023
3d4ac88
azurerm_custom_ip_prefix: ID casing/naming fix
manicminer May 11, 2023
64622f6
azurerm_custom_ip_prefix: full tests for v4 and v6
manicminer May 11, 2023
9ff0246
azurerm_custom_ip_prefix: update docs
manicminer May 11, 2023
d862745
azurerm_public_ip_prefix: fix up field name references
manicminer May 11, 2023
460df7e
custom_ip_prefix: run v4 and v6 tests in parallel
manicminer May 17, 2023
cd06d90
custom_ip_prefix: fix v6 test checks
manicminer May 22, 2023
00a0f2e
Merge branch 'main' into r/custom-ip-prefix
manicminer May 22, 2023
c062402
Merge branch 'main' into r/custom-ip-prefix
manicminer May 23, 2023
0903858
Merge branch 'main' into r/custom-ip-prefix
manicminer Jun 27, 2023
5c8c430
azurerm_custom_ip_prefix: slim down tests to avoid over-stressing the…
manicminer Jun 27, 2023
5d4c96d
azurerm_custom_ip_prefix: omit `internet_advertising_disabled` for v6…
manicminer Jun 27, 2023
6406cc0
azurerm_custom_ip_prefix: try to workaround flaky API response when d…
manicminer Jun 28, 2023
280d996
azurerm_custom_ip_prefix: increase continuous occurence for commissio…
manicminer Jun 28, 2023
b9cc35f
azurerm_custom_ip_prefix: retry up to twice if the commissionedState …
manicminer Jul 3, 2023
3507ac4
azurerm_custom_ip_prefix: pause for 5 minutes after changing commissi…
manicminer Jul 3, 2023
a64f68f
azurerm_custom_ip_prefix: add some debug messages for better visibility
manicminer Jul 3, 2023
a635561
azurerm_custom_ip_prefix: more debug logging
manicminer Jul 3, 2023
5fb5c91
Merge branch 'main' into r/custom-ip-prefix
manicminer Jul 10, 2023
8ba87d2
azurerm_custom_ip_prefix: nil checking
manicminer Jul 10, 2023
9663007
azurerm_custom_ip_prefix: increase delay to 10min before checking com…
manicminer Jul 10, 2023
16ccfe1
azurerm_custom_ip_prefix: copyright headers
manicminer Jul 10, 2023
ae0b32c
azurerm_custom_ip_prefix: polling bugfix
manicminer Jul 11, 2023
5ff8958
azurerm_custom_ip_prefix: no need to decommission when changing from …
manicminer Jul 11, 2023
77b20ee
azurerm_custom_ip_prefix: fix return value for waitForCommissionedSta…
manicminer Jul 19, 2023
9863219
Merge branch 'main' into r/custom-ip-prefix
manicminer Jul 19, 2023
c2cd45e
Merge branch 'main' into r/custom-ip-prefix
manicminer Jul 31, 2023
3ab06ce
Merge branch 'main' into r/custom-ip-prefix
manicminer Jul 31, 2023
9a9aedd
regenerate triage workflow
manicminer Jul 31, 2023
dfa7d62
Apply suggestions from code review
manicminer Jul 31, 2023
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 .github/labeler-issue-triage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ service/netapp:
- '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_netapp_((.|\n)*)###'

service/network:
- '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_(application_gateway\W+|application_security_group\W+|bastion_host|express_route_|ip_group|local_network_gateway|nat_gateway|network_connection_monitor\W+|network_ddos_protection_plan\W+|network_interface\W+|network_interface_application_gateway_backend_address_pool_association\W+|network_interface_application_security_group_association\W+|network_interface_backend_address_pool_association\W+|network_interface_nat_rule_association\W+|network_interface_security_group_association\W+|network_manager\W+|network_manager_admin_rule\W+|network_manager_admin_rule_collection\W+|network_manager_connectivity_configuration\W+|network_manager_deployment\W+|network_manager_management_group_connection\W+|network_manager_network_group\W+|network_manager_network_group\W+|network_manager_scope_connection\W+|network_manager_security_admin_configuration\W+|network_manager_static_member\W+|network_manager_subscription_connection\W+|network_packet_capture\W+|network_profile\W+|network_security_group\W+|network_security_rule\W+|network_service_tags\W+|network_watcher\W+|network_watcher_flow_log\W+|point_to_site_vpn_gateway|private_endpoint\W+|private_endpoint_application_security_group_association\W+|private_endpoint_connection\W+|private_link_service\W+|private_link_service_endpoint_connections\W+|public_ip|route|subnet|virtual_hub\W+|virtual_hub_bgp_connection\W+|virtual_hub_connection\W+|virtual_hub_ip\W+|virtual_hub_route_table\W+|virtual_hub_route_table_route\W+|virtual_hub_security_partner_provider\W+|virtual_machine_packet_capture\W+|virtual_machine_scale_set_packet_capture\W+|virtual_network\W+|virtual_network_dns_servers\W+|virtual_network_gateway\W+|virtual_network_gateway_connection\W+|virtual_network_gateway_nat_rule\W+|virtual_network_peering\W+|virtual_wan\W+|vpn_|web_application_firewall_policy)((.|\n)*)###'
- '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_(application_gateway\W+|application_security_group\W+|bastion_host|custom_ip_prefix|express_route_|ip_group|local_network_gateway|nat_gateway|network_connection_monitor\W+|network_ddos_protection_plan\W+|network_interface\W+|network_interface_application_gateway_backend_address_pool_association\W+|network_interface_application_security_group_association\W+|network_interface_backend_address_pool_association\W+|network_interface_nat_rule_association\W+|network_interface_security_group_association\W+|network_manager\W+|network_manager_admin_rule\W+|network_manager_admin_rule_collection\W+|network_manager_connectivity_configuration\W+|network_manager_deployment\W+|network_manager_management_group_connection\W+|network_manager_network_group\W+|network_manager_network_group\W+|network_manager_scope_connection\W+|network_manager_security_admin_configuration\W+|network_manager_static_member\W+|network_manager_subscription_connection\W+|network_packet_capture\W+|network_profile\W+|network_security_group\W+|network_security_rule\W+|network_service_tags\W+|network_watcher\W+|network_watcher_flow_log\W+|point_to_site_vpn_gateway|private_endpoint\W+|private_endpoint_application_security_group_association\W+|private_endpoint_connection\W+|private_link_service\W+|private_link_service_endpoint_connections\W+|public_ip|route|subnet|virtual_hub\W+|virtual_hub_bgp_connection\W+|virtual_hub_connection\W+|virtual_hub_ip\W+|virtual_hub_route_table\W+|virtual_hub_route_table_route\W+|virtual_hub_security_partner_provider\W+|virtual_machine_packet_capture\W+|virtual_machine_scale_set_packet_capture\W+|virtual_network\W+|virtual_network_dns_servers\W+|virtual_network_gateway\W+|virtual_network_gateway_connection\W+|virtual_network_gateway_nat_rule\W+|virtual_network_peering\W+|virtual_wan\W+|vpn_|web_application_firewall_policy)((.|\n)*)###'

service/network-function:
- '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_network_function_azure_traffic_collector((.|\n)*)###'
Expand Down
4 changes: 2 additions & 2 deletions .teamcity/components/build_components.kt
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,10 @@ fun BuildSteps.RunAcceptanceTestsForPullRequest(packageName: String) {
}
}

fun ParametrizedWithType.TerraformAcceptanceTestParameters(parallelism : Int, prefix : String, timeout: String) {
fun ParametrizedWithType.TerraformAcceptanceTestParameters(parallelism : Int, prefix : String, timeout: Int) {
text("PARALLELISM", "%d".format(parallelism))
text("TEST_PREFIX", prefix)
text("TIMEOUT", timeout)
text("TIMEOUT", "%d".format(timeout))
}

fun ParametrizedWithType.ReadOnlySettings() {
Expand Down
2 changes: 1 addition & 1 deletion .teamcity/components/build_config_pull_request.kt
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class pullRequest(displayName: String, environment: String, vcsRootId : String)
}

params {
TerraformAcceptanceTestParameters(defaultParallelism, "TestAcc", "12")
TerraformAcceptanceTestParameters(defaultParallelism, "TestAcc", defaultTimeout)
TerraformAcceptanceTestsFlag()
TerraformShouldPanicForSchemaErrors()
TerraformCoreBinaryTesting()
Expand Down
4 changes: 2 additions & 2 deletions .teamcity/components/build_config_service.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ class serviceDetails(name: String, displayName: String, environment: String, vcs
val environment = environment
val vcsRootId = vcsRootId

fun buildConfiguration(providerName : String, nightlyTestsEnabled: Boolean, startHour: Int, parallelism: Int, daysOfWeek: String, daysOfMonth: String) : BuildType {
fun buildConfiguration(providerName : String, nightlyTestsEnabled: Boolean, startHour: Int, parallelism: Int, daysOfWeek: String, daysOfMonth: String, timeout: Int) : BuildType {
return BuildType {
// TC needs a consistent ID for dynamically generated packages
id(uniqueID(providerName))
Expand All @@ -33,7 +33,7 @@ class serviceDetails(name: String, displayName: String, environment: String, vcs
}

params {
TerraformAcceptanceTestParameters(parallelism, "TestAcc", "12")
TerraformAcceptanceTestParameters(parallelism, "TestAcc", timeout)
TerraformAcceptanceTestsFlag()
TerraformCoreBinaryTesting()
TerraformShouldPanicForSchemaErrors()
Expand Down
5 changes: 3 additions & 2 deletions .teamcity/components/project.kt
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ fun buildConfigurationsForServices(services: Map<String, String>, providerName :
var runNightly = runNightly.getOrDefault(environment, false)

var service = serviceDetails(serviceName, displayName, environment, config.vcsRootId)
var buildConfig = service.buildConfiguration(providerName, runNightly, testConfig.startHour, testConfig.parallelism, testConfig.daysOfWeek, testConfig.daysOfMonth)
var buildConfig = service.buildConfiguration(providerName, runNightly, testConfig.startHour, testConfig.parallelism, testConfig.daysOfWeek, testConfig.daysOfMonth, testConfig.timeout)

buildConfig.params.ConfigureAzureSpecificTestParameters(environment, config, locationsToUse, testConfig.useAltSubscription, testConfig.useDevTestSubscription)

Expand All @@ -48,11 +48,12 @@ fun pullRequestBuildConfiguration(environment: String, config: ClientConfigurati
return buildConfiguration
}

class testConfiguration(parallelism: Int = defaultParallelism, startHour: Int = defaultStartHour, daysOfWeek: String = defaultDaysOfWeek, daysOfMonth: String = defaultDaysOfMonth, useAltSubscription: Boolean = false, useDevTestSubscription: Boolean = false, locationOverride: LocationConfiguration = LocationConfiguration("","","", false)) {
class testConfiguration(parallelism: Int = defaultParallelism, startHour: Int = defaultStartHour, daysOfWeek: String = defaultDaysOfWeek, daysOfMonth: String = defaultDaysOfMonth, timeout: Int = defaultTimeout, useAltSubscription: Boolean = false, useDevTestSubscription: Boolean = false, locationOverride: LocationConfiguration = LocationConfiguration("","","", false)) {
var parallelism = parallelism
var startHour = startHour
var daysOfWeek = daysOfWeek
var daysOfMonth = daysOfMonth
var timeout = timeout
var useAltSubscription = useAltSubscription
var useDevTestSubscription = useDevTestSubscription
var locationOverride = locationOverride
Expand Down
6 changes: 6 additions & 0 deletions .teamcity/components/settings.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ var defaultStartHour = 0
// specifies the default level of parallelism per-service-package
var defaultParallelism = 20

// specifies the default build timeout in hours
var defaultTimeout = 12

// specifies the default version of Terraform Core which should be used for testing
var defaultTerraformCoreVersion = "1.5.1"

Expand Down Expand Up @@ -118,6 +121,9 @@ var serviceTestConfigurationOverrides = mapOf(
// netapp has a max of 10 accounts and the max capacity of pool is 25 TiB per subscription so lets limit it to 1 to account for broken ones, run Monday, Wednesday, Friday
"netapp" to testConfiguration(parallelism = 1, daysOfWeek = "2,4,6", locationOverride = LocationConfiguration("westeurope", "eastus2", "westus2", false), useDevTestSubscription = true),

// network has increased timeout to accommodate the custom_ip_prefix resource
"network" to testConfiguration(timeout = 24),

// New Relic is only available in East US region
"newrelic" to testConfiguration(locationOverride = LocationConfiguration("eastus", "eastus", "eastus", false)),

Expand Down
5 changes: 5 additions & 0 deletions internal/services/network/client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ type Client struct {

ApplicationGatewaysClient *network.ApplicationGatewaysClient
ConfigurationPolicyGroupClient *network.ConfigurationPolicyGroupsClient
CustomIPPrefixesClient *network.CustomIPPrefixesClient
DDOSProtectionPlansClient *network.DdosProtectionPlansClient
ExpressRouteAuthsClient *network.ExpressRouteCircuitAuthorizationsClient
ExpressRouteCircuitsClient *network.ExpressRouteCircuitsClient
Expand Down Expand Up @@ -72,6 +73,9 @@ func NewClient(o *common.ClientOptions) (*Client, error) {
configurationPolicyGroupClient := network.NewConfigurationPolicyGroupsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId)
o.ConfigureClient(&configurationPolicyGroupClient.Client, o.ResourceManagerAuthorizer)

customIpPrefixesClient := network.NewCustomIPPrefixesClient(o.SubscriptionId)
o.ConfigureClient(&customIpPrefixesClient.Client, o.ResourceManagerAuthorizer)

DDOSProtectionPlansClient := network.NewDdosProtectionPlansClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId)
o.ConfigureClient(&DDOSProtectionPlansClient.Client, o.ResourceManagerAuthorizer)

Expand Down Expand Up @@ -222,6 +226,7 @@ func NewClient(o *common.ClientOptions) (*Client, error) {

ApplicationGatewaysClient: &ApplicationGatewaysClient,
ConfigurationPolicyGroupClient: &configurationPolicyGroupClient,
CustomIPPrefixesClient: &customIpPrefixesClient,
DDOSProtectionPlansClient: &DDOSProtectionPlansClient,
ExpressRouteAuthsClient: &ExpressRouteAuthsClient,
ExpressRouteCircuitsClient: &ExpressRouteCircuitsClient,
Expand Down
Loading