Skip to content

Commit

Permalink
Merge pull request #4142 from ginglis13/k8s-1.31-boilerplate-variants
Browse files Browse the repository at this point in the history
variants: add k8s-1.31 variants boilerplate
  • Loading branch information
ginglis13 authored Aug 20, 2024
2 parents 2f02966 + 918d69a commit ddefba0
Show file tree
Hide file tree
Showing 75 changed files with 241 additions and 33 deletions.
27 changes: 27 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,20 @@ members = [
"variants/aws-k8s-1.28",
"variants/aws-k8s-1.29",
"variants/aws-k8s-1.30",
"variants/aws-k8s-1.31",
"variants/aws-k8s-1.27-nvidia",
"variants/aws-k8s-1.28-nvidia",
"variants/aws-k8s-1.29-nvidia",
"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.29",
"variants/vmware-k8s-1.30",
"variants/vmware-k8s-1.31",
]

[profile.dev]
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ The following variants support EKS, as described above:
* `aws-k8s-1.28`
* `aws-k8s-1.29`
* `aws-k8s-1.30`
* `aws-k8s-1.31`
* `aws-k8s-1.23-nvidia`
* `aws-k8s-1.24-nvidia`
* `aws-k8s-1.25-nvidia`
Expand All @@ -77,6 +78,7 @@ The following variants support EKS, as described above:
* `aws-k8s-1.28-nvidia`
* `aws-k8s-1.29-nvidia`
* `aws-k8s-1.30-nvidia`
* `aws-k8s-1.31-nvidia`

The following variants support ECS:

Expand All @@ -90,6 +92,7 @@ We also have variants that are designed to be Kubernetes worker nodes in VMware:
* `vmware-k8s-1.28`
* `vmware-k8s-1.29`
* `vmware-k8s-1.30`
* `vmware-k8s-1.31`

The following variants are designed to be Kubernetes worker nodes on bare metal:

Expand Down
54 changes: 30 additions & 24 deletions packages/settings-defaults/settings-defaults.spec
Original file line number Diff line number Diff line change
Expand Up @@ -129,40 +129,44 @@ Conflicts: %{_cross_os}settings-defaults(any)
%description aws-k8s-1.26-nvidia
%{summary}.

%package aws-k8s-1.30
%package aws-k8s-1.31
Summary: Settings defaults for the aws-k8s 1.27 through 1.30 variants
Requires: (%{shrink:
%{_cross_os}variant(aws-k8s-1.27) or
%{_cross_os}variant(aws-k8s-1.28) or
%{_cross_os}variant(aws-k8s-1.29) or
%{_cross_os}variant(aws-k8s-1.30)
%{_cross_os}variant(aws-k8s-1.30) or
%{_cross_os}variant(aws-k8s-1.31)
%{nil}})
Provides: %{_cross_os}settings-defaults(any)
Provides: %{_cross_os}settings-defaults(aws-k8s-1.27)
Provides: %{_cross_os}settings-defaults(aws-k8s-1.28)
Provides: %{_cross_os}settings-defaults(aws-k8s-1.29)
Provides: %{_cross_os}settings-defaults(aws-k8s-1.30)
Provides: %{_cross_os}settings-defaults(aws-k8s-1.31)
Conflicts: %{_cross_os}settings-defaults(any)

%description aws-k8s-1.30
%description aws-k8s-1.31
%{summary}.

%package aws-k8s-1.30-nvidia
%package aws-k8s-1.31-nvidia
Summary: Settings defaults for the aws-k8s 1.27 through 1.30 nvidia variants
Requires: (%{shrink:
%{_cross_os}variant(aws-k8s-1.27-nvidia) or
%{_cross_os}variant(aws-k8s-1.28-nvidia) or
%{_cross_os}variant(aws-k8s-1.29-nvidia) or
%{_cross_os}variant(aws-k8s-1.30-nvidia)
%{_cross_os}variant(aws-k8s-1.30-nvidia) or
%{_cross_os}variant(aws-k8s-1.31-nvidia)
%{nil}})
Provides: %{_cross_os}settings-defaults(any)
Provides: %{_cross_os}settings-defaults(aws-k8s-1.27-nvidia)
Provides: %{_cross_os}settings-defaults(aws-k8s-1.28-nvidia)
Provides: %{_cross_os}settings-defaults(aws-k8s-1.29-nvidia)
Provides: %{_cross_os}settings-defaults(aws-k8s-1.30-nvidia)
Provides: %{_cross_os}settings-defaults(aws-k8s-1.31-nvidia)
Conflicts: %{_cross_os}settings-defaults(any)

%description aws-k8s-1.30-nvidia
%description aws-k8s-1.31-nvidia
%{summary}.

%package metal-dev
Expand Down Expand Up @@ -203,22 +207,24 @@ Conflicts: %{_cross_os}settings-defaults(any)
%description vmware-dev
%{summary}.

%package vmware-k8s-1.30
%package vmware-k8s-1.31
Summary: Settings defaults for the vmware-k8s 1.27 through 1.30 variants
Requires: (%{shrink:
%{_cross_os}variant(vmware-k8s-1.27) or
%{_cross_os}variant(vmware-k8s-1.28) or
%{_cross_os}variant(vmware-k8s-1.29) or
%{_cross_os}variant(vmware-k8s-1.30)
%{_cross_os}variant(vmware-k8s-1.30) or
%{_cross_os}variant(vmware-k8s-1.31)
%{nil}})
Provides: %{_cross_os}settings-defaults(any)
Provides: %{_cross_os}settings-defaults(vmware-k8s-1.27)
Provides: %{_cross_os}settings-defaults(vmware-k8s-1.28)
Provides: %{_cross_os}settings-defaults(vmware-k8s-1.29)
Provides: %{_cross_os}settings-defaults(vmware-k8s-1.30)
Provides: %{_cross_os}settings-defaults(vmware-k8s-1.31)
Conflicts: %{_cross_os}settings-defaults(any)

%description vmware-k8s-1.30
%description vmware-k8s-1.31
%{summary}.

%prep
Expand All @@ -239,12 +245,12 @@ for defaults in \
aws-k8s-1.25-nvidia \
aws-k8s-1.26 \
aws-k8s-1.26-nvidia \
aws-k8s-1.30 \
aws-k8s-1.30-nvidia \
aws-k8s-1.31 \
aws-k8s-1.31-nvidia \
metal-dev \
metal-k8s-1.30 \
vmware-dev \
vmware-k8s-1.30 \
vmware-k8s-1.31 \
;
do
projects+=( "-p" "settings-defaults-$(echo "${defaults}" | sed -e 's,\.,_,g')" )
Expand Down Expand Up @@ -276,12 +282,12 @@ for defaults in \
aws-k8s-1.25-nvidia \
aws-k8s-1.26 \
aws-k8s-1.26-nvidia \
aws-k8s-1.30 \
aws-k8s-1.30-nvidia \
aws-k8s-1.31 \
aws-k8s-1.31-nvidia \
metal-dev \
metal-k8s-1.30 \
vmware-dev \
vmware-k8s-1.30 \
vmware-k8s-1.31 \
;
do
crate="$(echo "${defaults}" | sed -e 's,\.,_,g')"
Expand Down Expand Up @@ -340,13 +346,13 @@ done
%{_cross_defaultsdir}/aws-k8s-1.26-nvidia.toml
%{_cross_tmpfilesdir}/storewolf-defaults-aws-k8s-1.26-nvidia.conf

%files aws-k8s-1.30
%{_cross_defaultsdir}/aws-k8s-1.30.toml
%{_cross_tmpfilesdir}/storewolf-defaults-aws-k8s-1.30.conf
%files aws-k8s-1.31
%{_cross_defaultsdir}/aws-k8s-1.31.toml
%{_cross_tmpfilesdir}/storewolf-defaults-aws-k8s-1.31.conf

%files aws-k8s-1.30-nvidia
%{_cross_defaultsdir}/aws-k8s-1.30-nvidia.toml
%{_cross_tmpfilesdir}/storewolf-defaults-aws-k8s-1.30-nvidia.conf
%files aws-k8s-1.31-nvidia
%{_cross_defaultsdir}/aws-k8s-1.31-nvidia.toml
%{_cross_tmpfilesdir}/storewolf-defaults-aws-k8s-1.31-nvidia.conf

%files metal-dev
%{_cross_defaultsdir}/metal-dev.toml
Expand All @@ -360,6 +366,6 @@ done
%{_cross_defaultsdir}/vmware-dev.toml
%{_cross_tmpfilesdir}/storewolf-defaults-vmware-dev.conf

%files vmware-k8s-1.30
%{_cross_defaultsdir}/vmware-k8s-1.30.toml
%{_cross_tmpfilesdir}/storewolf-defaults-vmware-k8s-1.30.conf
%files vmware-k8s-1.31
%{_cross_defaultsdir}/vmware-k8s-1.31.toml
%{_cross_tmpfilesdir}/storewolf-defaults-vmware-k8s-1.31.conf
3 changes: 3 additions & 0 deletions packages/settings-plugins/settings-plugins.spec
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ Provides: %{_cross_os}settings-plugin(aws-k8s-1.29)
Provides: %{_cross_os}settings-plugin(aws-k8s-1.29-nvidia)
Provides: %{_cross_os}settings-plugin(aws-k8s-1.30)
Provides: %{_cross_os}settings-plugin(aws-k8s-1.30-nvidia)
Provides: %{_cross_os}settings-plugin(aws-k8s-1.31)
Provides: %{_cross_os}settings-plugin(aws-k8s-1.31-nvidia)
Conflicts: %{_cross_os}settings-plugin(any)

%description aws-k8s
Expand Down Expand Up @@ -118,6 +120,7 @@ Provides: %{_cross_os}settings-plugin(vmware-k8s-1.27)
Provides: %{_cross_os}settings-plugin(vmware-k8s-1.28)
Provides: %{_cross_os}settings-plugin(vmware-k8s-1.29)
Provides: %{_cross_os}settings-plugin(vmware-k8s-1.30)
Provides: %{_cross_os}settings-plugin(vmware-k8s-1.31)
Conflicts: %{_cross_os}settings-plugin(any)

%description vmware-k8s
Expand Down
6 changes: 3 additions & 3 deletions sources/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions sources/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ members = [
"settings-defaults/aws-k8s-1.25-nvidia",
"settings-defaults/aws-k8s-1.26",
"settings-defaults/aws-k8s-1.26-nvidia",
"settings-defaults/aws-k8s-1.30",
"settings-defaults/aws-k8s-1.30-nvidia",
"settings-defaults/aws-k8s-1.31",
"settings-defaults/aws-k8s-1.31-nvidia",
"settings-defaults/metal-dev",
"settings-defaults/metal-k8s-1.30",
"settings-defaults/vmware-dev",
"settings-defaults/vmware-k8s-1.30",
"settings-defaults/vmware-k8s-1.31",

# (all previous migrations archived; add new ones after this line)
"settings-migrations/v1.21.0/pluto-remove-generators-v0-1-0",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
name = "settings-defaults-aws-k8s-1_30-nvidia"
name = "settings-defaults-aws-k8s-1_31-nvidia"
version = "0.1.0"
edition = "2021"
license = "Apache-2.0 OR MIT"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
name = "settings-defaults-aws-k8s-1_30"
name = "settings-defaults-aws-k8s-1_31"
version = "0.1.0"
edition = "2021"
license = "Apache-2.0 OR MIT"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
name = "settings-defaults-vmware-k8s-1_30"
name = "settings-defaults-vmware-k8s-1_31"
version = "0.1.0"
edition = "2021"
license = "Apache-2.0 OR MIT"
Expand Down
22 changes: 22 additions & 0 deletions variants/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,21 @@ It supports self-hosted clusters and clusters managed by [EKS](https://aws.amazo

This variant is compatible with Kubernetes 1.30, 1.31, 1.32, and 1.33 clusters.

### aws-k8s-1.31: Kubernetes 1.31 node

The [aws-k8s-1.31](aws-k8s-1.31/Cargo.toml) variant includes the packages needed to run a Kubernetes node in AWS.
It supports self-hosted clusters and clusters managed by [EKS](https://aws.amazon.com/eks/).

This variant is compatible with Kubernetes 1.31, 1.32, 1.33, and 1.34 clusters.

### aws-k8s-1.31-nvidia: Kubernetes 1.31 NVIDIA node

The [aws-k8s-1.31-nvidia](aws-k8s-1.31-nvidia/Cargo.toml) variant includes the packages needed to run a Kubernetes node in AWS.
It also includes the required packages to configure containers to leverage NVIDIA GPUs.
It supports self-hosted clusters and clusters managed by [EKS](https://aws.amazon.com/eks/).

This variant is compatible with Kubernetes 1.31, 1.32, 1.33, and 1.34 clusters.

### aws-ecs-1: Amazon ECS container instance

The [aws-ecs-1](aws-ecs-1/Cargo.toml) variant includes the packages needed to run an [Amazon ECS](https://ecs.aws)
Expand Down Expand Up @@ -209,6 +224,13 @@ It supports self-hosted clusters.

This variant is compatible with Kubernetes 1.30, 1.31, 1.32, and 1.33 clusters.

## vmware-k8s-1.31: VMware Kubernetes 1.31 node

The [vmware-k8s-1.31](vmware-k8s-1.31/Cargo.toml) variant includes the packages needed to run a Kubernetes worker node as a VMware guest.
It supports self-hosted clusters.

This variant is compatible with Kubernetes 1.31, 1.32, 1.33, and 1.34 clusters.

### metal-dev: Metal development build

The [metal-dev](metal-dev/Cargo.toml) variant has useful packages for local development of the OS and is intended to run bare metal.
Expand Down
50 changes: 50 additions & 0 deletions variants/aws-k8s-1.31-nvidia/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
[package]
# This is the aws-k8s-1.31-nvidia variant. "." is not allowed in crate names, but we
# don't use this crate name anywhere.
name = "aws-k8s-1_31-nvidia"
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

[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]
included-packages = [
# core
"release",
"kernel-6.1",
# k8s
"cni",
"cni-plugins",
"kubelet-1.31",
"aws-iam-authenticator",
# nvidia
"nvidia-container-toolkit-k8s",
"nvidia-k8s-device-plugin",
"kmod-6.1-nvidia-tesla-535",
]
kernel-parameters = [
"console=tty0",
"console=ttyS0,115200n8",
"net.ifnames=0",
"netdog.default-interface=eth0:dhcp4,dhcp6?",
"quiet",
]

[lib]
path = "../variants.rs"

[build-dependencies]
settings-defaults = { path = "../../packages/settings-defaults" }
settings-plugins = { path = "../../packages/settings-plugins" }
settings-migrations = { path = "../../packages/settings-migrations" }
Loading

0 comments on commit ddefba0

Please sign in to comment.