feat: update Kubernetes to 1.20.3

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#changelog-since-v1202

Also updater pkgs for:

* talos-systems/pkgs#238 (raspberrypi-firmware update)
* talos-systems/pkgs#242 (Linux 5.10.17 + init_on_free=0)

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
This commit is contained in:
Andrey Smirnov 2021-02-18 19:05:58 +03:00 committed by talos-bot
parent b914398154
commit e9fc54f6e3
20 changed files with 56 additions and 62 deletions

View File

@ -9,7 +9,7 @@ DOCKER_LOGIN_ENABLED ?= true
ARTIFACTS := _out
TOOLS ?= ghcr.io/talos-systems/tools:v0.3.0-21-g0026740
PKGS ?= v0.3.0-72-ga0bb6ab
PKGS ?= v0.3.0-74-g6748819
EXTRAS ?= v0.1.0-9-g302cc61
GO_VERSION ?= 1.15
GOFUMPT_VERSION ?= abc0db2c416aca0f60ea33c23c76665f6e7ba0b6
@ -18,7 +18,7 @@ OPERATING_SYSTEM := $(shell uname -s | tr "[:upper:]" "[:lower:]")
TALOSCTL_DEFAULT_TARGET := talosctl-$(OPERATING_SYSTEM)
INTEGRATION_TEST_DEFAULT_TARGET := integration-test-$(OPERATING_SYSTEM)
INTEGRATION_TEST_PROVISION_DEFAULT_TARGET := integration-test-provision-$(OPERATING_SYSTEM)
KUBECTL_URL ?= https://storage.googleapis.com/kubernetes-release/release/v1.20.2/bin/$(OPERATING_SYSTEM)/amd64/kubectl
KUBECTL_URL ?= https://storage.googleapis.com/kubernetes-release/release/v1.20.4/bin/$(OPERATING_SYSTEM)/amd64/kubectl
CLUSTERCTL_VERSION ?= 0.3.14
CLUSTERCTL_URL ?= https://github.com/kubernetes-sigs/cluster-api/releases/download/v$(CLUSTERCTL_VERSION)/clusterctl-$(OPERATING_SYSTEM)-amd64
SONOBUOY_VERSION ?= 0.19.0

View File

@ -29,7 +29,7 @@ terminal_output console
menuentry "Talos ISO" {
set gfxmode=auto
set gfxpayload=text
linux /boot/vmlinuz init_on_alloc=1 init_on_free=1 slab_nomerge pti=on panic=0 consoleblank=0 printk.devkmsg=on earlyprintk=ttyS0 console=tty0 console=ttyS0 talos.platform=metal
linux /boot/vmlinuz init_on_alloc=1 slab_nomerge pti=on panic=0 consoleblank=0 printk.devkmsg=on earlyprintk=ttyS0 console=tty0 console=ttyS0 talos.platform=metal
initrd /boot/initramfs.xz
}`)

12
go.mod
View File

@ -92,10 +92,10 @@ require (
gopkg.in/freddierice/go-losetup.v1 v1.0.0-20170407175016-fc9adea44124
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
honnef.co/go/tools v0.0.1-2020.1.6 // indirect
k8s.io/api v0.20.2
k8s.io/apimachinery v0.20.2
k8s.io/apiserver v0.20.2 // indirect
k8s.io/client-go v0.20.2
k8s.io/cri-api v0.20.2
k8s.io/kubelet v0.20.2
k8s.io/api v0.20.4
k8s.io/apimachinery v0.20.4
k8s.io/apiserver v0.20.4 // indirect
k8s.io/client-go v0.20.4
k8s.io/cri-api v0.20.4
k8s.io/kubelet v0.20.4
)

28
go.sum
View File

@ -1335,21 +1335,21 @@ honnef.co/go/tools v0.0.1-2020.1.6/go.mod h1:pyyisuGw24ruLjrr1ddx39WE0y9OooInRzE
inet.af/tcpproxy v0.0.0-20200125044825-b6bb9b5b8252 h1:gmJCKidOfjKDUHF1jjke+I+2iQIyE3HNNxu2OKO/FUI=
inet.af/tcpproxy v0.0.0-20200125044825-b6bb9b5b8252/go.mod h1:zq+R+tLcdHugi7Jt+FtIQY6m6wtX34lr2CdQVH2fhW0=
k8s.io/api v0.18.5/go.mod h1:tN+e/2nbdGKOAH55NMV8oGrMG+3uRlA9GaRfvnCCSNk=
k8s.io/api v0.20.2 h1:y/HR22XDZY3pniu9hIFDLpUCPq2w5eQ6aV/VFQ7uJMw=
k8s.io/api v0.20.2/go.mod h1:d7n6Ehyzx+S+cE3VhTGfVNNqtGc/oL9DCdYYahlurV8=
k8s.io/api v0.20.4 h1:xZjKidCirayzX6tHONRQyTNDVIR55TYVqgATqo6ZULY=
k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ=
k8s.io/apimachinery v0.18.5/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko=
k8s.io/apimachinery v0.20.2 h1:hFx6Sbt1oG0n6DZ+g4bFt5f6BoMkOjKWsQFu077M3Vg=
k8s.io/apimachinery v0.20.2/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
k8s.io/apiserver v0.20.2 h1:lGno2t3gcZnLtzsKH4oG0xA9/4GTiBzMO1DGp+K+Bak=
k8s.io/apiserver v0.20.2/go.mod h1:2nKd93WyMhZx4Hp3RfgH2K5PhwyTrprrkWYnI7id7jA=
k8s.io/apimachinery v0.20.4 h1:vhxQ0PPUUU2Ns1b9r4/UFp13UPs8cw2iOoTjnY9faa0=
k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
k8s.io/apiserver v0.20.4 h1:zMMKIgIUDIFiwK3LyY7qOV4Z4wKsHVYExL6vXY9fPX4=
k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM=
k8s.io/client-go v0.18.5/go.mod h1:EsiD+7Fx+bRckKWZXnAXRKKetm1WuzPagH4iOSC8x58=
k8s.io/client-go v0.20.2 h1:uuf+iIAbfnCSw8IGAv/Rg0giM+2bOzHLOsbbrwrdhNQ=
k8s.io/client-go v0.20.2/go.mod h1:kH5brqWqp7HDxUFKoEgiI4v8G1xzbe9giaCenUWJzgE=
k8s.io/component-base v0.20.2 h1:LMmu5I0pLtwjpp5009KLuMGFqSc2S2isGw8t1hpYKLE=
k8s.io/component-base v0.20.2/go.mod h1:pzFtCiwe/ASD0iV7ySMu8SYVJjCapNM9bjvk7ptpKh0=
k8s.io/client-go v0.20.4 h1:85crgh1IotNkLpKYKZHVNI1JT86nr/iDCvq2iWKsql4=
k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k=
k8s.io/component-base v0.20.4 h1:gdvPs4G11e99meQnW4zN+oYOjH8qkLz1sURrAzvKWqc=
k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI=
k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM=
k8s.io/cri-api v0.20.2 h1:GPwBRUF2dQvf7ZaXVUmHbmyYRDlxDuCBSfn/2wpccQk=
k8s.io/cri-api v0.20.2/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI=
k8s.io/cri-api v0.20.4 h1:AwwzhJMfaxiw8NnEJAUQI+FWlX1mAp9tHODTVxnkEQg=
k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI=
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
@ -1362,8 +1362,8 @@ k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd h1:sOHNzJIkytDF6qadMNKhhDRpc6ODik8lVC6nOur7B2c=
k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM=
k8s.io/kubelet v0.20.2 h1:TbOqhr5pN6GsGy798WnwiBAw1JIyZ5H4rugKf1q2jNw=
k8s.io/kubelet v0.20.2/go.mod h1:i441hnZtH2wUiDNqpXVZYaNCqEOBd2sM7x2mV0n7dJs=
k8s.io/kubelet v0.20.4 h1:yTD3mHQsoqOKWUAEYna6egOF8qzvdCeBcpTSS4lL6rw=
k8s.io/kubelet v0.20.4/go.mod h1:Jtubfqr/TlXcOMaUYWoGVkuY/iM5xmZiEukcJSJs0ns=
k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk=
k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
k8s.io/utils v0.0.0-20201110183641-67b214c5f920 h1:CbnUZsM497iRC5QMVkHwyl8s2tB3g7yaSHkYPkpgelw=

View File

@ -45,7 +45,7 @@ Templates:
Kernel: 'vmlinuz'
Initrds:
- 'initramfs.xz'
BootParams: 'console=tty0 ip=dhcp modules=loop,squashfs nomodeset init_on_alloc=1 init_on_free=1 slab_nomerge pti=on ima_template=ima-ng ima_appraise=fix ima_hash=sha512 talos.platform=metal talos.config={{ .ProvisionerURL }}/files/{{.Param "talos/role"}}.yaml'
BootParams: 'console=tty0 ip=dhcp modules=loop,squashfs nomodeset init_on_alloc=1 slab_nomerge pti=on ima_template=ima-ng ima_appraise=fix ima_hash=sha512 talos.platform=metal talos.config={{ .ProvisionerURL }}/files/{{.Param "talos/role"}}.yaml'
RequiredParams: []
OptionalParams:
- 'talos/role'

View File

@ -27,7 +27,7 @@ export TALOS_VERSION=v0.9
# Kubernetes
export KUBECONFIG="${TMP}/kubeconfig"
export K8S_VERSION=1.20.2
export K8S_VERSION=1.20.4
# Sonobuoy

View File

@ -7,7 +7,6 @@
"args": [
"initrd=initramfs.xz",
"init_on_alloc=1",
"init_on_free=1",
"slab_nomerge",
"pti=on",
"ima_template=ima-ng",

View File

@ -7,7 +7,6 @@
"args": [
"initrd=initramfs.xz",
"init_on_alloc=1",
"init_on_free=1",
"slab_nomerge",
"pti=on",
"ima_template=ima-ng",

View File

@ -7,7 +7,6 @@
"args": [
"initrd=initramfs.xz",
"init_on_alloc=1",
"init_on_free=1",
"slab_nomerge",
"pti=on",
"ima_template=ima-ng",

View File

@ -38,6 +38,6 @@ qemu-system-x86_64 \
-nographic \
-serial mon:stdio \
-cdrom ${ISO} \
-append "talos.platform=metal init_on_alloc=1 init_on_free=1 slab_nomerge pti=on printk.devkmsg=on earlyprintk=serial,tty0,keep console=tty0 talos.config=metal-iso" \
-append "talos.platform=metal init_on_alloc=1 slab_nomerge pti=on printk.devkmsg=on earlyprintk=serial,tty0,keep console=tty0 talos.config=metal-iso" \
-kernel ${KERNEL} \
-initrd ${INITRD}

View File

@ -169,18 +169,18 @@ func Run(suite *suite.Suite, cmd *exec.Cmd, options ...RunOption) {
}
}
if opts.stdoutEmpty {
suite.Assert().Empty(stdout.String(), "stdout should be empty")
} else {
suite.Assert().NotEmpty(stdout.String(), "stdout should be not empty")
}
if opts.stderrNotEmpty {
suite.Assert().NotEmpty(stderr.String(), "stderr should be not empty")
} else {
suite.Assert().Empty(stderr.String(), "stderr should be empty")
}
if opts.stdoutEmpty {
suite.Assert().Empty(stdout.String(), "stdout should be empty")
} else {
suite.Assert().NotEmpty(stdout.String(), "stdout should be not empty")
}
for _, rx := range opts.stdoutRegexps {
suite.Assert().Regexp(rx, stdout.String())
}

View File

@ -74,7 +74,7 @@ const (
previousK8sVersion = "1.19.4"
stableK8sVersion = "1.20.1"
currentK8sVersion = "1.20.2" //nolint: deadcode,varcheck
currentK8sVersion = "1.20.4" //nolint: deadcode,varcheck
)
var (

View File

@ -14,7 +14,7 @@ import (
const (
// DefaultKernelVersion is the default Linux kernel version.
DefaultKernelVersion = "5.10.14-talos"
DefaultKernelVersion = "5.10.17-talos"
// KernelParamConfig is the kernel parameter name for specifying the URL.
// to the config.
@ -188,7 +188,7 @@ const (
SystemKubeletPKIDir = "/system/secrets/kubelet"
// DefaultKubernetesVersion is the default target version of the control plane.
DefaultKubernetesVersion = "1.20.2"
DefaultKubernetesVersion = "1.20.4"
// DefaultControlPlanePort is the default port to use for the control plane.
DefaultControlPlanePort = 6443

View File

@ -7,7 +7,6 @@ package kernel
// DefaultArgs returns the Talos default kernel commandline options.
var DefaultArgs = []string{
"init_on_alloc=1",
"init_on_free=1",
"slab_nomerge=",
"pti=on",
"consoleblank=0",

View File

@ -22,7 +22,6 @@ The following is a list of kernel parameters required by Talos:
- `talos.platform`: set this to `packet`
- `init_on_alloc=1`: required by KSPP
- `init_on_free=1`: required by KSPP
- `slab_nomerge`: required by KSPP
- `pti=on`: required by KSPP

View File

@ -64,7 +64,6 @@ Download these files from the [release](https://github.com/talos-systems/talos/r
"args": [
"initrd=initramfs.xz",
"init_on_alloc=1",
"init_on_free=1",
"slab_nomerge",
"pti=on",
"console=tty0",
@ -91,7 +90,6 @@ Download these files from the [release](https://github.com/talos-systems/talos/r
"args": [
"initrd=initramfs.xz",
"init_on_alloc=1",
"init_on_free=1",
"slab_nomerge",
"pti=on",
"console=tty0",
@ -116,7 +114,6 @@ Download these files from the [release](https://github.com/talos-systems/talos/r
"args": [
"initrd=initramfs.xz",
"init_on_alloc=1",
"init_on_free=1",
"slab_nomerge",
"pti=on",
"console=tty0",

View File

@ -19,10 +19,13 @@ The following is a list of kernel parameters required by Talos:
- `talos.config`: the HTTP(S) URL at which the machine data can be found
- `talos.platform`: can be one of `aws`, `azure`, `container`, `digitalocean`, `gcp`, `metal`, `packet`, or `vmware`
- `init_on_alloc=1`: required by KSPP
- `init_on_free=1`: required by KSPP
- `slab_nomerge`: required by KSPP
- `pti=on`: required by KSPP
Optional arguments:
- `init_on_free=1`: advised by KSPP, if minimizing stale data lifetime is important
## CLI
### Installation

View File

@ -117,7 +117,6 @@ Talos 0.8 comes with new [KSPP requirements](https://kernsec.org/wiki/index.php/
Following kernel arguments are mandatory for Talos to boot successfully:
- `init_on_alloc=1`: required by KSPP
- `init_on_free=1`: required by KSPP
- `slab_nomerge`: required by KSPP
- `pti=on`: required by KSPP

View File

@ -102,7 +102,7 @@ talosctl cluster create [flags]
--ipv4 enable IPv4 network in the cluster (default true)
--ipv6 enable IPv6 network in the cluster (QEMU provisioner only)
--iso-path string the ISO path to use for the initial boot (VM only)
--kubernetes-version string desired kubernetes version to run (default "1.20.2")
--kubernetes-version string desired kubernetes version to run (default "1.20.4")
--masters int the number of masters to create (default 1)
--memory int the limit on memory usage in MB (each container/VM) (default 2048)
--mtu int MTU of the cluster network (default 1500)
@ -1784,7 +1784,7 @@ talosctl upgrade-k8s [flags]
--endpoint string the cluster control plane endpoint
--from string the Kubernetes control plane version to upgrade from
-h, --help help for upgrade-k8s
--to string the Kubernetes control plane version to upgrade to (default "1.20.2")
--to string the Kubernetes control plane version to upgrade to (default "1.20.4")
```
### Options inherited from parent commands

View File

@ -289,7 +289,7 @@ Examples:
``` yaml
kubelet:
image: ghcr.io/talos-systems/kubelet:v1.20.2 # The `image` field is an optional reference to an alternative kubelet image.
image: ghcr.io/talos-systems/kubelet:v1.20.4 # The `image` field is an optional reference to an alternative kubelet image.
# The `extraArgs` field is used to provide additional flags to the kubelet.
extraArgs:
feature-gates: ServerSideApply=true
@ -934,7 +934,7 @@ Examples:
``` yaml
apiServer:
image: k8s.gcr.io/kube-apiserver:v1.20.2 # The container image used in the API server manifest.
image: k8s.gcr.io/kube-apiserver:v1.20.4 # The container image used in the API server manifest.
# Extra arguments to supply to the API server.
extraArgs:
feature-gates: ServerSideApply=true
@ -966,7 +966,7 @@ Examples:
``` yaml
controllerManager:
image: k8s.gcr.io/kube-controller-manager:v1.20.2 # The container image used in the controller manager manifest.
image: k8s.gcr.io/kube-controller-manager:v1.20.4 # The container image used in the controller manager manifest.
# Extra arguments to supply to the controller manager.
extraArgs:
feature-gates: ServerSideApply=true
@ -993,7 +993,7 @@ Examples:
``` yaml
proxy:
image: k8s.gcr.io/kube-proxy:v1.20.2 # The container image used in the kube-proxy manifest.
image: k8s.gcr.io/kube-proxy:v1.20.4 # The container image used in the kube-proxy manifest.
mode: ipvs # proxy mode of kube-proxy.
# Extra arguments to supply to kube-proxy.
extraArgs:
@ -1021,7 +1021,7 @@ Examples:
``` yaml
scheduler:
image: k8s.gcr.io/kube-scheduler:v1.20.2 # The container image used in the scheduler manifest.
image: k8s.gcr.io/kube-scheduler:v1.20.4 # The container image used in the scheduler manifest.
# Extra arguments to supply to the scheduler.
extraArgs:
feature-gates: AllBeta=true
@ -1225,7 +1225,7 @@ Appears in:
``` yaml
image: ghcr.io/talos-systems/kubelet:v1.20.2 # The `image` field is an optional reference to an alternative kubelet image.
image: ghcr.io/talos-systems/kubelet:v1.20.4 # The `image` field is an optional reference to an alternative kubelet image.
# The `extraArgs` field is used to provide additional flags to the kubelet.
extraArgs:
feature-gates: ServerSideApply=true
@ -1257,7 +1257,7 @@ Examples:
``` yaml
image: ghcr.io/talos-systems/kubelet:v1.20.2
image: ghcr.io/talos-systems/kubelet:v1.20.4
```
@ -2042,7 +2042,7 @@ Appears in:
``` yaml
image: k8s.gcr.io/kube-apiserver:v1.20.2 # The container image used in the API server manifest.
image: k8s.gcr.io/kube-apiserver:v1.20.4 # The container image used in the API server manifest.
# Extra arguments to supply to the API server.
extraArgs:
feature-gates: ServerSideApply=true
@ -2070,7 +2070,7 @@ Examples:
``` yaml
image: k8s.gcr.io/kube-apiserver:v1.20.2
image: k8s.gcr.io/kube-apiserver:v1.20.4
```
@ -2118,7 +2118,7 @@ Appears in:
``` yaml
image: k8s.gcr.io/kube-controller-manager:v1.20.2 # The container image used in the controller manager manifest.
image: k8s.gcr.io/kube-controller-manager:v1.20.4 # The container image used in the controller manager manifest.
# Extra arguments to supply to the controller manager.
extraArgs:
feature-gates: ServerSideApply=true
@ -2141,7 +2141,7 @@ Examples:
``` yaml
image: k8s.gcr.io/kube-controller-manager:v1.20.2
image: k8s.gcr.io/kube-controller-manager:v1.20.4
```
@ -2176,7 +2176,7 @@ Appears in:
``` yaml
image: k8s.gcr.io/kube-proxy:v1.20.2 # The container image used in the kube-proxy manifest.
image: k8s.gcr.io/kube-proxy:v1.20.4 # The container image used in the kube-proxy manifest.
mode: ipvs # proxy mode of kube-proxy.
# Extra arguments to supply to kube-proxy.
extraArgs:
@ -2200,7 +2200,7 @@ Examples:
``` yaml
image: k8s.gcr.io/kube-proxy:v1.20.2
image: k8s.gcr.io/kube-proxy:v1.20.4
```
@ -2249,7 +2249,7 @@ Appears in:
``` yaml
image: k8s.gcr.io/kube-scheduler:v1.20.2 # The container image used in the scheduler manifest.
image: k8s.gcr.io/kube-scheduler:v1.20.4 # The container image used in the scheduler manifest.
# Extra arguments to supply to the scheduler.
extraArgs:
feature-gates: AllBeta=true
@ -2272,7 +2272,7 @@ Examples:
``` yaml
image: k8s.gcr.io/kube-scheduler:v1.20.2
image: k8s.gcr.io/kube-scheduler:v1.20.4
```