diff --git a/Cargo.lock b/Cargo.lock index ee27333164a..db59812d22a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -245,24 +245,6 @@ dependencies = [ "settings-plugins", ] -[[package]] -name = "metal-k8s-1_28" -version = "0.1.0" -dependencies = [ - "settings-defaults", - "settings-migrations", - "settings-plugins", -] - -[[package]] -name = "metal-k8s-1_29" -version = "0.1.0" -dependencies = [ - "settings-defaults", - "settings-migrations", - "settings-plugins", -] - [[package]] name = "settings-defaults" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 3261b1b305c..85c4f1e6863 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,8 +31,6 @@ members = [ "variants/aws-k8s-1.30-nvidia", "variants/aws-k8s-1.31-nvidia", "variants/metal-dev", - "variants/metal-k8s-1.28", - "variants/metal-k8s-1.29", "variants/vmware-dev", "variants/vmware-k8s-1.28", "variants/vmware-k8s-1.28-fips", diff --git a/PROVISIONING-METAL.md b/PROVISIONING-METAL.md index d3f14f8f2f7..2f9e499b913 100644 --- a/PROVISIONING-METAL.md +++ b/PROVISIONING-METAL.md @@ -39,7 +39,7 @@ You might need to install `jq` to fetch the VERSION. ```shell ARCH="x86_64" -VERSION=$(curl -s https://api.github.com/repos/bottlerocket-os/bottlerocket/releases/latest | jq -r '.name') +VERSION="v1.26.1" # New releases do not have metal-k8s variants VARIANT="metal-k8s-1.28" IMAGE="bottlerocket-${VARIANT}-${ARCH}-${VERSION}.img.lz4" OUTDIR="${VARIANT}-${VERSION}" diff --git a/README.md b/README.md index 191d6b9e5c1..02a5516e462 100644 --- a/README.md +++ b/README.md @@ -92,15 +92,11 @@ We also have variants that are designed to be Kubernetes worker nodes in VMware: * `vmware-k8s-1.30` * `vmware-k8s-1.31` -The following variants are designed to be Kubernetes worker nodes on bare metal: - -* `metal-k8s-1.28` -* `metal-k8s-1.29` - The following variants are no longer supported: * All Kubernetes variants using Kubernetes 1.23 and earlier -* Bare metal and VMware variants using Kubernetes 1.27 and earlier +* VMware variants using Kubernetes 1.27 and earlier +* Bare metal variants for Kubernetes We recommend users replace nodes running these variants with the [latest variant compatible with their cluster](variants/). diff --git a/TESTING.md b/TESTING.md index b0c0099052c..ef5c528801f 100644 --- a/TESTING.md +++ b/TESTING.md @@ -334,59 +334,6 @@ You can monitor the tests with: cargo make watch-test ``` -### metal-k8s - -First, an initial baremetal management cluster needs to be created using [`EKS Anywhere`](https://anywhere.eks.amazonaws.com/docs/getting-started/production-environment/baremetal-getstarted/#create-an-initial-cluster). -You can then set `TESTSYS_MGMT_CLUSTER_KUBECONFIG` to the path to the management clusters kubeconfig. -You need to [build](BUILDING.md) Bottlerocket and a publicly accessible [TUF repository](https://github.com/bottlerocket-os/bottlerocket/blob/develop/PUBLISHING.md#repo-location) to test metal variants. -In addition to the management cluster, you will need to [prepare a hardware CSV file](https://anywhere.eks.amazonaws.com/docs/reference/baremetal/bare-preparation/#prepare-hardware-inventory) containing all machines you want to provision and a [cluster config](https://anywhere.eks.amazonaws.com/docs/reference/clusterspec/baremetal/) for the cluster. -Create a directory in `tests/shared/clusters` with an identifier for this cluster, i.e cluster1 (`tests/shared/clusters/cluster1`). -In that directory create 2 files, `cluster.yaml` with the EKS Anywhere cluster config, and `hardware.csv`. -In `Test.toml` set `cluster-names = ["cluster1"]` to tell TestSys that we want the cluster config and hardware csv from the directory we just created. - -Metal testing also requires and additional manual step for testing. -The Bottlerocket build system compresses the metal images with lz4, but EKS Anywhere requires them to be gzipped, so before testing make sure to uncompress the lz4 image and gzip it. -Make sure it is downloadable from a URL accessible from the management cluster. -The directory used should be added to `Test.toml` as `os-image-dir`. - -Change the commands below to the desired `metal-k8s` variant: - -First, build the Metal variant you want to test. - -```shell -cargo make \ - -e BUILDSYS_VARIANT="metal-k8s-1.29" \ - -e BUILDSYS_ARCH="x86_64" \ - build -``` - -Build the TUF repo containing the metal images. - -```shell -cargo make \ - -e BUILDSYS_VARIANT="metal-k8s-1.29" \ - -e BUILDSYS_ARCH="x86_64" \ - repo -``` - -Make sure you gzip the metal image and add it to your `os-image-dir`. - -Now, you can run the test. - -```shell -cargo make \ - -e BUILDSYS_VARIANT="metal-k8s-1.29" \ - -e BUILDSYS_ARCH="x86_64" \ - -e TESTSYS_MGMT_CLUSTER_KUBECONFIG=${TESTSYS_MGMT_CLUSTER_KUBECONFIG} - test -``` - -You can monitor the tests with: - -```shell -cargo make watch-test -``` - ## Migration Testing Migration testing is used to ensure Bottlerocket can update from one version to a new version and back. diff --git a/packages/settings-defaults/settings-defaults.spec b/packages/settings-defaults/settings-defaults.spec index 28f65ae0aee..32d792151fe 100644 --- a/packages/settings-defaults/settings-defaults.spec +++ b/packages/settings-defaults/settings-defaults.spec @@ -189,24 +189,6 @@ Conflicts: %{_cross_os}settings-defaults(any) %description metal-dev %{summary}. -%package metal-k8s-1.30 -Summary: Settings defaults for the metal-k8s 1.27 through 1.30 variants -Requires: (%{shrink: - %{_cross_os}variant(metal-k8s-1.27) or - %{_cross_os}variant(metal-k8s-1.28) or - %{_cross_os}variant(metal-k8s-1.29) or - %{_cross_os}variant(metal-k8s-1.30) - %{nil}}) -Provides: %{_cross_os}settings-defaults(any) -Provides: %{_cross_os}settings-defaults(metal-k8s-1.27) -Provides: %{_cross_os}settings-defaults(metal-k8s-1.28) -Provides: %{_cross_os}settings-defaults(metal-k8s-1.29) -Provides: %{_cross_os}settings-defaults(metal-k8s-1.30) -Conflicts: %{_cross_os}settings-defaults(any) - -%description metal-k8s-1.30 -%{summary}. - %package vmware-dev Summary: Settings defaults for the vmware-dev variant Requires: %{_cross_os}variant(vmware-dev) @@ -266,7 +248,6 @@ for defaults in \ aws-k8s-1.31 \ aws-k8s-1.31-nvidia \ metal-dev \ - metal-k8s-1.30 \ vmware-dev \ vmware-k8s-1.31 \ ; @@ -303,7 +284,6 @@ for defaults in \ aws-k8s-1.31 \ aws-k8s-1.31-nvidia \ metal-dev \ - metal-k8s-1.30 \ vmware-dev \ vmware-k8s-1.31 \ ; @@ -376,10 +356,6 @@ done %{_cross_defaultsdir}/metal-dev.toml %{_cross_tmpfilesdir}/storewolf-defaults-metal-dev.conf -%files metal-k8s-1.30 -%{_cross_defaultsdir}/metal-k8s-1.30.toml -%{_cross_tmpfilesdir}/storewolf-defaults-metal-k8s-1.30.conf - %files vmware-dev %{_cross_defaultsdir}/vmware-dev.toml %{_cross_tmpfilesdir}/storewolf-defaults-vmware-dev.conf diff --git a/packages/settings-plugins/settings-plugins.spec b/packages/settings-plugins/settings-plugins.spec index fb6c2715cc7..0da4e76237d 100644 --- a/packages/settings-plugins/settings-plugins.spec +++ b/packages/settings-plugins/settings-plugins.spec @@ -107,19 +107,6 @@ Conflicts: %{_cross_os}settings-plugin(any) %description metal-dev %{summary}. -%package metal-k8s -Summary: Settings plugin for the metal-k8s variants -Requires: %{_cross_os}variant-family(metal-k8s) -Provides: %{_cross_os}settings-plugin(any) -Provides: %{_cross_os}settings-plugin(metal-k8s-1.27) -Provides: %{_cross_os}settings-plugin(metal-k8s-1.28) -Provides: %{_cross_os}settings-plugin(metal-k8s-1.29) -Provides: %{_cross_os}settings-plugin(metal-k8s-1.30) -Conflicts: %{_cross_os}settings-plugin(any) - -%description metal-k8s -%{summary}. - %package vmware-dev Summary: Settings plugin for the vmware-dev variant Requires: %{_cross_os}variant(vmware-dev) @@ -160,7 +147,6 @@ Conflicts: %{_cross_os}settings-plugin(any) -p settings-plugin-aws-k8s \ -p settings-plugin-aws-k8s-nvidia \ -p settings-plugin-metal-dev \ - -p settings-plugin-metal-k8s \ -p settings-plugin-vmware-dev \ -p settings-plugin-vmware-k8s \ %{nil} @@ -177,7 +163,6 @@ for plugin in \ aws-k8s-nvidia \ aws-k8s \ metal-dev \ - metal-k8s \ vmware-dev \ vmware-k8s \ ; @@ -228,11 +213,6 @@ done %{_cross_factorydir}%{_cross_sysconfdir}/ld.so.conf.d/metal-dev.conf %{_cross_tmpfilesdir}/settings-plugin-metal-dev.conf -%files metal-k8s -%{_cross_pluginsdir}/metal-k8s/libsettings.so -%{_cross_factorydir}%{_cross_sysconfdir}/ld.so.conf.d/metal-k8s.conf -%{_cross_tmpfilesdir}/settings-plugin-metal-k8s.conf - %files vmware-dev %{_cross_pluginsdir}/vmware-dev/libsettings.so %{_cross_factorydir}%{_cross_sysconfdir}/ld.so.conf.d/vmware-dev.conf diff --git a/variants/README.md b/variants/README.md index 845132e4c75..ac5687aa365 100644 --- a/variants/README.md +++ b/variants/README.md @@ -221,19 +221,6 @@ This variant is compatible with Kubernetes 1.31, 1.32, 1.33, and 1.34 clusters. The [metal-dev](metal-dev/Cargo.toml) variant has useful packages for local development of the OS and is intended to run bare metal. It includes tools for troubleshooting as well as Docker for running containers. -### metal-k8s-1.28: Metal Kubernetes 1.28 node - -The [metal-k8s-1.28](metal-k8s-1.28/Cargo.toml) variant includes the packages needed to run a Kubernetes node on bare metal. -It supports self-hosted clusters. - -This variant is compatible with Kubernetes 1.28, 1.29, 1.30, and 1.31 clusters. - -### metal-k8s-1.29: Metal Kubernetes 1.28 node - -The [metal-k8s-1.29](metal-k8s-1.29/Cargo.toml) variant includes the packages needed to run a Kubernetes node on bare metal. -It supports self-hosted clusters. - -This variant is compatible with Kubernetes 1.29, 1.30, 1.31, and 1.32 clusters. ### Deprecated variants @@ -446,6 +433,20 @@ It supported self-hosted clusters. This variant was compatible with Kubernetes 1.27, 1.28, 1.29, and 1.30 clusters. +### metal-k8s-1.28: Metal Kubernetes 1.28 node + +The [metal-k8s-1.28](metal-k8s-1.28/Cargo.toml) variant included the packages needed to run a Kubernetes node on bare metal. +It supports self-hosted clusters. + +This variant was compatible with Kubernetes 1.28, 1.29, 1.30, and 1.31 clusters. + +### metal-k8s-1.29: Metal Kubernetes 1.29 node + +The [metal-k8s-1.29](metal-k8s-1.29/Cargo.toml) variant included the packages needed to run a Kubernetes node on bare metal. +It supports self-hosted clusters. + +This variant was compatible with Kubernetes 1.29, 1.30, 1.31, and 1.32 clusters. + ## Development Say we want to create `my-variant`, a custom build of Bottlerocket that runs `my-agent`. diff --git a/variants/metal-k8s-1.28/Cargo.toml b/variants/metal-k8s-1.28/Cargo.toml deleted file mode 100644 index 5e456e70966..00000000000 --- a/variants/metal-k8s-1.28/Cargo.toml +++ /dev/null @@ -1,46 +0,0 @@ -[package] -# This is the metal-k8s-1.28 variant. "." is not allowed in crate names, but -# we don't use this crate name anywhere. -name = "metal-k8s-1_28" -version = "0.1.0" -edition = "2021" -publish = false -build = "../build.rs" -# Don't rebuild crate just because of changes to README. -exclude = ["README.md"] - -[package.metadata.build-variant.image-layout] -os-image-size-gib = 4 -partition-plan = "unified" - -[package.metadata.build-variant.image-features] -grub-set-private-var = true -uefi-secure-boot = true -xfs-data-partition = true -systemd-networkd = true - -[package.metadata.build-variant] -image-format = "raw" -supported-arches = ["x86_64"] -kernel-parameters = [ - # Only reserve if there are at least 2GB - "crashkernel=2G-:256M" -] -included-packages = [ - # core - "release", - "kernel-6.1", - # k8s - "aws-iam-authenticator", - "cni", - "cni-plugins", - "kubelet-1.28", -] - -[lib] -path = "../variants.rs" - -[build-dependencies] -settings-defaults = { path = "../../packages/settings-defaults" } -settings-plugins = { path = "../../packages/settings-plugins" } -settings-migrations = { path = "../../packages/settings-migrations" } diff --git a/variants/metal-k8s-1.29/Cargo.toml b/variants/metal-k8s-1.29/Cargo.toml deleted file mode 100644 index f1cc32487d9..00000000000 --- a/variants/metal-k8s-1.29/Cargo.toml +++ /dev/null @@ -1,46 +0,0 @@ -[package] -# This is the metal-k8s-1.29 variant. "." is not allowed in crate names, but -# we don't use this crate name anywhere. -name = "metal-k8s-1_29" -version = "0.1.0" -edition = "2021" -publish = false -build = "../build.rs" -# Don't rebuild crate just because of changes to README. -exclude = ["README.md"] - -[package.metadata.build-variant.image-layout] -os-image-size-gib = 4 -partition-plan = "unified" - -[package.metadata.build-variant.image-features] -grub-set-private-var = true -uefi-secure-boot = true -xfs-data-partition = true -systemd-networkd = true - -[package.metadata.build-variant] -image-format = "raw" -supported-arches = ["x86_64"] -kernel-parameters = [ - # Only reserve if there are at least 2GB - "crashkernel=2G-:256M" -] -included-packages = [ - # core - "release", - "kernel-6.1", - # k8s - "aws-iam-authenticator", - "cni", - "cni-plugins", - "kubelet-1.29", -] - -[lib] -path = "../variants.rs" - -[build-dependencies] -settings-defaults = { path = "../../packages/settings-defaults" } -settings-plugins = { path = "../../packages/settings-plugins" } -settings-migrations = { path = "../../packages/settings-migrations" }