feat: deprecate Metal resources and auth_token for June 2026 sunset#989
feat: deprecate Metal resources and auth_token for June 2026 sunset#989
Conversation
Co-authored-by: displague <317653+displague@users.noreply.github.com>
Co-authored-by: displague <317653+displague@users.noreply.github.com>
Co-authored-by: displague <317653+displague@users.noreply.github.com>
Co-authored-by: displague <317653+displague@users.noreply.github.com>
Run make docs to generate updated documentation files with deprecation warnings for all Metal resources and data sources. Co-authored-by: displague <317653+displague@users.noreply.github.com>
|
@copilot metal_acc_test can go too (the metal tests, metal testing specific github action, any specific harnesses that were metal focused) |
|
Doh - I didn't mean that. We can pop that last commit off the stack. We still want the Metal tests until after deprecation. I'm curious what it comes up with. update: looks like copilot errored out on that request. Nothing to revisit, our tests are saved. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #989 +/- ##
===========================================
+ Coverage 29.40% 43.33% +13.93%
===========================================
Files 246 246
Lines 28414 28450 +36
===========================================
+ Hits 8355 12329 +3974
+ Misses 19905 15626 -4279
- Partials 154 495 +341 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
equinix/data_source_metal_plans.go
Outdated
|
|
||
| return datalist.NewResource(dataListConfig) | ||
| resourceDef := datalist.NewResource(dataListConfig) | ||
| resourceDef.DeprecationMessage = "Retirement date set for June 30th, 2026 as Metal platform shuts down. Gets yanked in the 5.0.0 provider release. Maintain usage of 4.x versions through discontinuation. Info available at https://docs.equinix.com/metal/" |
There was a problem hiding this comment.
Hilariously, this is changing the DeprecationMessage per resource. We don't actually want to do that. The same message should be used everywhere.
There was a problem hiding this comment.
@copilot You used a different DeprecationMessage everywhere. Use the same message, keep it professional (some were not), and remember the .md files are make docs generated. (maybe make a reusable sub-package for this in the metal section, specifically to keep this consistent).
There was a problem hiding this comment.
Standardized all deprecation messages to use a consistent constant. Created metalDeprecationMessage in equinix/metal_deprecation.go and metal.DeprecationMessage in internal/resources/metal/deprecation.go. All resources, data sources, and documentation templates now use the same professional message. Changes committed in c96da02.
Co-authored-by: displague <317653+displague@users.noreply.github.com>
Co-authored-by: displague <317653+displague@users.noreply.github.com>
Co-authored-by: displague <317653+displague@users.noreply.github.com>
…iles Co-authored-by: displague <317653+displague@users.noreply.github.com>
…esources Create reusable deprecation message constants in both equinix/ and internal/resources/metal/ packages. Update all Metal resources, data sources, and documentation templates to use the consistent professional message. This addresses feedback to standardize messaging across all deprecated Metal components. Co-authored-by: displague <317653+displague@users.noreply.github.com>
|
Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot equinix/metal_deprecation.go -> internal/deprecations/metal.go |
|
@copilot move equinix/metal_deprecation.go to internal/deprecations/metal.go |
- Created new internal/deprecations package with MetalDeprecationMessage constant - Updated all equinix/ directory files to use deprecations.MetalDeprecationMessage instead of metalDeprecationMessage - Updated all internal/resources/metal/ files to use deprecations.MetalDeprecationMessage instead of metal.DeprecationMessage - Updated equinix/provider.go and internal/provider/provider.go to use the new constant - Removed old deprecation files: equinix/metal_deprecation.go and internal/resources/metal/deprecation.go Co-authored-by: displague <317653+displague@users.noreply.github.com>
Moved
Completed in commit 47b71c7. File moved to |
There was a problem hiding this comment.
Pull request overview
This pull request implements comprehensive deprecation of all Equinix Metal resources, data sources, and the auth_token provider setting in preparation for the Metal platform's sunset on June 30, 2026. The implementation follows Terraform best practices by creating a centralized deprecation message and applying it consistently across all Metal-related components.
Changes:
- Created
internal/deprecationspackage with a standardizedMetalDeprecationMessageconstant - Deprecated all 19 Metal resources and 22 Metal data sources by adding deprecation messages to their schemas
- Deprecated the
auth_tokenprovider setting in both SDKv2 and Framework provider implementations - Updated all documentation templates and generated docs to include clear deprecation notices
Reviewed changes
Copilot reviewed 117 out of 117 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| internal/deprecations/metal.go | New package defining the standard deprecation message for all Metal components |
| internal/provider/provider.go | Added deprecation to auth_token in Framework provider |
| equinix/provider.go | Added deprecation to auth_token in SDKv2 provider |
| internal/resources/metal//resource.go | Added deprecation messages to all Metal resource schemas (connection, device, gateway, organization, port, project, ssh_key, vlan, virtualcircuit, vrf, etc.) |
| internal/resources/metal//datasource.go | Added deprecation messages to all Metal data source schemas |
| equinix/resource_metal_*.go | Added deprecation messages to legacy Metal resources (bgp_session, device_network_type, ip_attachment, project_api_key, reserved_ip_block, user_api_key) |
| equinix/data_source_metal_*.go | Added deprecation messages to legacy Metal data sources (device_bgp_neighbors, facility, hardware_reservation, ip_block_ranges, metro, operating_system, plans, precreated_ip_block, reserved_ip_block, spot_market_price) |
| templates/resources/metal_*.md.tmpl | Added deprecation notices to all Metal resource documentation templates |
| templates/data-sources/metal_*.md.tmpl | Added deprecation notices to all Metal data source documentation templates |
| docs/resources/metal_*.md | Generated documentation with deprecation notices for all Metal resources |
| docs/data-sources/metal_*.md | Generated documentation with deprecation notices for all Metal data sources |
| docs/index.md | Updated to show auth_token as deprecated in provider configuration |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
internal/deprecationspackage withMetalDeprecationMessageconstantequinix/directory to usedeprecations.MetalDeprecationMessageinternal/resources/metal/to usedeprecations.MetalDeprecationMessageinternal/provider/provider.goequinix/metal_deprecation.gointernal/resources/metal/deprecation.goOriginal prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.