Remove Equinix Metal support

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
This commit is contained in:
Antony Messerli
2026-09-08 23:32:25 -05:00
co-authored by Claude Opus 5
parent 5aa0b3911c
commit 3a553577ce
6 changed files with 0 additions and 147 deletions
-2
View File
@@ -616,8 +616,6 @@ releases:
name: Azure
- key: digitalocean
name: Digital Ocean
- key: equinixMetal
name: Equinix Metal
- key: gcp
name: GCP
- key: hcloud
@@ -61,23 +61,12 @@
- ".dsk"
- ".lkrn"
- ".kpxe"
when: bootloader_filename != "netboot.xyz-metal"
- name: Copy iPXE files for Legacy BIOS to http directory
ansible.builtin.copy:
src: "{{ ipxe_source_dir }}/src/bin/ipxe{{ item }}"
dest: "{{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}{{ item }}"
remote_src: true
with_items:
- ".kpxe"
when: bootloader_filename == "netboot.xyz-metal"
- name: Copy undionly.kpxe for Legacy BIOS to http directory
ansible.builtin.copy:
src: "{{ ipxe_source_dir }}/src/bin/undionly.kpxe"
dest: "{{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}-undionly.kpxe"
remote_src: true
when: bootloader_filename != "netboot.xyz-metal"
- name: Compile iPXE legacy-driver bootloader for Legacy BIOS
ansible.builtin.shell: |
@@ -122,13 +111,3 @@
- ".kpxe"
when:
- generate_disks_legacy_usb | default(true) | bool
- bootloader_filename != "netboot.xyz-metal"
- name: Copy iPXE legacy-driver kpxe for Legacy BIOS to http directory
ansible.builtin.copy:
src: "{{ ipxe_source_dir }}/src/bin/ipxe-legacy.kpxe"
dest: "{{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}-legacy.kpxe"
remote_src: true
when:
- generate_disks_legacy_usb | default(true) | bool
- bootloader_filename == "netboot.xyz-metal"
@@ -52,4 +52,3 @@
src: "{{ ipxe_source_dir }}/src/bin-x86_64-linux/slirp.linux"
dest: "{{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}-linux.bin"
remote_src: true
when: bootloader_filename != "netboot.xyz-metal"
@@ -1,93 +0,0 @@
#!ipxe
set esc:hex 1b
set bold ${esc:string}[1m
set boldoff ${esc:string}[22m
set fg_gre ${esc:string}[32m
set fg_red ${esc:string}[31m
set fg_cya ${esc:string}[36m
set fg_whi ${esc:string}[37m
set HTTPS_ERR HTTPS appears to have failed... attempting HTTP
set HTTP_ERR HTTP has failed, localbooting...
set ipxe_version ${version}
set version {{ boot_version }}
set ipxe_cloud_config metal
:start
echo ${bold}${fg_gre}netboot.xyz ${fg_whi}v${version} for ${fg_red}metal.equinix.com${fg_whi}${boldoff}
prompt --key m --timeout 4000 Hit the ${bold}m${boldoff} key to open failsafe menu... && goto failsafe || goto dhcp
:dhcp
echo
dhcp || goto netconfig
goto menu
:failsafe
menu netboot.xyz Failsafe Menu
item localboot Boot to local drive
item netconfig Manual network configuration
item vlan Manual VLAN configuration
item retry Retry boot
item debug iPXE Debug Shell
item reboot Reboot System
choose failsafe_choice || exit
goto ${failsafe_choice}
:netconfig
echo Network Configuration:
echo Available interfaces...
ifstat
imgfree
echo -n Set network interface number [0 for net0, defaults to 0]: ${} && read net
isset ${net} || set net 0
echo -n IP: && read net${net}/ip
echo -n Subnet mask: && read net${net}/netmask
echo -n Gateway: && read net${net}/gateway
echo -n DNS: && read dns
ifopen net${net}
echo Attempting chainload of netboot.xyz...
goto menu || goto failsafe
:vlan
echo VLAN Configuration:
echo Available interfaces...
ifstat
imgfree
echo -n Set network interface number [0 for net0, defaults to 0]: ${} && read net
isset ${net} || set net 0
echo -n Set VLAN 802.1Q tag [0 to 4094]: ${} && read vlan
vcreate --tag ${vlan} net${net}
ifconf --configurator dhcp net${net}-${vlan} || echo DHCP failed trying manual && goto netvlan
echo Attempting chainload of ${boot_domain}...
goto menu || goto failsafe
:netvlan
echo -n IP: && read net${net}-${vlan}/ip
echo -n Subnet mask: && read net${net}-${vlan}/netmask
echo -n Gateway: && read net${net}-${vlan}/gateway
echo -n DNS: && read dns
ifopen net${net}-${vlan}
echo Attempting chainload of ${boot_domain}...
goto menu || goto failsafe
:menu
set conn_type https
chain --autofree https://boot.netboot.xyz/menu.ipxe || echo ${HTTPS_ERR}
sleep 5
set conn_type http
chain --autofree http://boot.netboot.xyz/menu.ipxe || echo ${HTTP_ERR}
goto localboot
:localboot
exit
:retry
goto start
:reboot
reboot
goto start
:debug
echo Type "exit" to return to menu
shell
goto failsafe
@@ -99,40 +99,12 @@ goto clouds
###################################
:clouds
iseq ${ipxe_cloud_config} gce && goto gce ||
iseq ${ipxe_cloud_config} metal && goto metal ||
iseq ${ipxe_cloud_config} packet && goto metal ||
goto clouds_end
:gce
set cmdline console=ttyS0,115200n8
goto clouds_end
:metal
iseq ${arch} i386 && goto metal_x86_64 ||
iseq ${arch} x86_64 && goto metal_x86_64 ||
iseq ${arch} arm64 && goto metal_arm64 ||
goto clouds_end
:metal_x86_64
set cmdline console=ttyS1,115200n8
iseq ${platform} efi && set ipxe_disk netboot.xyz-metal-snp.efi || set ipxe_disk netboot.xyz-metal.kpxe
set menu_linux_i386 0
set menu_freedos 0
set menu_windows 0
iseq ${platform} efi && set menu_pci 0 ||
goto clouds_end
:metal_arm64
set cmdline console=ttyAMA0,115200
set ipxe_disk netboot.xyz-metal-arm64-snp.efi
set menu_bsd 1
set menu_freedos 0
set menu_live 0
set menu_windows 0
set menu_utils 0
set menu_pci 0
goto clouds_end
:clouds_end
goto end
-2
View File
@@ -9,10 +9,8 @@ generate_disks_secureboot: true
generate_version_file: true
generate_local_vars: false
make_num_jobs: 4
bootloader_multiple: true
bootloader_disks:
- "netboot.xyz"
- "netboot.xyz-metal"
generate_signatures: true
sigs_dir: "{{ netbootxyz_root }}/sigs"
sigs_location: "http://${boot_domain}/sigs/"