Skip to content

Remove Equinix Metal support - #1830

Merged
antonym merged 1 commit into
developmentfrom
remove-equinix-metal
Sep 9, 2026
Merged

antonym merged 1 commit into
developmentfrom
remove-equinix-metal

Conversation

@antonym

@antonym antonym commented Sep 9, 2026

Copy link
Copy Markdown
Member

Equinix Metal has shut down, so this drops the provider-specific bootloader and menu logic that was built for it.

Changes

  • Delete roles/netbootxyz/templates/disks/netboot.xyz-metal.j2 — the embedded iPXE script for the netboot.xyz-metal bootloader, hardcoded to metal.equinix.com and setting ipxe_cloud_config metal.
  • boot.cfg.j2 — remove the :metal / :metal_x86_64 / :metal_arm64 cloud config blocks and the metal + legacy packet dispatch lines. :gce is now the only remaining cloud provider.
  • generate_disks_legacy.yml / generate_disks_linux.yml — these had split copy paths, one for metal (kpxe only) and one for everything else. Collapsed back to a single path and restored the unconditional -undionly.kpxe copy.
  • defaults/main.yml — drop the equinixMetal platform from the Talos platform list. The generic Talos metal (bare metal) platform is unchanged.
  • script/netbootxyz-overrides.yml — bootloader_disks is now just netboot.xyz. Also removes bootloader_multiple, which existed only to signal the two-bootloader metal build and is not read anywhere in the role.

Notes

  • CHANGELOG.md still mentions Equinix Metal in five historical entries. Those are a record of past releases, so they are left as-is.
  • The bootloader_filename == "netboot.xyz" guards in generate_disks.yml are left in place — they read as generic "primary bootloader only" guards, and removing them would change behavior for anyone building an extra bootloader via bootloader_disks.
  • Heads up: releases will no longer publish the netboot.xyz-metal.* artifacts (.kpxe, -snp.efi, -arm64-snp.efi). Any client still chainloading those URLs will 404, and boot.cfg no longer redirects them.

🤖 Generated with Claude Code

https://claude.ai/code/session_01HfC8w6Cf8AY7xLF3JoscYM

Equinix Metal has shut down, so drop the provider-specific bootloader
and menu logic that was built for it.

- Delete the netboot.xyz-metal embedded iPXE script, which was hardcoded
  to metal.equinix.com and set ipxe_cloud_config to metal
- Remove the metal/metal_x86_64/metal_arm64 cloud config blocks from
  boot.cfg, along with the metal and legacy packet dispatch lines; gce
  is now the only remaining cloud provider
- Collapse the split metal/non-metal copy paths in the legacy and linux
  disk generation tasks back to a single path
- Drop the equinixMetal platform from the Talos platform list
- Trim bootloader_disks down to netboot.xyz and remove the now unused
  bootloader_multiple variable

The netboot.xyz-metal.* artifacts will no longer be published.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HfC8w6Cf8AY7xLF3JoscYM
@kilo-code-bot

kilo-code-bot Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (6 files)
  • roles/netbootxyz/defaults/main.yml - Cleanly removed equinixMetal platform from Talos platform list
  • roles/netbootxyz/tasks/generate_disks_legacy.yml - Consolidated copy tasks by removing metal-specific conditionals
  • roles/netbootxyz/tasks/generate_disks_linux.yml - Removed metal-specific conditional from linux binary copy
  • roles/netbootxyz/templates/disks/netboot.xyz-metal.j2 - Deleted (93 lines)
  • roles/netbootxyz/templates/menu/boot.cfg.j2 - Removed metal/packet cloud config blocks, GCE remains
  • script/netbootxyz-overrides.yml - Removed netboot.xyz-metal from bootloader_disks list

Review Notes

  • All Equinix Metal references have been consistently removed across the codebase
  • The generic Talos "metal" (bare metal) platform is correctly preserved and distinct from the removed "equinixMetal" platform
  • Previously split copy operations for metal/non-metal builds are appropriately consolidated back to single code paths
  • YAML syntax and Ansible FQCN conventions are maintained throughout
  • Changes align with project coding standards from AGENTS.md

Reviewed by claude-sonnet-4.5 · Input: 44 · Output: 3.7K · Cached: 199.4K

@antonym
antonym merged commit fec1893 into development Sep 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant