diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c67c685d178..c51519b5b19 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,7 +30,7 @@ jobs: continue-on-error: ${{ matrix.supported }} strategy: matrix: - variant: [aws-k8s-1.22, aws-k8s-1.23, aws-k8s-1.24, aws-k8s-1.25, aws-ecs-1] + variant: [aws-k8s-1.22, aws-k8s-1.23, aws-k8s-1.24, aws-k8s-1.25, aws-k8s-1.26, aws-ecs-1] arch: [x86_64, aarch64] supported: [true] fetch-upstream: ["false"] @@ -63,6 +63,10 @@ jobs: arch: x86_64 supported: false fetch-upstream: "false" + - variant: metal-k8s-1.26 + arch: x86_64 + supported: false + fetch-upstream: "false" - variant: vmware-k8s-1.22 arch: x86_64 supported: true @@ -79,6 +83,10 @@ jobs: arch: x86_64 supported: true fetch-upstream: "false" + - variant: vmware-k8s-1.26 + arch: x86_64 + supported: true + fetch-upstream: "false" - variant: aws-k8s-1.22-nvidia arch: x86_64 supported: true @@ -111,6 +119,14 @@ jobs: arch: aarch64 supported: true fetch-upstream: "true" + - variant: aws-k8s-1.26-nvidia + arch: x86_64 + supported: true + fetch-upstream: "true" + - variant: aws-k8s-1.26-nvidia + arch: aarch64 + supported: true + fetch-upstream: "true" - variant: aws-ecs-1-nvidia arch: x86_64 supported: true diff --git a/README.md b/README.md index f805759fdfe..5ebf6656ce8 100644 --- a/README.md +++ b/README.md @@ -64,10 +64,12 @@ The following variants support EKS, as described above: * `aws-k8s-1.23` * `aws-k8s-1.24` * `aws-k8s-1.25` +* `aws-k8s-1.26` * `aws-k8s-1.22-nvidia` * `aws-k8s-1.23-nvidia` * `aws-k8s-1.24-nvidia` * `aws-k8s-1.25-nvidia` +* `aws-k8s-1.26-nvidia` The following variants support ECS: @@ -80,6 +82,7 @@ We also have variants that are designed to be Kubernetes worker nodes in VMware: * `vmware-k8s-1.23` * `vmware-k8s-1.24` * `vmware-k8s-1.25` +* `vmware-k8s-1.26` The following variants are designed to be Kubernetes worker nodes on bare metal: @@ -87,6 +90,7 @@ The following variants are designed to be Kubernetes worker nodes on bare metal: * `metal-k8s-1.23` * `metal-k8s-1.24` * `metal-k8s-1.25` +* `metal-k8s-1.26` The following variants are no longer supported: diff --git a/packages/kubernetes-1.26/Cargo.toml b/packages/kubernetes-1.26/Cargo.toml new file mode 100644 index 00000000000..9c9354cc6c2 --- /dev/null +++ b/packages/kubernetes-1.26/Cargo.toml @@ -0,0 +1,31 @@ +[package] +# "." is not allowed in crate names, but we want a friendlier name for the +# directory and spec file, so we override it below. +name = "kubernetes-1_26" +version = "0.1.0" +edition = "2021" +publish = false +build = "build.rs" + +[lib] +path = "pkg.rs" + +[package.metadata.build-package] +package-name = "kubernetes-1.26" + +[[package.metadata.build-package.external-files]] +url = "https://distro.eks.amazonaws.com/kubernetes-1-26/releases/3/artifacts/kubernetes/v1.26.1/kubernetes-src.tar.gz" +sha512 = "06762a6e032b6940af7e07986cc85520067c559af558a90bcf2bc1c86157b888d9577c9d363bcfbe75e9bdf3176ab3479024fb961b2219e02e78cbc2c8f76fea" +# RPM BuildRequires +[build-dependencies] +glibc = { path = "../glibc" } + +# RPM Requires +[dependencies] +aws-signing-helper = { path = "../aws-signing-helper" } +ecr-credential-provider = { path = "../ecr-credential-provider" } +# `conntrack-tools`, `containerd` and `findutils` are only needed at runtime, +# and are pulled in by `release`. +# conntrack-tools = { path = "../conntrack-tools" } +# containerd = { path = "../containerd" } +# findutils = { path = "../findutils" } diff --git a/packages/kubernetes-1.26/build.rs b/packages/kubernetes-1.26/build.rs new file mode 100644 index 00000000000..cad8999af53 --- /dev/null +++ b/packages/kubernetes-1.26/build.rs @@ -0,0 +1,9 @@ +use std::process::{exit, Command}; + +fn main() -> Result<(), std::io::Error> { + let ret = Command::new("buildsys").arg("build-package").status()?; + if !ret.success() { + exit(1); + } + Ok(()) +} diff --git a/packages/kubernetes-1.26/clarify.toml b/packages/kubernetes-1.26/clarify.toml new file mode 100644 index 00000000000..5b6e8b60967 --- /dev/null +++ b/packages/kubernetes-1.26/clarify.toml @@ -0,0 +1,62 @@ +[clarify."github.com/JeffAshton/win_pdh"] +expression = "BSD-3-Clause" +license-files = [ + { path = "LICENSE", hash = 0xb221dcc9 }, +] + +[clarify."github.com/daviddengcn/go-colortext"] +expression = "BSD-3-Clause AND MIT" +license-files = [ + { path = "LICENSE", hash = 0x9769fae1 }, +] + +[clarify."github.com/ghodss/yaml"] +expression = "MIT AND BSD-3-Clause" +license-files = [ + { path = "LICENSE", hash = 0xcdf3ae00 }, +] + +[clarify."github.com/heketi/heketi"] +# kubernetes only uses code that is under LGPLv3+/Apache 2.0, not the code that is GPLv2+/LGPLv3+ +expression = "LGPL-3.0-or-later OR Apache-2.0" +license-files = [ + { path = "LICENSE", hash = 0x3c4b96d1 }, + { path = "LICENSE-APACHE2", hash = 0x438c8616 }, + { path = "COPYING-LGPLV3", hash = 0xf0bccb3a }, +] +skip-files = [ "COPYING-GPLV2" ] + +[clarify."github.com/go-bindata/go-bindata"] +expression = "CC0-1.0" +license-files = [ + { path = "LICENSE", hash = 0x393fafd6 }, +] + +[clarify."github.com/miekg/dns"] +expression = "BSD-3-Clause" +license-files = [ + { path = "COPYRIGHT", hash = 0xe41dd36c }, + { path = "LICENSE", hash = 0xfc8f12ff }, +] + +[clarify."sigs.k8s.io/yaml"] +expression = "MIT AND BSD-3-Clause" +license-files = [ + { path = "LICENSE", hash = 0xcdf3ae00 }, +] + +[clarify."honnef.co/go/tools"] +expression = "MIT AND BSD-3-Clause AND Apache-2.0" +license-files = [ + { path = "LICENSE", hash = 0xad378ed2 }, + { path = "LICENSE-THIRD-PARTY", hash = 0x546425eb }, + { path = "lint/LICENSE", hash = 0xc6b58232 }, + { path = "ssa/LICENSE", hash = 0xe656fb62 }, +] + +[clarify."github.com/storageos/go-api"] +expression = "MIT AND BSD-2-Clause" +license-files = [ + { path = "LICENCE", hash = 0x67a6861e }, +] +skip-files = ["licence.go", "types/licence.go"] diff --git a/packages/kubernetes-1.26/credential-provider-config-yaml b/packages/kubernetes-1.26/credential-provider-config-yaml new file mode 100644 index 00000000000..900fdb7fc97 --- /dev/null +++ b/packages/kubernetes-1.26/credential-provider-config-yaml @@ -0,0 +1,25 @@ +apiVersion: kubelet.config.k8s.io/v1 +kind: CredentialProviderConfig +providers: +{{#if settings.kubernetes.credential-providers}} +{{#each settings.kubernetes.credential-providers}} +{{#if this.enabled}} + - name: {{@key}} + matchImages: +{{#each this.image-patterns}} + - "{{this}}" +{{/each}} + defaultCacheDuration: "{{default "12h" this.cache-duration}}" + apiVersion: credentialprovider.kubelet.k8s.io/v1alpha1 +{{#if (eq @key "ecr-credential-provider")}} + env: + - name: HOME + value: /root +{{#if settings.aws.profile}} + - name: AWS_PROFILE + value: {{settings.aws.profile}} +{{/if}} +{{/if}} +{{/if}} +{{/each}} +{{/if}} diff --git a/packages/kubernetes-1.26/dockershim-symlink.conf b/packages/kubernetes-1.26/dockershim-symlink.conf new file mode 100644 index 00000000000..d3fcda86914 --- /dev/null +++ b/packages/kubernetes-1.26/dockershim-symlink.conf @@ -0,0 +1,2 @@ +[Service] +ExecStartPre=/bin/ln -sf /run/containerd/containerd.sock /run/dockershim.sock diff --git a/packages/kubernetes-1.26/etc-kubernetes-pki-private.mount b/packages/kubernetes-1.26/etc-kubernetes-pki-private.mount new file mode 100644 index 00000000000..584e61475d1 --- /dev/null +++ b/packages/kubernetes-1.26/etc-kubernetes-pki-private.mount @@ -0,0 +1,16 @@ +[Unit] +Description=Kubernetes PKI private directory (/etc/kubernetes/pki/private) +DefaultDependencies=no +Conflicts=umount.target +Before=local-fs.target umount.target +After=selinux-policy-files.service +Wants=selinux-policy-files.service + +[Mount] +What=tmpfs +Where=/etc/kubernetes/pki/private +Type=tmpfs +Options=nosuid,nodev,noexec,noatime,context=system_u:object_r:secret_t:s0,mode=0700 + +[Install] +WantedBy=preconfigured.target diff --git a/packages/kubernetes-1.26/kubelet-bootstrap-kubeconfig b/packages/kubernetes-1.26/kubelet-bootstrap-kubeconfig new file mode 100644 index 00000000000..09e58523196 --- /dev/null +++ b/packages/kubernetes-1.26/kubelet-bootstrap-kubeconfig @@ -0,0 +1,22 @@ +--- +apiVersion: v1 +kind: Config +clusters: +- cluster: +{{#if settings.kubernetes.api-server}} + certificate-authority: "/etc/kubernetes/pki/ca.crt" + server: "{{settings.kubernetes.api-server}}" +{{/if}} + name: kubernetes +contexts: +- context: + cluster: kubernetes + user: kubelet + name: kubelet +current-context: kubelet +users: +- name: kubelet +{{#if settings.kubernetes.bootstrap-token}} + user: + token: "{{settings.kubernetes.bootstrap-token}}" +{{/if}} diff --git a/packages/kubernetes-1.26/kubelet-config b/packages/kubernetes-1.26/kubelet-config new file mode 100644 index 00000000000..df0250882e2 --- /dev/null +++ b/packages/kubernetes-1.26/kubelet-config @@ -0,0 +1,130 @@ +--- +kind: KubeletConfiguration +apiVersion: kubelet.config.k8s.io/v1beta1 +{{#if settings.kubernetes.standalone-mode}} +address: 127.0.0.1 +authentication: + anonymous: + enabled: true + webhook: + enabled: false +authorization: + mode: AlwaysAllow +{{else}} +address: 0.0.0.0 +authentication: + anonymous: + enabled: false + webhook: + cacheTTL: 2m0s + enabled: true + x509: + clientCAFile: "/etc/kubernetes/pki/ca.crt" +authorization: + mode: Webhook + webhook: + cacheAuthorizedTTL: 5m0s + cacheUnauthorizedTTL: 30s +{{/if}} +clusterDomain: {{settings.kubernetes.cluster-domain}} +{{#if settings.kubernetes.cluster-dns-ip}} +clusterDNS: +{{#each settings.kubernetes.cluster-dns-ip}} +- {{this}} +{{else}} +- {{settings.kubernetes.cluster-dns-ip}} +{{/each}} +{{/if}} +{{#if settings.kubernetes.eviction-hard}} +evictionHard: + {{#each settings.kubernetes.eviction-hard}} + {{@key}}: "{{this}}" + {{/each}} +{{/if}} +{{#if settings.kubernetes.allowed-unsafe-sysctls}} +allowedUnsafeSysctls: {{settings.kubernetes.allowed-unsafe-sysctls}} +{{/if}} +{{#if settings.kubernetes.registry-qps includeZero=true}} +registryPullQPS: {{settings.kubernetes.registry-qps}} +{{/if}} +{{#if settings.kubernetes.registry-burst includeZero=true}} +registryBurst: {{settings.kubernetes.registry-burst}} +{{/if}} +{{#if settings.kubernetes.event-qps includeZero=true}} +eventRecordQPS: {{settings.kubernetes.event-qps}} +{{/if}} +{{#if settings.kubernetes.event-burst includeZero=true}} +eventBurst: {{settings.kubernetes.event-burst}} +{{/if}} +kubeAPIQPS: {{default 10 settings.kubernetes.kube-api-qps}} +kubeAPIBurst: {{default 20 settings.kubernetes.kube-api-burst}} +kubeReserved: + cpu: "{{kube_reserve_cpu settings.kubernetes.kube-reserved.cpu}}" + {{#if settings.kubernetes.kube-reserved.memory}} + memory: "{{settings.kubernetes.kube-reserved.memory}}" + {{else}} + {{#if settings.kubernetes.max-pods}} + memory: "{{kube_reserve_memory settings.kubernetes.max-pods settings.kubernetes.kube-reserved.memory}}" + {{/if}} + {{/if}} + ephemeral-storage: "{{default "1Gi" settings.kubernetes.kube-reserved.ephemeral-storage}}" +kubeReservedCgroup: "/runtime" +{{#if settings.kubernetes.system-reserved}} +systemReserved: + {{#each settings.kubernetes.system-reserved}} + {{@key}}: "{{this}}" + {{/each}} +systemReservedCgroup: "/system" +{{/if}} +cpuManagerPolicy: {{default "none" settings.kubernetes.cpu-manager-policy}} +{{#if settings.kubernetes.cpu-manager-reconcile-period}} +cpuManagerReconcilePeriod: {{settings.kubernetes.cpu-manager-reconcile-period}} +{{/if}} +{{#if settings.kubernetes.topology-manager-scope}} +topologyManagerScope: {{settings.kubernetes.topology-manager-scope}} +{{/if}} +{{#if settings.kubernetes.topology-manager-policy}} +topologyManagerPolicy: {{settings.kubernetes.topology-manager-policy}} +{{/if}} +{{#if settings.kubernetes.pod-pids-limit includeZero=true}} +podPidsLimit: {{settings.kubernetes.pod-pids-limit}} +{{/if}} +{{#if settings.kubernetes.image-gc-high-threshold-percent includeZero=true}} +imageGCHighThresholdPercent: {{settings.kubernetes.image-gc-high-threshold-percent}} +{{/if}} +{{#if settings.kubernetes.image-gc-low-threshold-percent includeZero=true}} +imageGCLowThresholdPercent: {{settings.kubernetes.image-gc-low-threshold-percent}} +{{/if}} +{{#if settings.kubernetes.provider-id}} +providerID: {{settings.kubernetes.provider-id}} +{{/if}} +resolvConf: "/etc/resolv.conf" +hairpinMode: hairpin-veth +readOnlyPort: 0 +cgroupDriver: systemd +cgroupRoot: "/" +runtimeRequestTimeout: 15m +featureGates: + RotateKubeletServerCertificate: true + CSIMigration: true + CSIMigrationAWS: true + CSIMigrationvSphere: true +protectKernelDefaults: true +serializeImagePulls: false +{{#if (and (default "" settings.kubernetes.server-certificate) (default "" settings.kubernetes.server-key))}} +tlsCertFile: "/etc/kubernetes/pki/kubelet-server.crt" +tlsPrivateKeyFile: "/etc/kubernetes/pki/private/kubelet-server.key" +{{else}} +serverTLSBootstrap: {{settings.kubernetes.server-tls-bootstrap}} +{{/if}} +tlsCipherSuites: +- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 +volumePluginDir: "/var/lib/kubelet/plugins/volume/exec" +maxPods: {{default 110 settings.kubernetes.max-pods}} +staticPodPath: "/etc/kubernetes/static-pods/" +{{#if settings.kubernetes.container-log-max-size includeZero=true}} +containerLogMaxSize: {{settings.kubernetes.container-log-max-size}} +{{/if}} +{{#if settings.kubernetes.container-log-max-files includeZero=true}} +containerLogMaxFiles: {{settings.kubernetes.container-log-max-files}} +{{/if}} diff --git a/packages/kubernetes-1.26/kubelet-env b/packages/kubernetes-1.26/kubelet-env new file mode 100644 index 00000000000..681726d0176 --- /dev/null +++ b/packages/kubernetes-1.26/kubelet-env @@ -0,0 +1,4 @@ +NODE_IP={{settings.kubernetes.node-ip}} +NODE_LABELS={{join_map "=" "," "no-fail-if-missing" settings.kubernetes.node-labels}} +NODE_TAINTS={{join_node_taints settings.kubernetes.node-taints}} +POD_INFRA_CONTAINER_IMAGE={{settings.kubernetes.pod-infra-container-image}} diff --git a/packages/kubernetes-1.26/kubelet-exec-start-conf b/packages/kubernetes-1.26/kubelet-exec-start-conf new file mode 100644 index 00000000000..81c79ad2b00 --- /dev/null +++ b/packages/kubernetes-1.26/kubelet-exec-start-conf @@ -0,0 +1,35 @@ +[Service] +ExecStart= +ExecStart=/usr/bin/kubelet \ +{{#unless settings.kubernetes.standalone-mode}} +{{#if (eq settings.kubernetes.cloud-provider "")}} + --cloud-provider "" \ +{{else}} + --cloud-provider "external" \ +{{/if}} + --kubeconfig /etc/kubernetes/kubelet/kubeconfig \ +{{#if (eq settings.kubernetes.authentication-mode "tls")}} + --bootstrap-kubeconfig /etc/kubernetes/kubelet/bootstrap-kubeconfig \ +{{/if}} +{{else}} + --cloud-provider "" \ +{{/unless}} + --config /etc/kubernetes/kubelet/config \ + --container-runtime=remote \ + --container-runtime-endpoint=unix:///run/containerd/containerd.sock \ + --containerd=/run/containerd/containerd.sock \ + --root-dir /var/lib/kubelet \ + --cert-dir /var/lib/kubelet/pki \ +{{#if settings.kubernetes.credential-providers}} +{{#if (any_enabled settings.kubernetes.credential-providers)}} + --image-credential-provider-bin-dir /usr/libexec/kubernetes/kubelet/plugins \ + --image-credential-provider-config /etc/kubernetes/kubelet/credential-provider-config.yaml \ +{{/if}} +{{/if}} + --node-ip ${NODE_IP} \ + --node-labels "${NODE_LABELS}" \ + --register-with-taints "${NODE_TAINTS}" \ +{{#if settings.kubernetes.log-level includeZero=true}} + -v {{settings.kubernetes.log-level}} \ +{{/if}} + --pod-infra-container-image ${POD_INFRA_CONTAINER_IMAGE} diff --git a/packages/kubernetes-1.26/kubelet-kubeconfig b/packages/kubernetes-1.26/kubelet-kubeconfig new file mode 100644 index 00000000000..f39de0e6a8a --- /dev/null +++ b/packages/kubernetes-1.26/kubelet-kubeconfig @@ -0,0 +1,39 @@ +--- +apiVersion: v1 +kind: Config +clusters: +- cluster: +{{#if settings.kubernetes.api-server}} + certificate-authority: "/etc/kubernetes/pki/ca.crt" + server: "{{settings.kubernetes.api-server}}" +{{/if}} + name: kubernetes +contexts: +- context: + cluster: kubernetes + user: kubelet + name: kubelet +current-context: kubelet +users: +- name: kubelet +{{#if (eq settings.kubernetes.authentication-mode "aws")}} +{{#if settings.kubernetes.cluster-name}} + user: + exec: + apiVersion: client.authentication.k8s.io/v1beta1 + command: "/usr/bin/aws-iam-authenticator" + args: + - token + - "-i" + - "{{settings.kubernetes.cluster-name}}" + {{#if settings.aws.region}} + - "--region" + - "{{settings.aws.region}}" + {{/if}} +{{/if}} +{{/if}} +{{#if (eq settings.kubernetes.authentication-mode "tls")}} + user: + client-certificate: "/var/lib/kubelet/pki/kubelet-client-current.pem" + client-key: "/var/lib/kubelet/pki/kubelet-client-current.pem" +{{/if}} diff --git a/packages/kubernetes-1.26/kubelet-server-crt b/packages/kubernetes-1.26/kubelet-server-crt new file mode 100644 index 00000000000..21af4222ea2 --- /dev/null +++ b/packages/kubernetes-1.26/kubelet-server-crt @@ -0,0 +1,3 @@ +{{~#if settings.kubernetes.server-certificate~}} +{{base64_decode settings.kubernetes.server-certificate}} +{{~/if~}} diff --git a/packages/kubernetes-1.26/kubelet-server-key b/packages/kubernetes-1.26/kubelet-server-key new file mode 100644 index 00000000000..0310e76ddd8 --- /dev/null +++ b/packages/kubernetes-1.26/kubelet-server-key @@ -0,0 +1,3 @@ +{{~#if settings.kubernetes.server-key~}} +{{base64_decode settings.kubernetes.server-key}} +{{~/if~}} diff --git a/packages/kubernetes-1.26/kubelet-sysctl.conf b/packages/kubernetes-1.26/kubelet-sysctl.conf new file mode 100644 index 00000000000..ed68c7e197f --- /dev/null +++ b/packages/kubernetes-1.26/kubelet-sysctl.conf @@ -0,0 +1,2 @@ +# Overcommit handling mode - 1: Always overcommit +vm.overcommit_memory = 1 diff --git a/packages/kubernetes-1.26/kubelet.service b/packages/kubernetes-1.26/kubelet.service new file mode 100644 index 00000000000..1285853f2d1 --- /dev/null +++ b/packages/kubernetes-1.26/kubelet.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kubelet +Documentation=https://github.com/kubernetes/kubernetes +After=containerd.service configured.target +Wants=configured.target +BindsTo=containerd.service + +[Service] +Slice=runtime.slice +Type=notify +EnvironmentFile=/etc/network/proxy.env +EnvironmentFile=/etc/kubernetes/kubelet/env +ExecStartPre=/sbin/iptables -P FORWARD ACCEPT +# Must be overridden by a drop-in file or `kubelet` won't start +ExecStart=/usr/bin/false + +Restart=always +RestartForceExitStatus=SIGPIPE +RestartSec=5 +Delegate=yes +KillMode=process +CPUAccounting=true +MemoryAccounting=true + +[Install] +WantedBy=multi-user.target diff --git a/packages/kubernetes-1.26/kubernetes-1.26.spec b/packages/kubernetes-1.26/kubernetes-1.26.spec new file mode 100644 index 00000000000..656050eb556 --- /dev/null +++ b/packages/kubernetes-1.26/kubernetes-1.26.spec @@ -0,0 +1,161 @@ +# After this upstream change, the linker flags `-s -w` are always added unless +# DBG=1 is set in the environment, which would set compiler flags to disable +# optimizations and inlining: +# https://github.com/kubernetes/kubernetes/pull/108371 +# +# For now, work around this by indicating that no debug package is expected. +%global debug_package %{nil} + +%global goproject github.com/kubernetes +%global gorepo kubernetes +%global goimport %{goproject}/%{gorepo} + +%global gover 1.26.1 +%global rpmver %{gover} + +%global _dwz_low_mem_die_limit 0 + +# The kubernetes build process expects the cross-compiler to be specified via `KUBE_*_CC` +# Here we generate that variable to use bottlerocket-specific compile aliases +# Examples of the generated variable: +# KUBE_LINUX_AMD64_CC=x86_64-bottlerocket-linux-gnu-gcc +# KUBE_LINUX_ARM64_CC=aarch64-bottlerocket-linux-gnu-gcc +%global kube_cc %{shrink: \ + %{lua: print(string.upper( \ + rpm.expand("KUBE_%{_cross_go_os}_%{_cross_go_arch}_CC=")) .. \ + rpm.expand("%{_cross_target}-gcc")) }} + +Name: %{_cross_os}%{gorepo} +Version: %{rpmver} +Release: 1%{?dist} +Summary: Container cluster management +# base Apache-2.0, third_party Apache-2.0 AND BSD-3-Clause +License: Apache-2.0 AND BSD-3-Clause +URL: https://%{goimport} +Source0: https://distro.eks.amazonaws.com/kubernetes-1-26/releases/3/artifacts/kubernetes/v%{gover}/kubernetes-src.tar.gz +Source1: kubelet.service +Source2: kubelet-env +Source3: kubelet-config +Source4: kubelet-kubeconfig +Source5: kubernetes-ca-crt +Source6: kubelet-exec-start-conf +Source7: kubelet-bootstrap-kubeconfig +Source8: kubernetes-tmpfiles.conf +Source9: kubelet-sysctl.conf +Source10: prepare-var-lib-kubelet.service +Source11: kubelet-server-crt +Source12: kubelet-server-key +Source13: etc-kubernetes-pki-private.mount +Source14: credential-provider-config-yaml + +# ExecStartPre drop-ins +Source20: prestart-pull-pause-ctr.conf +Source21: dockershim-symlink.conf +Source22: make-kubelet-dirs.conf +Source23: load-ipvs-modules.conf + +Source1000: clarify.toml + +BuildRequires: git +BuildRequires: rsync +BuildRequires: %{_cross_os}glibc-devel + +%description +%{summary}. + +%package -n %{_cross_os}kubelet-1.26 +Summary: Container cluster node agent +Requires: %{_cross_os}conntrack-tools +Requires: %{_cross_os}containerd +Requires: %{_cross_os}findutils +Requires: %{_cross_os}ecr-credential-provider +Requires: %{_cross_os}aws-signing-helper + +%description -n %{_cross_os}kubelet-1.26 +%{summary}. + +%prep +%autosetup -Sgit -c -n %{gorepo}-%{gover} -p1 + +# third_party licenses +# multiarch/qemu-user-static ignored, we're not using it +cp third_party/forked/gonum/graph/LICENSE LICENSE.gonum.graph +cp third_party/forked/shell2junit/LICENSE LICENSE.shell2junit +cp third_party/forked/golang/LICENSE LICENSE.golang +cp third_party/forked/golang/PATENTS PATENTS.golang + +%build +# Build codegen programs with the host toolchain. +make hack/update-codegen.sh + +# Build kubelet with the target toolchain. +export KUBE_BUILD_PLATFORMS="linux/%{_cross_go_arch}" +export %{kube_cc} +export GOFLAGS='-tags=dockerless' +export GOLDFLAGS="-buildmode=pie -linkmode=external -compressdwarf=false" +make WHAT="cmd/kubelet" + +%install +output="./_output/local/bin/linux/%{_cross_go_arch}" +install -d %{buildroot}%{_cross_bindir} +install -p -m 0755 ${output}/kubelet %{buildroot}%{_cross_bindir} + +install -d %{buildroot}%{_cross_unitdir} +install -p -m 0644 %{S:1} %{S:10} %{S:13} %{buildroot}%{_cross_unitdir} + +install -d %{buildroot}%{_cross_unitdir}/kubelet.service.d +install -p -m 0644 %{S:20} %{S:21} %{S:22} %{S:23} %{buildroot}%{_cross_unitdir}/kubelet.service.d + +mkdir -p %{buildroot}%{_cross_templatedir} +install -m 0644 %{S:2} %{buildroot}%{_cross_templatedir}/kubelet-env +install -m 0644 %{S:3} %{buildroot}%{_cross_templatedir}/kubelet-config +install -m 0644 %{S:4} %{buildroot}%{_cross_templatedir}/kubelet-kubeconfig +install -m 0644 %{S:5} %{buildroot}%{_cross_templatedir}/kubernetes-ca-crt +install -m 0644 %{S:6} %{buildroot}%{_cross_templatedir}/kubelet-exec-start-conf +install -m 0644 %{S:7} %{buildroot}%{_cross_templatedir}/kubelet-bootstrap-kubeconfig +install -m 0644 %{S:11} %{buildroot}%{_cross_templatedir}/kubelet-server-crt +install -m 0644 %{S:12} %{buildroot}%{_cross_templatedir}/kubelet-server-key +install -m 0644 %{S:14} %{buildroot}%{_cross_templatedir}/credential-provider-config-yaml + +install -d %{buildroot}%{_cross_tmpfilesdir} +install -p -m 0644 %{S:8} %{buildroot}%{_cross_tmpfilesdir}/kubernetes.conf + +install -d %{buildroot}%{_cross_sysctldir} +install -p -m 0644 %{S:9} %{buildroot}%{_cross_sysctldir}/90-kubelet.conf + +install -d %{buildroot}%{_cross_libexecdir}/kubernetes +ln -rs \ + %{buildroot}%{_sharedstatedir}/kubelet/plugins \ + %{buildroot}%{_cross_libexecdir}/kubernetes/kubelet-plugins + +%cross_scan_attribution --clarify %{S:1000} go-vendor vendor + +%files -n %{_cross_os}kubelet-1.26 +%license LICENSE LICENSE.gonum.graph LICENSE.shell2junit LICENSE.golang PATENTS.golang +%{_cross_attribution_file} +%{_cross_attribution_vendor_dir} +%{_cross_bindir}/kubelet +%{_cross_unitdir}/kubelet.service +%{_cross_unitdir}/prepare-var-lib-kubelet.service +%{_cross_unitdir}/etc-kubernetes-pki-private.mount +%dir %{_cross_unitdir}/kubelet.service.d +%{_cross_unitdir}/kubelet.service.d/prestart-pull-pause-ctr.conf +%{_cross_unitdir}/kubelet.service.d/make-kubelet-dirs.conf +%{_cross_unitdir}/kubelet.service.d/load-ipvs-modules.conf +%{_cross_unitdir}/kubelet.service.d/dockershim-symlink.conf +%dir %{_cross_templatedir} +%{_cross_templatedir}/kubelet-env +%{_cross_templatedir}/kubelet-config +%{_cross_templatedir}/kubelet-kubeconfig +%{_cross_templatedir}/kubelet-bootstrap-kubeconfig +%{_cross_templatedir}/kubelet-exec-start-conf +%{_cross_templatedir}/kubernetes-ca-crt +%{_cross_templatedir}/kubelet-server-crt +%{_cross_templatedir}/kubelet-server-key +%{_cross_templatedir}/credential-provider-config-yaml +%{_cross_tmpfilesdir}/kubernetes.conf +%{_cross_sysctldir}/90-kubelet.conf +%dir %{_cross_libexecdir}/kubernetes +%{_cross_libexecdir}/kubernetes/kubelet-plugins + +%changelog diff --git a/packages/kubernetes-1.26/kubernetes-ca-crt b/packages/kubernetes-1.26/kubernetes-ca-crt new file mode 100644 index 00000000000..ab82c485f56 --- /dev/null +++ b/packages/kubernetes-1.26/kubernetes-ca-crt @@ -0,0 +1,3 @@ +{{~#if settings.kubernetes.cluster-certificate~}} +{{base64_decode settings.kubernetes.cluster-certificate}} +{{~/if~}} diff --git a/packages/kubernetes-1.26/kubernetes-tmpfiles.conf b/packages/kubernetes-1.26/kubernetes-tmpfiles.conf new file mode 100644 index 00000000000..15c1deec646 --- /dev/null +++ b/packages/kubernetes-1.26/kubernetes-tmpfiles.conf @@ -0,0 +1,5 @@ +d /etc/kubernetes/static-pods - - - - +L /etc/kubernetes/manifests - - - - static-pods +L /etc/kubernetes/secrets-store-csi-providers - - - - /var/lib/kubelet/providers/secrets-store +r! /var/lib/kubelet/cpu_manager_state +L /etc/kubernetes/node-feature-discovery/features.d - - - - /var/lib/kubelet/node-feature-discovery/features.d diff --git a/packages/kubernetes-1.26/load-ipvs-modules.conf b/packages/kubernetes-1.26/load-ipvs-modules.conf new file mode 100644 index 00000000000..e895782bdfb --- /dev/null +++ b/packages/kubernetes-1.26/load-ipvs-modules.conf @@ -0,0 +1,3 @@ +[Unit] +Wants=modprobe@ip_vs_sh.service modprobe@ip_vs_rr.service modprobe@ip_vs_wrr.service +After=modprobe@ip_vs_sh.service modprobe@ip_vs_rr.service modprobe@ip_vs_wrr.service diff --git a/packages/kubernetes-1.26/make-kubelet-dirs.conf b/packages/kubernetes-1.26/make-kubelet-dirs.conf new file mode 100644 index 00000000000..a7249c9ac3f --- /dev/null +++ b/packages/kubernetes-1.26/make-kubelet-dirs.conf @@ -0,0 +1,5 @@ +[Service] +# Create the backing directories for symlinks in /etc +ExecStartPre=/usr/bin/mkdir -p \ + /var/lib/kubelet/providers/secrets-store \ + /var/lib/kubelet/node-feature-discovery/features.d diff --git a/packages/kubernetes-1.26/pkg.rs b/packages/kubernetes-1.26/pkg.rs new file mode 100644 index 00000000000..d799fb2d44c --- /dev/null +++ b/packages/kubernetes-1.26/pkg.rs @@ -0,0 +1 @@ +// not used diff --git a/packages/kubernetes-1.26/prepare-var-lib-kubelet.service b/packages/kubernetes-1.26/prepare-var-lib-kubelet.service new file mode 100644 index 00000000000..1b8c6207aa4 --- /dev/null +++ b/packages/kubernetes-1.26/prepare-var-lib-kubelet.service @@ -0,0 +1,23 @@ +[Unit] +Description=Prepare Kubelet Directory (/var/lib/kubelet) +DefaultDependencies=no +RequiresMountsFor=/var +RefuseManualStart=true +RefuseManualStop=true + +[Service] +Type=oneshot + +# Remove an existing symlink, if present. Intentionally not recursive! +ExecStartPre=-/usr/bin/rm -f /var/lib/kubelet + +# Create /var/lib/kubelet so it is available for bind mounts. +ExecStart=/usr/bin/mkdir -p /var/lib/kubelet + +# Suppress warning if directory exists. +StandardError=null + +RemainAfterExit=true + +[Install] +WantedBy=local-fs.target diff --git a/packages/kubernetes-1.26/prestart-pull-pause-ctr.conf b/packages/kubernetes-1.26/prestart-pull-pause-ctr.conf new file mode 100644 index 00000000000..5f6d04cb28e --- /dev/null +++ b/packages/kubernetes-1.26/prestart-pull-pause-ctr.conf @@ -0,0 +1,9 @@ +[Service] +# Pull the pause container image before starting `kubelet` so `containerd/cri` wouldn't have to +ExecStartPre=/usr/bin/host-ctr \ + --containerd-socket=/run/containerd/containerd.sock \ + --namespace=k8s.io \ + pull-image \ + --source=${POD_INFRA_CONTAINER_IMAGE} \ + --registry-config=/etc/host-containers/host-ctr.toml \ + --skip-if-image-exists=true diff --git a/sources/logdog/conf/logdog.aws-k8s-1.26-nvidia.conf b/sources/logdog/conf/logdog.aws-k8s-1.26-nvidia.conf new file mode 120000 index 00000000000..63115aee60b --- /dev/null +++ b/sources/logdog/conf/logdog.aws-k8s-1.26-nvidia.conf @@ -0,0 +1 @@ +aws-k8s.conf \ No newline at end of file diff --git a/sources/logdog/conf/logdog.aws-k8s-1.26.conf b/sources/logdog/conf/logdog.aws-k8s-1.26.conf new file mode 120000 index 00000000000..63115aee60b --- /dev/null +++ b/sources/logdog/conf/logdog.aws-k8s-1.26.conf @@ -0,0 +1 @@ +aws-k8s.conf \ No newline at end of file diff --git a/sources/logdog/conf/logdog.metal-k8s-1.26.conf b/sources/logdog/conf/logdog.metal-k8s-1.26.conf new file mode 120000 index 00000000000..7134ec8b998 --- /dev/null +++ b/sources/logdog/conf/logdog.metal-k8s-1.26.conf @@ -0,0 +1 @@ +k8s.conf \ No newline at end of file diff --git a/sources/logdog/conf/logdog.vmware-k8s-1.26.conf b/sources/logdog/conf/logdog.vmware-k8s-1.26.conf new file mode 120000 index 00000000000..7134ec8b998 --- /dev/null +++ b/sources/logdog/conf/logdog.vmware-k8s-1.26.conf @@ -0,0 +1 @@ +k8s.conf \ No newline at end of file diff --git a/sources/models/README.md b/sources/models/README.md index 66ad0d39683..3af6e5527fe 100644 --- a/sources/models/README.md +++ b/sources/models/README.md @@ -62,6 +62,16 @@ The `#[model]` attribute on Settings and its sub-structs reduces duplication and * [Model](src/aws-k8s-1.25-nvidia/mod.rs) * [Default settings](src/aws-k8s-1.25-nvidia/defaults.d/) +### aws-k8s-1.26: Kubernetes 1.26 + +* [Model](src/aws-k8s-1.26/mod.rs) +* [Default settings](src/aws-k8s-1.26/defaults.d/) + +#### aws-k8s-1.26-nvidia: Kubernetes 1.26 NVIDIA + +* [Model](src/aws-k8s-1.26-nvidia/mod.rs) +* [Default settings](src/aws-k8s-1.26-nvidia/defaults.d/) + ### aws-ecs-1: Amazon ECS * [Model](src/aws-ecs-1/mod.rs) @@ -97,6 +107,11 @@ The `#[model]` attribute on Settings and its sub-structs reduces duplication and * [Model](src/vmware-k8s-1.25/mod.rs) * [Default settings](src/vmware-k8s-1.25/defaults.d/) +### vmware-k8s-1.26: VMware Kubernetes 1.26 + +* [Model](src/vmware-k8s-1.26/mod.rs) +* [Default settings](src/vmware-k8s-1.26/defaults.d/) + ### metal-dev: Metal development build * [Model](src/metal-dev/mod.rs) @@ -122,6 +137,11 @@ The `#[model]` attribute on Settings and its sub-structs reduces duplication and * [Model](src/metal-k8s-1.25/mod.rs) * [Default settings](src/metal-k8s-1.25/defaults.d/) +### metal-k8s-1.26: Metal Kubernetes 1.26 + +* [Model](src/metal-k8s-1.26/mod.rs) +* [Default settings](src/metal-k8s-1.26/defaults.d/) + ## This directory We use `build.rs` to symlink the proper API model source code for Cargo to build. diff --git a/sources/models/src/aws-k8s-1.25 b/sources/models/src/aws-k8s-1.25 new file mode 120000 index 00000000000..7e8a6aa2289 --- /dev/null +++ b/sources/models/src/aws-k8s-1.25 @@ -0,0 +1 @@ +aws-k8s-1.26 \ No newline at end of file diff --git a/sources/models/src/aws-k8s-1.25-nvidia b/sources/models/src/aws-k8s-1.25-nvidia new file mode 120000 index 00000000000..f8399b7eb47 --- /dev/null +++ b/sources/models/src/aws-k8s-1.25-nvidia @@ -0,0 +1 @@ +aws-k8s-1.26-nvidia \ No newline at end of file diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/10-defaults.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/10-defaults.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/10-defaults.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/10-defaults.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/15-aws-tuf.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/15-aws-tuf.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/15-aws-tuf.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/15-aws-tuf.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/20-aws-host-containers.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/20-aws-host-containers.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/20-aws-host-containers.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/20-aws-host-containers.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/25-cf-signal.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/25-cf-signal.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/25-cf-signal.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/25-cf-signal.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/26-aws-autoscaling.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/26-aws-autoscaling.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/26-aws-autoscaling.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/26-aws-autoscaling.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/30-metrics.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/30-metrics.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/30-metrics.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/30-metrics.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/31-send-metrics-aws.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/31-send-metrics-aws.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/31-send-metrics-aws.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/31-send-metrics-aws.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/40-aws-creds.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/40-aws-creds.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/40-aws-creds.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/40-aws-creds.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/50-kubernetes-aws.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/50-kubernetes-aws.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/50-kubernetes-aws.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/50-kubernetes-aws.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/51-kubernetes-containerd-nvidia.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/51-kubernetes-containerd-nvidia.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/51-kubernetes-containerd-nvidia.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/51-kubernetes-containerd-nvidia.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/52-kubernetes-services.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/52-kubernetes-services.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/52-kubernetes-services.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/52-kubernetes-services.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/53-containerd-cri-pki.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/53-containerd-cri-pki.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/53-containerd-cri-pki.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/53-containerd-cri-pki.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/60-lockdown-none.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/60-lockdown-none.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/60-lockdown-none.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/60-lockdown-none.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/70-oci-hooks.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/70-oci-hooks.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/70-oci-hooks.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/70-oci-hooks.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/75-oci-defaults-containerd-cri.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/75-oci-defaults-containerd-cri.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/75-oci-defaults-containerd-cri.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/75-oci-defaults-containerd-cri.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/76-oci-defaults-containerd-cri-capabilities.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/76-oci-defaults-containerd-cri-capabilities.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/76-oci-defaults-containerd-cri-capabilities.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/76-oci-defaults-containerd-cri-capabilities.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/77-oci-defaults-containerd-cri-resource-limits.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/77-oci-defaults-containerd-cri-resource-limits.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/77-oci-defaults-containerd-cri-resource-limits.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/77-oci-defaults-containerd-cri-resource-limits.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/defaults.d/90-boot.toml b/sources/models/src/aws-k8s-1.26-nvidia/defaults.d/90-boot.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/defaults.d/90-boot.toml rename to sources/models/src/aws-k8s-1.26-nvidia/defaults.d/90-boot.toml diff --git a/sources/models/src/aws-k8s-1.25-nvidia/mod.rs b/sources/models/src/aws-k8s-1.26-nvidia/mod.rs similarity index 100% rename from sources/models/src/aws-k8s-1.25-nvidia/mod.rs rename to sources/models/src/aws-k8s-1.26-nvidia/mod.rs diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/10-defaults.toml b/sources/models/src/aws-k8s-1.26/defaults.d/10-defaults.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/10-defaults.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/10-defaults.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/15-aws-tuf.toml b/sources/models/src/aws-k8s-1.26/defaults.d/15-aws-tuf.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/15-aws-tuf.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/15-aws-tuf.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/20-aws-host-containers.toml b/sources/models/src/aws-k8s-1.26/defaults.d/20-aws-host-containers.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/20-aws-host-containers.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/20-aws-host-containers.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/25-cf-signal.toml b/sources/models/src/aws-k8s-1.26/defaults.d/25-cf-signal.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/25-cf-signal.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/25-cf-signal.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/26-aws-autoscaling.toml b/sources/models/src/aws-k8s-1.26/defaults.d/26-aws-autoscaling.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/26-aws-autoscaling.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/26-aws-autoscaling.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/30-metrics.toml b/sources/models/src/aws-k8s-1.26/defaults.d/30-metrics.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/30-metrics.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/30-metrics.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/31-send-metrics-aws.toml b/sources/models/src/aws-k8s-1.26/defaults.d/31-send-metrics-aws.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/31-send-metrics-aws.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/31-send-metrics-aws.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/40-aws-creds.toml b/sources/models/src/aws-k8s-1.26/defaults.d/40-aws-creds.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/40-aws-creds.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/40-aws-creds.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/50-kubernetes-aws.toml b/sources/models/src/aws-k8s-1.26/defaults.d/50-kubernetes-aws.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/50-kubernetes-aws.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/50-kubernetes-aws.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/51-kubernetes-containerd.toml b/sources/models/src/aws-k8s-1.26/defaults.d/51-kubernetes-containerd.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/51-kubernetes-containerd.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/51-kubernetes-containerd.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/52-kubernetes-services.toml b/sources/models/src/aws-k8s-1.26/defaults.d/52-kubernetes-services.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/52-kubernetes-services.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/52-kubernetes-services.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/53-containerd-cri-pki.toml b/sources/models/src/aws-k8s-1.26/defaults.d/53-containerd-cri-pki.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/53-containerd-cri-pki.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/53-containerd-cri-pki.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/60-lockdown-integrity.toml b/sources/models/src/aws-k8s-1.26/defaults.d/60-lockdown-integrity.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/60-lockdown-integrity.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/60-lockdown-integrity.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/70-oci-hooks.toml b/sources/models/src/aws-k8s-1.26/defaults.d/70-oci-hooks.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/70-oci-hooks.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/70-oci-hooks.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/75-oci-defaults-containerd-cri.toml b/sources/models/src/aws-k8s-1.26/defaults.d/75-oci-defaults-containerd-cri.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/75-oci-defaults-containerd-cri.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/75-oci-defaults-containerd-cri.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/76-oci-defaults-containerd-cri-capabilities.toml b/sources/models/src/aws-k8s-1.26/defaults.d/76-oci-defaults-containerd-cri-capabilities.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/76-oci-defaults-containerd-cri-capabilities.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/76-oci-defaults-containerd-cri-capabilities.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/77-oci-defaults-containerd-cri-resource-limits.toml b/sources/models/src/aws-k8s-1.26/defaults.d/77-oci-defaults-containerd-cri-resource-limits.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/77-oci-defaults-containerd-cri-resource-limits.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/77-oci-defaults-containerd-cri-resource-limits.toml diff --git a/sources/models/src/aws-k8s-1.25/defaults.d/90-boot.toml b/sources/models/src/aws-k8s-1.26/defaults.d/90-boot.toml similarity index 100% rename from sources/models/src/aws-k8s-1.25/defaults.d/90-boot.toml rename to sources/models/src/aws-k8s-1.26/defaults.d/90-boot.toml diff --git a/sources/models/src/aws-k8s-1.25/mod.rs b/sources/models/src/aws-k8s-1.26/mod.rs similarity index 100% rename from sources/models/src/aws-k8s-1.25/mod.rs rename to sources/models/src/aws-k8s-1.26/mod.rs diff --git a/sources/models/src/lib.rs b/sources/models/src/lib.rs index c63133994e3..725a1a963df 100644 --- a/sources/models/src/lib.rs +++ b/sources/models/src/lib.rs @@ -59,6 +59,16 @@ The `#[model]` attribute on Settings and its sub-structs reduces duplication and * [Model](src/aws-k8s-1.25-nvidia/mod.rs) * [Default settings](src/aws-k8s-1.25-nvidia/defaults.d/) +## aws-k8s-1.26: Kubernetes 1.26 + +* [Model](src/aws-k8s-1.26/mod.rs) +* [Default settings](src/aws-k8s-1.26/defaults.d/) + +### aws-k8s-1.26-nvidia: Kubernetes 1.26 NVIDIA + +* [Model](src/aws-k8s-1.26-nvidia/mod.rs) +* [Default settings](src/aws-k8s-1.26-nvidia/defaults.d/) + ## aws-ecs-1: Amazon ECS * [Model](src/aws-ecs-1/mod.rs) diff --git a/sources/models/src/metal-k8s-1.25 b/sources/models/src/metal-k8s-1.25 new file mode 120000 index 00000000000..317c064da3e --- /dev/null +++ b/sources/models/src/metal-k8s-1.25 @@ -0,0 +1 @@ +metal-k8s-1.26 \ No newline at end of file diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/10-defaults.toml b/sources/models/src/metal-k8s-1.26/defaults.d/10-defaults.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/10-defaults.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/10-defaults.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/15-public-tuf.toml b/sources/models/src/metal-k8s-1.26/defaults.d/15-public-tuf.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/15-public-tuf.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/15-public-tuf.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/20-public-host-containers.toml b/sources/models/src/metal-k8s-1.26/defaults.d/20-public-host-containers.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/20-public-host-containers.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/20-public-host-containers.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/30-metrics.toml b/sources/models/src/metal-k8s-1.26/defaults.d/30-metrics.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/30-metrics.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/30-metrics.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/31-send-metrics.toml b/sources/models/src/metal-k8s-1.26/defaults.d/31-send-metrics.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/31-send-metrics.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/31-send-metrics.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/40-aws-creds.toml b/sources/models/src/metal-k8s-1.26/defaults.d/40-aws-creds.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/40-aws-creds.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/40-aws-creds.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/50-kubernetes-metal.toml b/sources/models/src/metal-k8s-1.26/defaults.d/50-kubernetes-metal.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/50-kubernetes-metal.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/50-kubernetes-metal.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/51-kubernetes-containerd.toml b/sources/models/src/metal-k8s-1.26/defaults.d/51-kubernetes-containerd.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/51-kubernetes-containerd.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/51-kubernetes-containerd.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/52-kubernetes-services.toml b/sources/models/src/metal-k8s-1.26/defaults.d/52-kubernetes-services.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/52-kubernetes-services.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/52-kubernetes-services.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/53-containerd-cri-pki.toml b/sources/models/src/metal-k8s-1.26/defaults.d/53-containerd-cri-pki.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/53-containerd-cri-pki.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/53-containerd-cri-pki.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/60-lockdown-integrity.toml b/sources/models/src/metal-k8s-1.26/defaults.d/60-lockdown-integrity.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/60-lockdown-integrity.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/60-lockdown-integrity.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/70-public-ntp.toml b/sources/models/src/metal-k8s-1.26/defaults.d/70-public-ntp.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/70-public-ntp.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/70-public-ntp.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/80-oci-hooks.toml b/sources/models/src/metal-k8s-1.26/defaults.d/80-oci-hooks.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/80-oci-hooks.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/80-oci-hooks.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/85-oci-defaults-containerd-cri.toml b/sources/models/src/metal-k8s-1.26/defaults.d/85-oci-defaults-containerd-cri.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/85-oci-defaults-containerd-cri.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/85-oci-defaults-containerd-cri.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/86-oci-defaults-containerd-cri-capabilities.toml b/sources/models/src/metal-k8s-1.26/defaults.d/86-oci-defaults-containerd-cri-capabilities.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/86-oci-defaults-containerd-cri-capabilities.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/86-oci-defaults-containerd-cri-capabilities.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/87-oci-defaults-containerd-cri-resource-limits.toml b/sources/models/src/metal-k8s-1.26/defaults.d/87-oci-defaults-containerd-cri-resource-limits.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/87-oci-defaults-containerd-cri-resource-limits.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/87-oci-defaults-containerd-cri-resource-limits.toml diff --git a/sources/models/src/metal-k8s-1.25/defaults.d/90-boot.toml b/sources/models/src/metal-k8s-1.26/defaults.d/90-boot.toml similarity index 100% rename from sources/models/src/metal-k8s-1.25/defaults.d/90-boot.toml rename to sources/models/src/metal-k8s-1.26/defaults.d/90-boot.toml diff --git a/sources/models/src/metal-k8s-1.25/mod.rs b/sources/models/src/metal-k8s-1.26/mod.rs similarity index 100% rename from sources/models/src/metal-k8s-1.25/mod.rs rename to sources/models/src/metal-k8s-1.26/mod.rs diff --git a/sources/models/src/vmware-k8s-1.25 b/sources/models/src/vmware-k8s-1.25 new file mode 120000 index 00000000000..adf25c33b57 --- /dev/null +++ b/sources/models/src/vmware-k8s-1.25 @@ -0,0 +1 @@ +vmware-k8s-1.26 \ No newline at end of file diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/10-defaults.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/10-defaults.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/10-defaults.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/10-defaults.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/15-public-tuf.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/15-public-tuf.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/15-public-tuf.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/15-public-tuf.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/20-public-host-containers.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/20-public-host-containers.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/20-public-host-containers.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/20-public-host-containers.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/30-metrics.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/30-metrics.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/30-metrics.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/30-metrics.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/31-send-metrics.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/31-send-metrics.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/31-send-metrics.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/31-send-metrics.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/40-aws-creds.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/40-aws-creds.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/40-aws-creds.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/40-aws-creds.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/50-kubernetes-vmware.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/50-kubernetes-vmware.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/50-kubernetes-vmware.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/50-kubernetes-vmware.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/51-kubernetes-containerd.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/51-kubernetes-containerd.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/51-kubernetes-containerd.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/51-kubernetes-containerd.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/52-kubernetes-services.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/52-kubernetes-services.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/52-kubernetes-services.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/52-kubernetes-services.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/53-containerd-cri-pki.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/53-containerd-cri-pki.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/53-containerd-cri-pki.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/53-containerd-cri-pki.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/60-lockdown-integrity.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/60-lockdown-integrity.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/60-lockdown-integrity.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/60-lockdown-integrity.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/70-public-ntp.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/70-public-ntp.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/70-public-ntp.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/70-public-ntp.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/75-oci-defaults-containerd-cri.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/75-oci-defaults-containerd-cri.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/75-oci-defaults-containerd-cri.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/75-oci-defaults-containerd-cri.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/76-oci-defaults-containerd-cri-capabilities.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/76-oci-defaults-containerd-cri-capabilities.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/76-oci-defaults-containerd-cri-capabilities.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/76-oci-defaults-containerd-cri-capabilities.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/77-oci-defaults-containerd-cri-resource-limits.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/77-oci-defaults-containerd-cri-resource-limits.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/77-oci-defaults-containerd-cri-resource-limits.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/77-oci-defaults-containerd-cri-resource-limits.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/80-oci-hooks.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/80-oci-hooks.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/80-oci-hooks.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/80-oci-hooks.toml diff --git a/sources/models/src/vmware-k8s-1.25/defaults.d/90-boot.toml b/sources/models/src/vmware-k8s-1.26/defaults.d/90-boot.toml similarity index 100% rename from sources/models/src/vmware-k8s-1.25/defaults.d/90-boot.toml rename to sources/models/src/vmware-k8s-1.26/defaults.d/90-boot.toml diff --git a/sources/models/src/vmware-k8s-1.25/mod.rs b/sources/models/src/vmware-k8s-1.26/mod.rs similarity index 100% rename from sources/models/src/vmware-k8s-1.25/mod.rs rename to sources/models/src/vmware-k8s-1.26/mod.rs diff --git a/variants/Cargo.lock b/variants/Cargo.lock index f0c3f3194c6..8b3feda41dc 100644 --- a/variants/Cargo.lock +++ b/variants/Cargo.lock @@ -170,6 +170,33 @@ dependencies = [ "release", ] +[[package]] +name = "aws-k8s-1_26" +version = "0.1.0" +dependencies = [ + "aws-iam-authenticator", + "cni", + "cni-plugins", + "kernel-5_15", + "kubernetes-1_26", + "release", +] + +[[package]] +name = "aws-k8s-1_26-nvidia" +version = "0.1.0" +dependencies = [ + "aws-iam-authenticator", + "cni", + "cni-plugins", + "kernel-5_15", + "kmod-5_15-nvidia", + "kubernetes-1_26", + "nvidia-container-toolkit", + "nvidia-k8s-device-plugin", + "release", +] + [[package]] name = "aws-signing-helper" version = "0.1.0" @@ -487,6 +514,15 @@ dependencies = [ "glibc", ] +[[package]] +name = "kubernetes-1_26" +version = "0.1.0" +dependencies = [ + "aws-signing-helper", + "ecr-credential-provider", + "glibc", +] + [[package]] name = "libacl" version = "0.1.0" @@ -830,6 +866,17 @@ dependencies = [ "release", ] +[[package]] +name = "metal-k8s-1_26" +version = "0.1.0" +dependencies = [ + "cni", + "cni-plugins", + "kernel-5_15", + "kubernetes-1_26", + "release", +] + [[package]] name = "microcode" version = "0.1.0" @@ -1057,6 +1104,18 @@ dependencies = [ "release", ] +[[package]] +name = "vmware-k8s-1_26" +version = "0.1.0" +dependencies = [ + "cni", + "cni-plugins", + "kernel-5_15", + "kubernetes-1_26", + "open-vm-tools", + "release", +] + [[package]] name = "wicked" version = "0.1.0" diff --git a/variants/Cargo.toml b/variants/Cargo.toml index 6156e176d17..1741edd4f3b 100644 --- a/variants/Cargo.toml +++ b/variants/Cargo.toml @@ -11,16 +11,20 @@ members = [ "aws-k8s-1.24-nvidia", "aws-k8s-1.25", "aws-k8s-1.25-nvidia", + "aws-k8s-1.26", + "aws-k8s-1.26-nvidia", "metal-dev", "metal-k8s-1.22", "metal-k8s-1.23", "metal-k8s-1.24", "metal-k8s-1.25", + "metal-k8s-1.26", "vmware-dev", "vmware-k8s-1.22", "vmware-k8s-1.23", "vmware-k8s-1.24", "vmware-k8s-1.25", + "vmware-k8s-1.26", ] [profile.dev] diff --git a/variants/README.md b/variants/README.md index 36cde543e89..bed322cb64b 100644 --- a/variants/README.md +++ b/variants/README.md @@ -89,6 +89,20 @@ It also includes the required packages to configure containers to leverage NVIDI It supports self-hosted clusters and clusters managed by [EKS](https://aws.amazon.com/eks/). This variant is compatible with Kubernetes 1.25, 1.26, and 1.27 clusters. +### aws-k8s-1.26: Kubernetes 1.26 node + +The [aws-k8s-1.26](aws-k8s-1.26/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.26, 1.27, and 1.28 clusters. + +### aws-k8s-1.26-nvidia: Kubernetes 1.26 NVIDIA node + +The [aws-k8s-1.26-nvidia](aws-k8s-1.26-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.26, 1.27, and 1.28 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) @@ -139,6 +153,13 @@ It supports self-hosted clusters. This variant is compatible with Kubernetes 1.25, 1.26, and 1.27 clusters. +## vmware-k8s-1.26: VMware Kubernetes 1.26 node + +The [vmware-k8s-1.26](vmware-k8s-1.26/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.26, 1.27, and 1.28 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. @@ -172,6 +193,13 @@ It supports self-hosted clusters. This variant is compatible with Kubernetes 1.25, 1.26, and 1.27 clusters. +### metal-k8s-1.26: Metal Kubernetes 1.26 node + +The [metal-k8s-1.26](metal-k8s-1.26/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.26, 1.27, and 1.28 clusters. + ### Deprecated variants #### aws-k8s-1.15: Kubernetes 1.15 node diff --git a/variants/aws-k8s-1.26-nvidia/Cargo.toml b/variants/aws-k8s-1.26-nvidia/Cargo.toml new file mode 100644 index 00000000000..6f75ac6bd0d --- /dev/null +++ b/variants/aws-k8s-1.26-nvidia/Cargo.toml @@ -0,0 +1,50 @@ +[package] +# This is the aws-k8s-1.26-nvidia variant. "." is not allowed in crate names, but we +# don't use this crate name anywhere. +name = "aws-k8s-1_26-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 + +[package.metadata.build-variant] +included-packages = [ + "aws-iam-authenticator", + "cni", + "cni-plugins", + "kernel-5.15", + "kubelet-1.26", + "release", + "nvidia-container-toolkit", + "nvidia-k8s-device-plugin", + "kmod-5.15-nvidia-tesla-515", +] +kernel-parameters = [ + "console=tty0", + "console=ttyS0,115200n8", + "net.ifnames=0", + "netdog.default-interface=eth0:dhcp4,dhcp6?", + "quiet", +] + +[lib] +path = "lib.rs" + +[build-dependencies] +aws-iam-authenticator = { path = "../../packages/aws-iam-authenticator" } +cni = { path = "../../packages/cni" } +cni-plugins = { path = "../../packages/cni-plugins" } +kernel-5_15 = { path = "../../packages/kernel-5.15" } +kubernetes-1_26 = { path = "../../packages/kubernetes-1.26" } +release = { path = "../../packages/release" } +nvidia-container-toolkit = { path = "../../packages/nvidia-container-toolkit" } +nvidia-k8s-device-plugin = { path = "../../packages/nvidia-k8s-device-plugin" } +kmod-5_15-nvidia = { path = "../../packages/kmod-5.15-nvidia" } diff --git a/variants/aws-k8s-1.26-nvidia/build.rs b/variants/aws-k8s-1.26-nvidia/build.rs new file mode 100644 index 00000000000..d6a90e4df44 --- /dev/null +++ b/variants/aws-k8s-1.26-nvidia/build.rs @@ -0,0 +1,9 @@ +use std::process::{exit, Command}; + +fn main() -> Result<(), std::io::Error> { + let ret = Command::new("buildsys").arg("build-variant").status()?; + if !ret.success() { + exit(1); + } + Ok(()) +} diff --git a/variants/aws-k8s-1.26-nvidia/lib.rs b/variants/aws-k8s-1.26-nvidia/lib.rs new file mode 100644 index 00000000000..d799fb2d44c --- /dev/null +++ b/variants/aws-k8s-1.26-nvidia/lib.rs @@ -0,0 +1 @@ +// not used diff --git a/variants/aws-k8s-1.26/Cargo.toml b/variants/aws-k8s-1.26/Cargo.toml new file mode 100644 index 00000000000..d785e5c1b4e --- /dev/null +++ b/variants/aws-k8s-1.26/Cargo.toml @@ -0,0 +1,41 @@ +[package] +# This is the aws-k8s-1.26 variant. "." is not allowed in crate names, but we +# don't use this crate name anywhere. +name = "aws-k8s-1_26" +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-features] +grub-set-private-var = true + +[package.metadata.build-variant] +included-packages = [ + "aws-iam-authenticator", + "cni", + "cni-plugins", + "kernel-5.15", + "kubelet-1.26", + "release", +] +kernel-parameters = [ + "console=tty0", + "console=ttyS0,115200n8", + "net.ifnames=0", + "netdog.default-interface=eth0:dhcp4,dhcp6?", + "quiet", +] + +[lib] +path = "lib.rs" + +[build-dependencies] +aws-iam-authenticator = { path = "../../packages/aws-iam-authenticator" } +cni = { path = "../../packages/cni" } +cni-plugins = { path = "../../packages/cni-plugins" } +kernel-5_15 = { path = "../../packages/kernel-5.15" } +kubernetes-1_26 = { path = "../../packages/kubernetes-1.26" } +release = { path = "../../packages/release" } diff --git a/variants/aws-k8s-1.26/build.rs b/variants/aws-k8s-1.26/build.rs new file mode 100644 index 00000000000..d6a90e4df44 --- /dev/null +++ b/variants/aws-k8s-1.26/build.rs @@ -0,0 +1,9 @@ +use std::process::{exit, Command}; + +fn main() -> Result<(), std::io::Error> { + let ret = Command::new("buildsys").arg("build-variant").status()?; + if !ret.success() { + exit(1); + } + Ok(()) +} diff --git a/variants/aws-k8s-1.26/lib.rs b/variants/aws-k8s-1.26/lib.rs new file mode 100644 index 00000000000..d799fb2d44c --- /dev/null +++ b/variants/aws-k8s-1.26/lib.rs @@ -0,0 +1 @@ +// not used diff --git a/variants/metal-k8s-1.26/Cargo.toml b/variants/metal-k8s-1.26/Cargo.toml new file mode 100644 index 00000000000..9118d159464 --- /dev/null +++ b/variants/metal-k8s-1.26/Cargo.toml @@ -0,0 +1,42 @@ +[package] +# This is the metal-k8s-1.26 variant. "." is not allowed in crate names, but +# we don't use this crate name anywhere. +name = "metal-k8s-1_26" +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 + +[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 = [ + "cni", + "cni-plugins", + "kernel-5.15", + "kubelet-1.26", + "release", +] + +[lib] +path = "lib.rs" + +[build-dependencies] +cni = { path = "../../packages/cni" } +cni-plugins = { path = "../../packages/cni-plugins" } +kernel-5_15 = { path = "../../packages/kernel-5.15" } +kubernetes-1_26 = { path = "../../packages/kubernetes-1.26" } +release = { path = "../../packages/release" } diff --git a/variants/metal-k8s-1.26/build.rs b/variants/metal-k8s-1.26/build.rs new file mode 100644 index 00000000000..d6a90e4df44 --- /dev/null +++ b/variants/metal-k8s-1.26/build.rs @@ -0,0 +1,9 @@ +use std::process::{exit, Command}; + +fn main() -> Result<(), std::io::Error> { + let ret = Command::new("buildsys").arg("build-variant").status()?; + if !ret.success() { + exit(1); + } + Ok(()) +} diff --git a/variants/metal-k8s-1.26/lib.rs b/variants/metal-k8s-1.26/lib.rs new file mode 100644 index 00000000000..d799fb2d44c --- /dev/null +++ b/variants/metal-k8s-1.26/lib.rs @@ -0,0 +1 @@ +// not used diff --git a/variants/vmware-k8s-1.26/Cargo.toml b/variants/vmware-k8s-1.26/Cargo.toml new file mode 100644 index 00000000000..87b70b446bf --- /dev/null +++ b/variants/vmware-k8s-1.26/Cargo.toml @@ -0,0 +1,47 @@ +[package] +# This is the vmware-k8s-1.26 variant. "." is not allowed in crate names, but +# we don't use this crate name anywhere. +name = "vmware-k8s-1_26" +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] +partition-plan = "unified" + +[package.metadata.build-variant.image-features] +grub-set-private-var = true + +[package.metadata.build-variant] +image-format = "vmdk" +supported-arches = ["x86_64"] +kernel-parameters = [ + "console=tty1", + # Only reserve if there are at least 2GB + "crashkernel=2G-:256M", + "net.ifnames=0", + "netdog.default-interface=eth0:dhcp4,dhcp6?", + "quiet", +] +included-packages = [ + "cni", + "cni-plugins", + "kernel-5.15", + "kubelet-1.26", + "open-vm-tools", + "release", +] + +[lib] +path = "lib.rs" + +[build-dependencies] +cni = { path = "../../packages/cni" } +cni-plugins = { path = "../../packages/cni-plugins" } +kernel-5_15 = { path = "../../packages/kernel-5.15" } +kubernetes-1_26 = { path = "../../packages/kubernetes-1.26" } +open-vm-tools = { path = "../../packages/open-vm-tools" } +release = { path = "../../packages/release" } diff --git a/variants/vmware-k8s-1.26/build.rs b/variants/vmware-k8s-1.26/build.rs new file mode 100644 index 00000000000..d6a90e4df44 --- /dev/null +++ b/variants/vmware-k8s-1.26/build.rs @@ -0,0 +1,9 @@ +use std::process::{exit, Command}; + +fn main() -> Result<(), std::io::Error> { + let ret = Command::new("buildsys").arg("build-variant").status()?; + if !ret.success() { + exit(1); + } + Ok(()) +} diff --git a/variants/vmware-k8s-1.26/lib.rs b/variants/vmware-k8s-1.26/lib.rs new file mode 100644 index 00000000000..d799fb2d44c --- /dev/null +++ b/variants/vmware-k8s-1.26/lib.rs @@ -0,0 +1 @@ +// not used diff --git a/variants/vmware-k8s-1.26/template.ovf b/variants/vmware-k8s-1.26/template.ovf new file mode 120000 index 00000000000..e301e3bb05d --- /dev/null +++ b/variants/vmware-k8s-1.26/template.ovf @@ -0,0 +1 @@ +../shared/template-unified.ovf \ No newline at end of file