diff --git a/build_library/check_root b/build_library/check_root
index 4b1bf255f6..62ee2c710a 100755
--- a/build_library/check_root
+++ b/build_library/check_root
@@ -107,7 +107,6 @@ IGNORE_SHEBANG = (
"*/python[0-9].[0-9][0-9]/cgi.py",
"*/usr/lib64/modules/*/source/scripts/*",
"*/usr/lib/modules/*/source/scripts/*",
- "*/usr/share/nova-agent/*/etc/gentoo/nova-agent",
"*/tmp/*",
"*/Documentation/*",
"*/doc/*",
diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh
index 0ef4f6bcee..1c4c346e4e 100644
--- a/build_library/vm_image_util.sh
+++ b/build_library/vm_image_util.sh
@@ -28,9 +28,6 @@ VALID_IMG_TYPES=(
proxmoxve
pxe
qemu_uefi
- rackspace
- rackspace_onmetal
- rackspace_vhd
scaleway
stackit
vagrant
@@ -62,8 +59,6 @@ VALID_OEM_PACKAGES=(
packet
proxmoxve
qemu
- rackspace
- rackspace-onmetal
scaleway
stackit
vagrant
@@ -248,16 +243,6 @@ IMG_gce_CONF_FORMAT=gce
IMG_gce_OEM_PACKAGE=common-oem-files
IMG_gce_OEM_SYSEXT=oem-gce
-## rackspace
-IMG_rackspace_OEM_PACKAGE=oem-rackspace
-IMG_rackspace_vhd_DISK_FORMAT=vhd
-IMG_rackspace_vhd_OEM_PACKAGE=oem-rackspace
-
-## rackspace onmetal
-IMG_rackspace_onmetal_DISK_FORMAT=qcow2
-IMG_rackspace_onmetal_DISK_LAYOUT=onmetal
-IMG_rackspace_onmetal_OEM_PACKAGE=oem-rackspace-onmetal
-
## cloudstack
IMG_cloudstack_OEM_PACKAGE=oem-cloudstack
IMG_cloudstack_vhd_DISK_FORMAT=vhd
diff --git a/changelog/changes/2026-04-23-rackspace.md b/changelog/changes/2026-04-23-rackspace.md
new file mode 100644
index 0000000000..89e4d29988
--- /dev/null
+++ b/changelog/changes/2026-04-23-rackspace.md
@@ -0,0 +1 @@
+- Dropped support for Rackspace, including OnMetal. Rackspace-specific images are no longer built or published. Flatcar only had community level support for Rackspace, and the Flatcar team is no longer confident that this support actually works. Rackspace themselves have pivoted from being an independent cloud provider to being a management platform for other clouds.
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/Manifest b/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/Manifest
deleted file mode 100644
index b1077281b9..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST nova-agent-container-0.0.1.tar.gz 6634988 SHA256 ccaea8ea597111d5b89649e9fb03f6a9fdf8530e69c18c8af6e059d7ac20a029 SHA512 71468307ed8d87fafcaf44d1cb48b5499a42e9902a61d97d6ea191fed3e0e81cc8c3beb61839449f5ec87f54717801d2aa56df848bfa2b6602419360e3196005 WHIRLPOOL 0989323868fcf751c8aa4381130c0607cb19f8271c531018ee7bc12676b89e0f908f3999a7da6462c4654673eed822f427ed24d93da4e46d3ea0ddf7a8cc6eed
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/metadata.xml
deleted file mode 100644
index 097975e3ad..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/metadata.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/nova-agent-container-0.0.1-r1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/nova-agent-container-0.0.1-r1.ebuild
deleted file mode 100644
index f7d01e11e7..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/nova-agent-container-0.0.1-r1.ebuild
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright (c) 2013 CoreOS, Inc.. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="nova agent for rackspace images"
-HOMEPAGE="https://github.com/coreos/nova-agent-container"
-SRC_URI="${HOMEPAGE}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE=""
-
-src_install() {
- dodir /oem/nova-agent
- rsync -aq "${S}/" "${D}/oem/nova-agent/" || die
-}
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/Manifest b/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/Manifest
deleted file mode 100644
index cec1b06048..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST nova-agent-watcher-f750d8e5e91a7e7e22e26c9d241d27b1b7563d70.tar.gz 217622 BLAKE2B 73c2975faba141cb5d259adf0f8ae8a9bbe7e89fd94e9a66577ad67798c5a740d2e25b8d826ee1241b3ebfb783df5ea42bf747bc5d6b12fe5f2624950d367e00 SHA512 0e684f95328c253734f9f5feac9340d403f4f50b5e87cc4a5eab95dde2a13a5eef9c967bbede7b315757063a9b2aef557a5370b489e0a781a072eec0c4b2e25c
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/metadata.xml
deleted file mode 100644
index 0bdb255dd6..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/metadata.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
- coreos/nova-agent-watcher
-
-
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/nova-agent-watcher-0.0.7-r2.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/nova-agent-watcher-0.0.7-r2.ebuild
deleted file mode 120000
index 9723e177c8..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/nova-agent-watcher-0.0.7-r2.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-nova-agent-watcher-9999.ebuild
\ No newline at end of file
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/nova-agent-watcher-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/nova-agent-watcher-9999.ebuild
deleted file mode 100644
index 068ab472ff..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/nova-agent-watcher-9999.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2014 CoreOS, Inc.. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-COREOS_GO_PACKAGE="github.com/coreos/nova-agent-watcher"
-COREOS_GO_GO111MODULE="off"
-inherit coreos-go
-
-DESCRIPTION="Watches for changes from Nova and reapplies them with coreos-cloudinit"
-HOMEPAGE="https://github.com/coreos/nova-agent-watcher"
-
-if [[ ${PV} == 9999 ]]; then
- EGIT_REPO_URI="https://github.com/coreos/nova-agent-watcher.git"
- inherit git-r3
-else
- EGIT_VERSION="f750d8e5e91a7e7e22e26c9d241d27b1b7563d70"
- SRC_URI="https://github.com/coreos/nova-agent-watcher/archive/${EGIT_VERSION}.tar.gz -> ${PN}-${EGIT_VERSION}.tar.gz"
- S="${WORKDIR}/${PN}-${EGIT_VERSION}"
- KEYWORDS="amd64 arm64"
-fi
-
-LICENSE="Apache-2.0"
-SLOT="0"
-
-src_install() {
- into /oem
- dobin scripts/gentoo-to-networkd
- dobin "${GOBIN}"/nova-agent-watcher
-}
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/files/cloud-config.yml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/files/cloud-config.yml
deleted file mode 100644
index c051c235bc..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/files/cloud-config.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-#cloud-config
-
-coreos:
- units:
- - name: user-configdrive.service.d/netconf.conf
- runtime: yes
- content: |
- [Service]
- ExecStart=
- ExecStart=/usr/bin/coreos-cloudinit --oem=rackspace-onmetal
- - name: ping-out.service
- runtime: yes
- enable: yes
- content: |
- [Unit]
- After=user-config.target
-
- [Service]
- Type=oneshot
- RemainAfterExit=yes
- ExecStart=/usr/bin/sh -c "ping -A -c1 $(ip route | awk '/default/ { print $3 }')"
-
- [Install]
- WantedBy=user-config.target
- - name: media-configdrive.mount
- command: start
- runtime: yes
- content: |
- [Unit]
- Wants=user-configdrive.service
- Before=user-configdrive.service
-
- [Mount]
- What=/dev/disk/by-label/config-2
- Where=/media/configdrive
- Options=ro
- oem:
- id: onmetal
- name: Rackspace OnMetal
- version-id: @@OEM_VERSION_ID@@
- home-url: http://www.rackspace.com/
- bug-report-url: https://issues.flatcar.org
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/files/grub.cfg b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/files/grub.cfg
deleted file mode 100644
index 9519ecd969..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/files/grub.cfg
+++ /dev/null
@@ -1,13 +0,0 @@
-# Flatcar GRUB settings
-
-set oem_id="rackspace-onmetal"
-
-# Rackspace wanted a longer timeout, I forget why. (15 seconds)
-set timeout=15
-
-# Switch default console to ttyS4, only applies to Linux since
-# GRUB needs exact IO ports for non-standard serial devices.
-set linux_console="console=ttyS4,115200n8 8250.nr_uarts=5"
-
-# Blacklist MEI, the firmware is just plain broken.
-set linux_append="modprobe.blacklist=mei_me net.ifnames=0"
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/metadata.xml
deleted file mode 100644
index 097975e3ad..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/metadata.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/oem-rackspace-onmetal-0.0.8-r2.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/oem-rackspace-onmetal-0.0.8-r2.ebuild
deleted file mode 100644
index e6752e3a63..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/oem-rackspace-onmetal-0.0.8-r2.ebuild
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright (c) 2013 CoreOS, Inc.. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="OEM suite for Rackspace Teeth images"
-HOMEPAGE=""
-SRC_URI=""
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 x86"
-
-# no source directory
-S="${WORKDIR}"
-
-src_prepare() {
- default
- sed -e "s\\@@OEM_VERSION_ID@@\\${PVR}\\g" \
- "${FILESDIR}/cloud-config.yml" > "${T}/cloud-config.yml" || die
-}
-
-src_install() {
- insinto "/oem"
- doins "${T}/cloud-config.yml"
- doins "${FILESDIR}/grub.cfg"
-}
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/cloud-config.yml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/cloud-config.yml
deleted file mode 100644
index 4b5310c1ba..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/cloud-config.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-#cloud-config
-
-coreos:
- units:
- - name: nova-agent-auto.service
- command: restart
- runtime: yes
- content: |
- [Unit]
- After=dbus.service
- [Service]
- Environment=HOME=/root
- ExecStartPre=/bin/mount -t proc none /oem/nova-agent/proc
- ExecStartPre=/bin/mount -t xenfs none /oem/nova-agent/proc/xen
- ExecStartPre=/bin/mount --bind /dev /oem/nova-agent/dev
- ExecStartPre=/bin/mount --bind /sys /oem/nova-agent/sys
- ExecStart=/usr/bin/chroot /oem/nova-agent/ /usr/share/nova-agent/0.0.1.38/sbin/nova-agent -o - -n -l info /usr/share/nova-agent/nova-agent.py
- ExecStopPost=/bin/umount -f /oem/nova-agent/sys
- ExecStopPost=/bin/umount -f /oem/nova-agent/dev
- ExecStopPost=/bin/umount -f /oem/nova-agent/proc/xen
- ExecStopPost=/bin/umount -f /oem/nova-agent/proc
- - name: nova-agent-watcher.service
- command: restart
- runtime: yes
- content: |
- [Unit]
- After=dbus.service
-
- [Service]
- ExecStart=/oem/bin/nova-agent-watcher -watch-dir=/oem/nova-agent -scripts-dir=/oem/bin/
-
- oem:
- id: rackspace
- name: Rackspace Cloud Servers
- version-id: @@OEM_VERSION_ID@@
- home-url: https://www.rackspace.com/cloud/servers/
- bug-report-url: https://issues.flatcar.org
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/flatcar-setup-environment b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/flatcar-setup-environment
deleted file mode 100755
index 2e5f9c1bd0..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/flatcar-setup-environment
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash -e
-
-ENV=$1
-
-if [ -z "$ENV" ]; then
- echo usage: $0 /etc/environment
- exit 1
-fi
-# test for rw
-touch $ENV
-if [ $? -ne 0 ]; then
- echo exiting, unable to modify: $ENV
- exit 1
-fi
-
-sed -i -e '/^COREOS_PUBLIC_IPV4=/d' \
- -e '/^COREOS_PRIVATE_IPV4=/d' \
- "${ENV}"
-
-# We spin loop until the nova-agent sets up the ip addresses
-function get_ip () {
- IF=$1
- IP=
- while [ 1 ]; do
- IP=$(ifconfig $IF | awk '/inet /{print $2}')
- if [ "$IP" != "" ]; then
- break
- fi
- sleep .1
- done
- echo $IP
-}
-
-echo COREOS_PUBLIC_IPV4=$(get_ip eth0) >> $ENV
-echo COREOS_PRIVATE_IPV4=$(get_ip eth1) >> $ENV
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/grub.cfg b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/grub.cfg
deleted file mode 100644
index 8e05a0e064..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/grub.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-# Flatcar GRUB settings
-
-set oem_id="rackspace"
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/metadata.xml
deleted file mode 100644
index 097975e3ad..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/metadata.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/oem-rackspace-0.0.4-r3.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/oem-rackspace-0.0.4-r3.ebuild
deleted file mode 100644
index f36e73fa14..0000000000
--- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/oem-rackspace-0.0.4-r3.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
-# Copyright (c) 2013 CoreOS, Inc.. All rights reserved.
-# Distributed under the terms of the GNU General Public License v2
-# $Header:$
-#
-
-EAPI=7
-
-DESCRIPTION="oem suite for rackspace images"
-HOMEPAGE=""
-SRC_URI=""
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE=""
-
-RDEPEND="
- coreos-base/nova-agent-container
- coreos-base/nova-agent-watcher
-"
-
-S="${WORKDIR}"
-
-src_prepare() {
- default
- sed -e "s\\@@OEM_VERSION_ID@@\\${PVR}\\g" \
- "${FILESDIR}/cloud-config.yml" > "${T}/cloud-config.yml" || die
-}
-
-src_install() {
- insinto "/oem"
- doins "${T}/cloud-config.yml"
- doins "${FILESDIR}/grub.cfg"
-
- into "/oem"
- dobin "${FILESDIR}/flatcar-setup-environment"
-}
diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch b/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch
index 1065f45d67..c29e3cc518 100644
--- a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch
+++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch
@@ -21,12 +21,10 @@ index 897eeabd..2a861637 100644
* [DigitalOcean] (`digitalocean`) - Ignition will read its configuration from the droplet userdata. Cloud SSH keys and network configuration are handled separately.
* [Exoscale] (`exoscale`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
* [Google Cloud] (`gcp`) - Ignition will read its configuration from the instance metadata entry named "user-data". Cloud SSH keys are handled separately.
-@@ -31,6 +32,9 @@ Ignition is currently supported for the following platforms:
+@@ -31,6 +32,7 @@ Ignition is currently supported for the following platforms:
* [Equinix Metal] (`packet`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
* [IBM Power Systems Virtual Server] (`powervs`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
* [QEMU] (`qemu`) - Ignition will read its configuration from the 'opt/com.coreos/config' key on the QEMU Firmware Configuration Device (available in QEMU 2.4.0 and higher).
-+* `rackspace` - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
-+* `rackspace-onmetal` - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
+* `vagrant` - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
* [Scaleway] (`scaleway`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
* [UpCloud] (`upcloud`) - Ignition will read its configuration from the instance userdata fetched from the metadata service (which is NOT enabled by default, make sure you enable it if you use custom images). Cloud SSH keys are handled separately.
diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-2.24.0-r2.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-2.24.0-r3.ebuild
similarity index 100%
rename from sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-2.24.0-r2.ebuild
rename to sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-2.24.0-r3.ebuild