Conversation
There was a problem hiding this comment.
Pull request overview
This PR removes Equinix Metal support from the v5 provider, aligning with Metal’s announced sunset timeline and making equinix_metal_* resources/data sources unavailable going forward.
Changes:
- Removed Metal resources/data sources (Framework + SDKv2 implementations) and associated helpers/sweepers.
- Removed Metal acceptance tests and test utilities.
- Removed Metal-related docs and examples from the repository.
Reviewed changes
Copilot reviewed 198 out of 280 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| internal/resources/metal/project/datasource_schema.go | Removed Metal project data source schema (Framework). |
| internal/resources/metal/project/datasource.go | Removed Metal project data source implementation (Framework). |
| internal/resources/metal/project/bgp_config.go | Removed Metal project BGP config helper logic. |
| internal/resources/metal/port/datasource_test.go | Removed Metal port data source acceptance tests. |
| internal/resources/metal/port/datasource.go | Removed Metal port data source (SDKv2). |
| internal/resources/metal/organization_member/resource_schema.go | Removed Metal organization member resource schema (Framework). |
| internal/resources/metal/organization_member/models.go | Removed Metal organization member state model/parse logic. |
| internal/resources/metal/organization/sweeper.go | Removed Metal organization test sweeper. |
| internal/resources/metal/organization/resource_schema.go | Removed Metal organization resource schema (Framework). |
| internal/resources/metal/organization/models.go | Removed Metal organization resource/data source models and parsing helpers. |
| internal/resources/metal/organization/datasource_schema.go | Removed Metal organization data source schema (Framework). |
| internal/resources/metal/organization/datasource.go | Removed Metal organization data source implementation (Framework). |
| internal/resources/metal/gateway/resource_schema.go | Removed Metal gateway resource schema (Framework). |
| internal/resources/metal/gateway/datasource_test.go | Removed Metal gateway data source acceptance tests (incl. upgrade test). |
| internal/resources/metal/gateway/datasource_schema.go | Removed Metal gateway data source schema (Framework). |
| internal/resources/metal/gateway/datasource.go | Removed Metal gateway data source implementation (Framework). |
| internal/resources/metal/device/sweeper.go | Removed Metal device test sweeper. |
| internal/resources/metal/device/list_datasource_test.go | Removed Metal devices list data source acceptance tests. |
| internal/resources/metal/device/list_datasource.go | Removed Metal devices list data source (SDKv2). |
| internal/resources/metal/device/datasource_test.go | Removed Metal device data source acceptance tests. |
| internal/resources/metal/connection/sweeper.go | Removed Metal connection test sweeper. |
| internal/resources/metal/connection/speed_test.go | Removed unit tests for Metal connection speed formatting. |
| internal/resources/metal/connection/speed.go | Removed Metal connection speed parsing/formatting helpers. |
| internal/resources/metal/connection/datasource.go | Removed Metal connection data source implementation (Framework). |
| internal/resources/metal/batch/doc.go | Removed Metal batch package doc (VLAN helper). |
| internal/provider/services/metal.go | Removed Metal service registration (resources + data sources) from Framework provider wiring. |
| internal/mutexkv/mutexkv.go | Removed Metal-scoped mutex KV helper. |
| internal/deprecations/metal.go | Removed standard Metal deprecation message constant. |
| internal/acceptance/ssh_key_helpers.go | Removed Metal SSH key acceptance helper. |
| internal/acceptance/device_helpers_test.go | Removed tests for Metal acceptance helper utilities. |
| internal/acceptance/device_helpers.go | Removed Metal device acceptance config helpers (plan/metro/os selection + termination time). |
| examples/resources/equinix_metal_vrf/example_3.tf | Removed Metal VRF example (virtual circuit attachment). |
| examples/resources/equinix_metal_vrf/example_2.tf | Removed Metal VRF example (gateway + reserved block + VLAN). |
| examples/resources/equinix_metal_vrf/example_1.tf | Removed Metal VRF example (project + VRF). |
| examples/resources/equinix_metal_vlan/example_1.tf | Removed Metal VLAN example. |
| examples/resources/equinix_metal_virtual_circuit/resource.tf | Removed Metal virtual circuit example configuration. |
| examples/resources/equinix_metal_virtual_circuit/import.sh | Removed Metal virtual circuit import example. |
| examples/resources/equinix_metal_user_api_key/example_1.tf | Removed Metal user API key example. |
| examples/resources/equinix_metal_ssh_key/example_1.tf | Removed Metal SSH key example (and dependent device). |
| examples/resources/equinix_metal_spot_market_request/example_1.tf | Removed Metal spot market request example. |
| examples/resources/equinix_metal_reserved_ip_block/example_2.tf | Removed Metal reserved IP block example (device assignment). |
| examples/resources/equinix_metal_reserved_ip_block/example_1.tf | Removed Metal reserved IP block examples. |
| examples/resources/equinix_metal_project_ssh_key/example_1.tf | Removed Metal project SSH key example. |
| examples/resources/equinix_metal_project_api_key/example_1.tf | Removed Metal project API key example. |
| examples/resources/equinix_metal_project/example_3.tf | Removed Metal project example (existing project + BGP). |
| examples/resources/equinix_metal_project/example_2.tf | Removed Metal project example (BGP config). |
| examples/resources/equinix_metal_project/example_1.tf | Removed Metal project example (basic). |
| examples/resources/equinix_metal_port_vlan_attachment/example_2.tf | Removed Metal port VLAN attachment example (layer2-individual). |
| examples/resources/equinix_metal_port_vlan_attachment/example_1.tf | Removed Metal port VLAN attachment example (hybrid). |
| examples/resources/equinix_metal_organization_member/example_2.tf | Removed Metal org member example (owner). |
| examples/resources/equinix_metal_organization_member/example_1.tf | Removed Metal org member example (member). |
| examples/resources/equinix_metal_organization/example_1.tf | Removed Metal organization example. |
| examples/resources/equinix_metal_ip_attachment/example_1.tf | Removed Metal IP attachment example. |
| examples/resources/equinix_metal_gateway/example_2.tf | Removed Metal gateway example (reserved block). |
| examples/resources/equinix_metal_gateway/example_1.tf | Removed Metal gateway example (private subnet). |
| examples/resources/equinix_metal_device/example_5.tf | Removed Metal device example (PXE + behavior). |
| examples/resources/equinix_metal_device/example_4.tf | Removed Metal device example (storage JSON). |
| examples/resources/equinix_metal_device/example_3.tf | Removed Metal device example (private IPv4 block). |
| examples/resources/equinix_metal_device/example_2.tf | Removed Metal device example (custom iPXE). |
| examples/resources/equinix_metal_device/example_1.tf | Removed Metal device example (basic). |
| examples/resources/equinix_metal_connection/metal_billed_metal_to_fabric_port.tf | Removed Metal↔Fabric connection example (Metal-billed). |
| examples/resources/equinix_metal_connection/metal_billed_metal_to_csp.tf | Removed Metal↔CSP connection example (Azure). |
| examples/resources/equinix_metal_connection/fabric_billed_metal_from_network_edge.tf | Removed Fabric-billed Metal-from-NetworkEdge example. |
| examples/resources/equinix_metal_connection/fabric_billed_metal_from_fcr.tf | Removed Fabric-billed Metal-from-FCR example. |
| examples/resources/equinix_metal_connection/fabric_billed_metal_from_fabric_port.tf | Removed Fabric-billed Metal-from-port example. |
| examples/resources/equinix_metal_bgp_session/example_1.tf | Removed Metal BGP session example. |
| examples/resources/equinix_fabric_connection/metal_to_aws.tf | Removed Fabric connection example that used Metal auth code. |
| examples/resources/equinix_fabric_connection/fcr_to_metal.tf | Removed Fabric connection example that used Metal auth code. |
| examples/example_2.tf | Removed example provider config for Metal-only credentials (auth_token). |
| examples/data-sources/equinix_metal_vrf/example_1.tf | Removed Metal VRF data source example. |
| examples/data-sources/equinix_metal_vlan/example_2.tf | Removed Metal VLAN data source example (project+vxlan+metro). |
| examples/data-sources/equinix_metal_vlan/example_1.tf | Removed Metal VLAN data source example (by ID). |
| examples/data-sources/equinix_metal_virtual_circuit/data-source.tf | Removed Metal virtual circuit data source example. |
| examples/data-sources/equinix_metal_spot_market_request/example_1.tf | Removed Metal spot market request data source example. |
| examples/data-sources/equinix_metal_spot_market_price/example_1.tf | Removed Metal spot market price data source example. |
| examples/data-sources/equinix_metal_reserved_ip_block/example_1.tf | Removed Metal reserved IP block data source example. |
| examples/data-sources/equinix_metal_project_ssh_key/example_1.tf | Removed Metal project SSH key data source example. |
| examples/data-sources/equinix_metal_project/example_1.tf | Removed Metal project data source example. |
| examples/data-sources/equinix_metal_precreated_ip_block/example_1.tf | Removed Metal precreated IP block data source example. |
| examples/data-sources/equinix_metal_port/example_1.tf | Removed Metal port data source example. |
| examples/data-sources/equinix_metal_plans/example_4.tf | Removed Metal plans example (ignore_changes pattern). |
| examples/data-sources/equinix_metal_plans/example_3.tf | Removed Metal plans example (cheapest plan selection). |
| examples/data-sources/equinix_metal_plans/example_2.tf | Removed Metal plans example (class + spot + metros). |
| examples/data-sources/equinix_metal_plans/example_1.tf | Removed Metal plans example (pricing + metros). |
| examples/data-sources/equinix_metal_organization/example_1.tf | Removed Metal organization data source example. |
| examples/data-sources/equinix_metal_operating_system/example_1.tf | Removed Metal OS data source example. |
| examples/data-sources/equinix_metal_metro/example_2.tf | Removed Metal metro capacity example. |
| examples/data-sources/equinix_metal_metro/example_1.tf | Removed Metal metro data source example. |
| examples/data-sources/equinix_metal_ip_block_ranges/example_1.tf | Removed Metal IP block ranges data source example. |
| examples/data-sources/equinix_metal_hardware_reservation/example_1.tf | Removed Metal hardware reservation data source example. |
| examples/data-sources/equinix_metal_gateway/example_1.tf | Removed Metal gateway data source example. |
| examples/data-sources/equinix_metal_facility/example_2.tf | Removed Metal facility capacity example. |
| examples/data-sources/equinix_metal_facility/example_1.tf | Removed Metal facility data source example. |
| examples/data-sources/equinix_metal_devices/example_2.tf | Removed Metal devices data source example (search). |
| examples/data-sources/equinix_metal_devices/example_1.tf | Removed Metal devices data source example (filters). |
| examples/data-sources/equinix_metal_device_bgp_neighbors/example_1.tf | Removed Metal BGP neighbors data source example. |
| examples/data-sources/equinix_metal_device/example_2.tf | Removed Metal device data source example (by ID). |
| examples/data-sources/equinix_metal_device/example_1.tf | Removed Metal device data source example (by hostname). |
| examples/data-sources/equinix_metal_connection/example_1.tf | Removed Metal connection data source example. |
| equinix/resource_metal_user_api_key_acc_test.go | Removed (commented-out) Metal user API key acceptance test file. |
| equinix/resource_metal_user_api_key.go | Removed Metal user API key resource (SDKv2). |
| equinix/resource_metal_project_api_key_acc_test.go | Removed Metal project API key acceptance tests. |
| equinix/resource_metal_ip_attachment.go | Removed Metal IP attachment resource (SDKv2). |
| equinix/resource_metal_device_network_type.go | Removed Metal device network type resource (SDKv2). |
| equinix/resource_metal_bgp_setup_acc_test.go | Removed Metal BGP setup acceptance tests. |
| equinix/resource_metal_bgp_session.go | Removed Metal BGP session resource (SDKv2). |
| equinix/metal_provider_maps.go | Removed Metal resource/data source registration maps (SDKv2 provider wiring). |
| equinix/data_source_metal_spot_market_price.go | Removed Metal spot market price data source (SDKv2). |
| equinix/data_source_metal_reserved_ip_block_acc_test.go | Removed Metal reserved IP block data source acceptance tests. |
| equinix/data_source_metal_precreated_ip_block_acc_test.go | Removed Metal precreated IP block data source acceptance tests. |
| equinix/data_source_metal_plans_acc_test.go | Removed Metal plans data source acceptance tests. |
| equinix/data_source_metal_operating_system_acc_test.go | Removed Metal OS data source acceptance tests. |
| equinix/data_source_metal_operating_system.go | Removed Metal OS data source (SDKv2). |
| equinix/data_source_metal_metro_acc_test.go | Removed Metal metro data source acceptance tests. |
| equinix/data_source_metal_metro.go | Removed Metal metro data source (SDKv2). |
| equinix/data_source_metal_ip_block_ranges_acc_test.go | Removed Metal IP block ranges data source acceptance tests. |
| equinix/data_source_metal_hardware_reservation.go | Removed Metal hardware reservation data source (SDKv2). |
| equinix/data_source_metal_facility.go | Removed Metal facility data source (SDKv2) and capacity helpers. |
| equinix/data_source_metal_device_bgp_neighbors_acc_test.go | Removed Metal device BGP neighbors data source acceptance tests. |
| equinix/common_test.go | Removed common Metal acceptance helpers duplicated in SDKv2 tests. |
| docs/resources/metal_vrf.md | Removed generated docs for Metal VRF resource. |
| docs/resources/metal_vlan.md | Removed generated docs for Metal VLAN resource. |
| docs/resources/metal_virtual_circuit.md | Removed generated docs for Metal virtual circuit resource. |
| docs/resources/metal_user_api_key.md | Removed generated docs for Metal user API key resource. |
| docs/resources/metal_ssh_key.md | Removed generated docs for Metal SSH key resource. |
| docs/resources/metal_project_ssh_key.md | Removed generated docs for Metal project SSH key resource. |
| docs/resources/metal_project_api_key.md | Removed generated docs for Metal project API key resource. |
| docs/resources/metal_project.md | Removed generated docs for Metal project resource. |
| docs/resources/metal_port_vlan_attachment.md | Removed generated docs for Metal port VLAN attachment resource. |
| docs/resources/metal_port.md | Removed generated docs for Metal port resource. |
| docs/resources/metal_organization_member.md | Removed generated docs for Metal org member resource. |
| docs/resources/metal_organization.md | Removed generated docs for Metal organization resource. |
| docs/resources/metal_ip_attachment.md | Removed generated docs for Metal IP attachment resource. |
| docs/resources/metal_gateway.md | Removed generated docs for Metal gateway resource. |
| docs/resources/metal_device_network_type.md | Removed generated docs for Metal device_network_type resource. |
| docs/guides/migration_guide_facilities_to_metros_devices.md | Removed Metal-specific migration guide documentation. |
| docs/data-sources/metal_vrf.md | Removed generated docs for Metal VRF data source. |
| docs/data-sources/metal_vlan.md | Removed generated docs for Metal VLAN data source. |
| docs/data-sources/metal_virtual_circuit.md | Removed generated docs for Metal virtual circuit data source. |
| docs/data-sources/metal_spot_market_price.md | Removed generated docs for Metal spot market price data source. |
| docs/data-sources/metal_reserved_ip_block.md | Removed generated docs for Metal reserved IP block data source. |
| docs/data-sources/metal_project_ssh_key.md | Removed generated docs for Metal project SSH key data source. |
| docs/data-sources/metal_project.md | Removed generated docs for Metal project data source. |
| docs/data-sources/metal_precreated_ip_block.md | Removed generated docs for Metal precreated IP block data source. |
| docs/data-sources/metal_port.md | Removed generated docs for Metal port data source. |
| docs/data-sources/metal_organization.md | Removed generated docs for Metal organization data source. |
| docs/data-sources/metal_operating_system.md | Removed generated docs for Metal OS data source. |
| docs/data-sources/metal_metro.md | Removed generated docs for Metal metro data source. |
| docs/data-sources/metal_ip_block_ranges.md | Removed generated docs for Metal IP block ranges data source. |
| docs/data-sources/metal_hardware_reservation.md | Removed generated docs for Metal hardware reservation data source. |
| docs/data-sources/metal_gateway.md | Removed generated docs for Metal gateway data source. |
| docs/data-sources/metal_facility.md | Removed generated docs for Metal facility data source. |
| docs/data-sources/metal_devices.md | Removed generated docs for Metal devices data source. |
| docs/data-sources/metal_device_bgp_neighbors.md | Removed generated docs for Metal BGP neighbors data source. |
| docs/data-sources/metal_device.md | Removed generated docs for Metal device data source. |
| docs/data-sources/metal_connection.md | Removed generated docs for Metal connection data source. |
Equinix Metal is sunsetting on June 30, 2026. See https://docs.equinix.com/metal/ for more information. Terraform support for Equinix Metal resources is available in the v4 Terraform provider. When removing `equinix_metal_*` resources from Equinix Terraform configurations, provider configuration parameters specific to Equinix Metal, such as `auth_token` must also be removed. See https://registry.terraform.io/providers/equinix/equinix/latest/docs Signed-off-by: Marques Johansson <[email protected]> BREAKING CHANGE: equinix_metal_* resource support has been removed in Equinix Terraform provider v5
fbe433d to
d88a8c3
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1006 +/- ##
===========================================
+ Coverage 28.72% 64.23% +35.51%
===========================================
Files 252 172 -80
Lines 29225 21845 -7380
===========================================
+ Hits 8394 14033 +5639
+ Misses 20677 7228 -13449
- Partials 154 584 +430 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Linters are mainly failing on touched files that were only partially touched to remove Metal. We may want to add a golangci-lint block, like that removed for Metal files, to the NE and Fabric space (at least until this PR is merged). |
Signed-off-by: Marques Johansson <[email protected]>
Signed-off-by: Marques Johansson <[email protected]>
|
Ideally this is merged in the same release as #1008 |
Equinix Metal is sunsetting on June 30, 2026. See https://docs.equinix.com/metal/ for more information.
Terraform support for Equinix Metal resources is available in the v4 Terraform provider. When removing
equinix_metal_*resources from Equinix Terraform configurations, provider configuration parameters specific to Equinix Metal, such asauth_tokenmust also be removed.See https://registry.terraform.io/providers/equinix/equinix/latest/docs
BREAKING CHANGE: equinix_metal_* resource support has been removed in Equinix Terraform provider v5