Skip to content

Commit

Permalink
Merge pull request #2771 from gthao313/k8s-1.26
Browse files Browse the repository at this point in the history
add k8s 1.26 variants
  • Loading branch information
gthao313 authored Mar 8, 2023
2 parents 30985e9 + c7d914e commit a3c73a5
Show file tree
Hide file tree
Showing 125 changed files with 990 additions and 1 deletion.
18 changes: 17 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand All @@ -80,13 +82,15 @@ 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:

* `metal-k8s-1.22`
* `metal-k8s-1.23`
* `metal-k8s-1.24`
* `metal-k8s-1.25`
* `metal-k8s-1.26`

The following variants are no longer supported:

Expand Down
31 changes: 31 additions & 0 deletions packages/kubernetes-1.26/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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" }
9 changes: 9 additions & 0 deletions packages/kubernetes-1.26/build.rs
Original file line number Diff line number Diff line change
@@ -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(())
}
62 changes: 62 additions & 0 deletions packages/kubernetes-1.26/clarify.toml
Original file line number Diff line number Diff line change
@@ -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"]
25 changes: 25 additions & 0 deletions packages/kubernetes-1.26/credential-provider-config-yaml
Original file line number Diff line number Diff line change
@@ -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}}
2 changes: 2 additions & 0 deletions packages/kubernetes-1.26/dockershim-symlink.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[Service]
ExecStartPre=/bin/ln -sf /run/containerd/containerd.sock /run/dockershim.sock
16 changes: 16 additions & 0 deletions packages/kubernetes-1.26/etc-kubernetes-pki-private.mount
Original file line number Diff line number Diff line change
@@ -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
22 changes: 22 additions & 0 deletions packages/kubernetes-1.26/kubelet-bootstrap-kubeconfig
Original file line number Diff line number Diff line change
@@ -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}}
130 changes: 130 additions & 0 deletions packages/kubernetes-1.26/kubelet-config
Original file line number Diff line number Diff line change
@@ -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}}
4 changes: 4 additions & 0 deletions packages/kubernetes-1.26/kubelet-env
Original file line number Diff line number Diff line change
@@ -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}}
Loading

0 comments on commit a3c73a5

Please sign in to comment.