github siderolabs/talos v0.14.0

latest releases: v1.8.3, pkg/machinery/v1.8.3, v1.9.0-alpha.2...
2 years ago

Talos 0.14.0 (2021-12-21)

Welcome to the v0.14.0 release of Talos!

Please try out the release binaries and report any issues at
https://github.com/talos-systems/talos/issues.

Kexec and capabilities

When kexec support is disabled
Talos no longer drops Linux capabilities (CAP_SYS_BOOT and CAP_SYS_MODULES) for child processes.
That is helpful for advanced use-cases like Docker-in-Docker.

If you want to permanently disable kexec and capabilities dropping, pass kexec_load_disabled=1 argument to the kernel.

For example:

install:
  extraKernelArgs:
    - sysctl.kernel.kexec_load_disabled=1

Please note that capabilities are dropped before machine configuration is loaded,
so disabling kexec via machine.sysctls will not be enough.

Cluster Discovery

Cluster Discovery is enabled by default for Talos 0.14.
Cluster Discovery can be disabled with talosctl gen config --with-cluster-discovery=false.

installer and imager images

Talos supports two target architectures: amd64 and arm64, so all Talos images are built for both amd64 and arm64.

New image imager was added which contains Talos assets for both architectures which allows to generate Talos disk images
cross-arch: e.g. generate Talos Raspberry PI disk image on amd64 machine.

As installer image is used only to do initial install and upgrades, it now contains Talos assets for a specific architecture.
This reduces size of the installer image leading to faster upgrades and less memory usage.

There are no user-visible changes except that now imager container image should be used to produce Talos disk images.

Kubelet

Kubelet configuration can be updated without node restart (.machine.kubelet section of machine configuration) with commands
talosctl edit mc --immediate, talosctl apply-config --immediate, talosctl patch mc --immediate.

Kubelet service can now be restarted with talosctl service kubelet restart.

Kubelet node IP configuration (.machine.kubelet.nodeIP.validSubnets) can now include negative subnet matches (prefixed with !).

Log Shipping

Talos can now ship system logs
to the configured destination using either JSON-over-UDP or JSON-over-TCP:
see .machine.logging machine configuration option.

NTP Sync

Talos NTP sync process was improved to align better with kernel time adjustment periods and to filter out spikes.

SideroLink

A set of Talos ehancements is going to unlock a number of exciting features in the upcoming release of Sidero:

  • SideroLink: a point-to-point Wireguard tunnel connecting Talos node back to the provisioning platform (Sidero).
  • event sink (kernel arg talos.event.sink=http://10.0.0.1:4000) delivers Talos internal events to the specified destination.
  • kmsg log delivery (kernel arg talos.logging.kernel=tcp://10.0.0.1:4001) sends kernel logs as JSON lines over TCP or UDP.

talosctl support

talosctl CLI tool now has a new subcommand called support, that can gather all
cluster information that could help with future debugging in a single run.

Output of the command is a zip archive with all talos service logs, kubernetes pod logs and manifests,
talos resources manifests and so on.
Generated archive does not contain any secret information so it is safe to send it for analysis to a third party.

Component Updates

  • Linux: 5.15.6
  • etcd: 3.5.1
  • containerd: 1.5.8
  • runc: 1.0.3
  • Kubernetes: 1.23.1
  • CoreDNS: 1.8.6
  • Flannel (default CNI): 0.15.1

Talos is built with Go 1.17.5

Kubernetes Upgrade Enhancements

talosctl upgrade-k8s was improved to:

  • sync all boostrap manifest resources in the Kubernetes cluster with versions bundled with current version Talos
  • upgrade kubelet to the version of the control plane components (without node reboot)

So there is no need to update CoreDNS, Flannel container manually after running upgrade-k8s anymore.

VLAN Enhancements

Talos now supports setting MTU and Virtual IPs on VLAN interfaces.

Contributors

  • Andrey Smirnov
  • Alexey Palazhchenko
  • Artem Chernyshev
  • Noel Georgi
  • Serge Logvinov
  • Nico Berlee
  • Spencer Smith
  • Alex Zero
  • Andrew Rynhard
  • Branden Cash
  • David Haines
  • Gerard de Leeuw
  • Michael Fornaro
  • Rohit Dandamudi
  • Rui Lopes
  • Seán C McCord

Changes

178 commits

  • 675dee0e7 release(v0.14.0): prepare release
  • 79cf214b7 test: retry talosctl time call in the tests
  • b79948f9a feat: show human-readable aliases in talosctl get rd
  • ccf468ea2 feat: update Kubernetes to 1.23.1
  • 5bf3a1519 fix: update DHCP library with the panic fix
  • bc8983b93 release(v0.14.0-beta.1): prepare release
  • 02796f889 fix: allow kubelet to be started via the API
  • e69eacae1 fix: use default time servers in time API if none are configured
  • c60e153a1 fix: cleanup affiliates
  • 301f9e4e0 feat: update Kubernetes to 1.23.0
  • fe2e953af feat: upgrade kubelet version in talosctl upgrade-k8s
  • 4daff7895 chore: update Go to 1.17.5
  • 35cb34bd5 release(v0.14.0-beta.0): prepare release
  • 1d6f140d7 fix: make apply-config work reliably in any Talos state
  • a5a6c720e chore: remove boot-{arch}.tar.gz artifact
  • fc5ec5007 fix: relax validation for wireguard endpoints
  • cdbd5cff4 docs: vlan VIP
  • 149ffa977 fix: increase boot and etcd join timeouts
  • dc9db2141 feat: autocomplete nodes, context and resource definitions
  • b4b3e2133 chore: bump tools/pkgs/extra to final released versions
  • d225cf91e fix: tmpfs default permissions
  • 8f3e1a4ad fix: drop unpacked layers from containerd image store
  • 1fc43619d docs: improve clarity for users
  • 36c9a65ac feat: update deps and Kubernetes to 1.23.0-rc.1
  • 64a4f6e77 test: bump Talos versions in upgrade tests
  • d2ebda78c feat: update runc to 1.0.3
  • adf05072a chore: drop unused package
  • 961d1567d chore: update Go to 1.17.4
  • d2fd7c217 feat: make kubelet service apply changes immediately
  • 4f5d9da92 feat: allow overriding KSPP kernel parameters
  • 6377f3df7 test: uplift capi versions and templates
  • 2a0da0624 feat: split installer and imager images
  • 1a13aaa23 feat: update Linux to 5.15.6
  • 73293bc2a feat: can disable controlmanager and scheduler
  • 7f9922296 feat: add powercycle mode in reboot
  • bc69f6ec8 feat: vip for VLANs
  • 99338e5ff feat: update Flannel to 0.15.1
  • 8370dde1f docs: fix typos
  • a5646db29 feat: support MTU for VLAN's
  • 4aad0ebf9 docs: expand logging documentation
  • 400225c88 docs: fix GCP docs
  • f7c87d1d9 release(v0.14.0-alpha.2): prepare release
  • e9f4b7b20 feat: update Linux to 5.15.5
  • 4d0a75a3f docs: add documentation about logging
  • 8d1cbeef9 chore: add API breaking changes detector
  • ed7fb9db1 feat: move kubelet proccesses to /podruntime cgroup
  • 2cd3f9be1 feat: filter out SideroLink addresses by default
  • 0f169bf9b chore: add API deprecations mechanism
  • eaf6d4720 refactor: use random port listener in kernel log delivery tests
  • bf4c81e7d feat: kernel log (kmsg) delivery controller
  • f3149780e feat: update Kubernetes to 1.23.0-rc.0
  • b824909d6 fix: disable kexec on RPi4
  • 3257751bc fix: initialize Drainer properly
  • e4bc68bf0 fix: leave only a single IPv4/IPv6 address as kubelet's node IP
  • e6d007418 feat: update pkgs - Linux 5.15.4, LibreSSL 3.2.7
  • d5cbc3640 feat: add GCP ccm
  • 7433150fd feat: implement events sink controller
  • b4a406ae7 test: pin cluster API templates version to tag v1alpha4
  • 9427e78dc fix: catch panics in network operator runs
  • d1f55f901 fix: update blockdevice library to properly handle absent GPT
  • 5ac64b2d9 chore: set version in unit-tests
  • 20d39c0b4 chore: format .proto files
  • 852bf4a7d feat: talosctl fish completion support
  • 6bb75150a fix: allow add_key and request_key in kubelet seccomp profile
  • 6487b21fe feat: update pkgs for u-boot, containerd, etc
  • f7d1e7776 feat: provide SideroLink client implementation
  • 58892cd69 fix: unblock events watch on context cancel
  • caa76be2c fix: containerd failed to load plugin
  • 1ffa8e048 feat: add ULA prefix for SideroLink
  • c6a67b866 fix: ignore not existing nodes on cordoning
  • f73025257 feat: add new event types
  • 7c9b082f7 feat: update Kubernetes to 1.23.0-beta.0
  • 750e31c4a fix: ignore EBUSY from kexec_file_load
  • 2d11b5955 fix: ignore virtual IP as kubelet node IPs
  • 030fd349b fix: don't run kexec prepare on shutdown and reset
  • 6dcce20e6 test: set proper pod CIDR for Cilium tests
  • 695300dac release(v0.14.0-alpha.1): prepare release
  • 753a82188 refactor: move pkg/resources to machinery
  • 0102a64a5 refactor: remove pkg/resources dependencies on wgtypes, netx
  • 7462733bc chore: update golangci-lint
  • 032c99a03 refactor: remove pkg/resources dependencies on k8s and base62
  • 4a5cff45f perf: raspberry PIs clockspeed as fast as firmware allows
  • a76f6d69d feat: allow kubelet to be restarted and provide negative nodeIP subnets
  • 189221d58 chore: update dependencies
  • 41f0aecc1 docs: update partition info
  • 95105071d chore: fix simple issues found by golangci-lint
  • d4b0ca21a test: retry upgrade mutex lock failures
  • 4357e9a84 docs: add Talos partions info
  • 8e8687d75 fix: use temporary sonobuoy version
  • e4e8e8737 test: disable e2e-misc test with Canal CNI
  • 897da2f6e docs: common typos
  • a50483ddd feat: update Linux to 5.15.1
  • a2233bfe4 fix: improve NTP sync process
  • 7efc1238e fix: parse partition size correctly
  • d6147eb17 chore: update sonobuoy
  • efbae7857 fix: use etc folder for du cli tests
  • 198eea51a fix: wait for follow reader to start before writing to the file
  • e7f715eb0 chore: log KubeSpan IPs overlaps
  • 82a1ad168 chore: bump dependencies
  • e8fccbf53 fix: clear time adjustment error when setting time to specific value
  • e6f90bb41 chore: remove unused parameters
  • 785161d19 feat: update k8s to 1.23.0-alpha.4
  • fe228d7c8 fix: do not use yaml.v2 in the support cmd
  • 9b48ca217 fix: endpoints and nodes in generated talosconfig
  • 6e16fd2fe chore: update tools, pkgs, and extras
  • 261c497c7 feat: implement talosctl support command
  • fc7dc4548 chore: check our API idiosyncrasies
  • b15844298 feat: use GCP deployment manager
  • 3e7d4df99 chore: bump dependencies
  • 88f242295 refactor: get rid of prometheus/procfs dependency in pkg/resources
  • dd196d300 refactor: prepare for move of pkg/resources to machinery
  • f6110f803 fix: remove listening socket to fix Talos in a container restart
  • 53bbb13ed docs: update docs with emmc boot guide
  • 8329d2111 chore: split polymorphic RootSecret resource into specific types
  • c97becdd9 chore: remove interfaces and routes APIs
  • d798635d9 feat: automatically limit kubelet node IP family based on service CIDRs
  • 205a8d6dc chore: make nethelpers build on all OSes
  • 5b5dd49f6 feat: extract JSON fields from more log messages
  • eb4f11822 docs: create cluster in hetzner cloud
  • 728164e25 docs: fix kexec_load_disabled param name in release notes
  • f6328f09a fix: fix filename typo
  • 01b0f0abb release(v0.14.0-alpha.0): prepare release
  • 8b6206537 fix: skip generating empty .machine.logging
  • 60ad00636 fix: don't drop ability to use ambient capabilities
  • b6b78e7fe test: add cluster discovery integration tests
  • 97d64d160 fix: hcloud network config changes
  • 4c76865d0 feat: multiple logging improvements
  • 1d1e1df64 fix: handle skipped mounts correctly
  • 0a964d921 test: fix openstack unit-test stability
  • 72f62ac27 chore: bump Go and Docker dependencies
  • 9c48ebe8f fix: gcp fetching externalIP
  • 6c297268c test: fix e2e k8s version
  • ae5af9d3f feat: update Kubernetes to 1.23.0-alpha.3
  • 28d3a69e9 feat: openstack config-drive support
  • 2258bc491 test: update GCP e2e script to work with new templates
  • 36b6ace25 feat: update Linux to 5.10.75
  • 38516a549 test: update Talos versions in upgrade tests
  • cff20ec78 fix: change services OOM score
  • 666a2b620 feat: azure platform ipv6 support
  • d32814e30 feat: extract JSON fields from log lines
  • e77d81fff fix: treat literal 'unknown' as a valid machine type
  • c8e404e35 test: update vars for AWS cluster
  • ad23891b1 feat: update CoreDNS version 1.8.6
  • 41299cae9 feat: udev rules support
  • 5237fdc95 feat: send JSON logs over UDP
  • 6d44587a4 feat: coredns service dualstack
  • 12f7888b7 feat: feed control plane endpoints on workers from cluster discovery
  • 431e4fb4b chore: bump Go and Docker dependencies
  • 89f3b9f8d feat: update etcd to 3.5.1
  • e60469a38 feat: initial support for JSON logging
  • 68c420e3c feat: enable cluster discovery by default
  • 3e100aa97 test: workaround EventsWatch test flakiness
  • 9bd4838ac chore: stop using sonobuoy CLI
  • 6ad459519 docs: fix field names for bonding configuration
  • d7a3b7b5b chore: use discovery-client and discovery-api modules
  • d6309eed6 docs: create docs for Talos 0.14
  • c0fda6436 fix: attempt to clean up tasks in containerd runner
  • 8cf442daa chore: bump tools, pkgs, extras
  • 0dad5f4d7 chore: small cleanup
  • e3e2113ad feat: upgrade CoreDNS during upgrade-k8s call
  • d92c98e19 docs: fix discovery service documentation link
  • e44b11c59 feat: update containerd to 1.5.7, bump Go dependencies
  • 24129307a docs: make Talos 0.13 docs latest, update documentation
  • 31b6e39e5 fix: delete expired affiliates from the discovery service
  • 877a2b6fc test: bump CAPI components to v1alpha4
  • 2ba0e0ac4 docs: add KubeSpan documentation
  • 997873b6d fix: use ECDSA-SHA512 when generating certs for Talos < 0.13
  • 7137166d1 fix: allow overriding audit-policy-file in kube-apiserver static pod
  • 8fcd42196 chore: fix integration-qemu-race
  • 91a858b53 fix: sort output of the argument builder
  • 657f7a56b fix: use ECDSA-SHA256 signature algorithm for Kubernetes certs
  • 983d2459e feat: suppress logging NTP sync to the console
  • 022c7335f fix: add interface route if DHCP4 router is not directly routeable
  • 66a1579ea fix: don't enable 'no new privs' on the system level
  • 423861cf9 feat: don't drop capabilities if kexec is disabled
  • facc8c38a docs: fix documentation for cluster discovery
  • ce65ca4e4 chore: build using only amd64 builders
  • e9b0f010d chore: update docker image in the pipeline

Changes since v0.14.0-beta.1

5 commits

  • 675dee0e7 release(v0.14.0): prepare release
  • 79cf214b7 test: retry talosctl time call in the tests
  • b79948f9a feat: show human-readable aliases in talosctl get rd
  • ccf468ea2 feat: update Kubernetes to 1.23.1
  • 5bf3a1519 fix: update DHCP library with the panic fix

Changes from talos-systems/discovery-api

2 commits

Changes from talos-systems/discovery-client

2 commits

Changes from talos-systems/extras

6 commits

Changes from talos-systems/go-blockdevice

2 commits

Changes from talos-systems/go-smbios

1 commit

Changes from talos-systems/net

2 commits

Changes from talos-systems/pkgs

29 commits

Changes from talos-systems/siderolink

6 commits

Changes from talos-systems/tools

10 commits

Dependency Changes

  • github.com/AlekSi/pointer v1.1.0 -> v1.2.0
  • github.com/cenkalti/backoff/v4 v4.1.2 new
  • github.com/containerd/cgroups v1.0.1 -> v1.0.2
  • github.com/containerd/containerd v1.5.5 -> v1.5.8
  • github.com/cosi-project/runtime 5cb7f5002d77 -> 264f8fcd1a4f
  • github.com/docker/docker v20.10.8 -> v20.10.11
  • github.com/evanphx/json-patch v4.11.0 -> v5.6.0
  • github.com/gosuri/uiprogress v0.0.1 new
  • github.com/hashicorp/go-getter v1.5.8 -> v1.5.9
  • github.com/hetznercloud/hcloud-go v1.32.0 -> v1.33.1
  • github.com/insomniacslk/dhcp b95caade3eac -> 5297eed8f489
  • github.com/jsimonetti/rtnetlink 435639c8e6a8 -> fd9a11f42291
  • github.com/jxskiss/base62 4f11678b909b -> v1.0.0
  • github.com/mdlayher/ethtool 2b88debcdd43 -> 288d040e9d60
  • github.com/mdlayher/netlink v1.4.1 -> v1.4.2
  • github.com/packethost/packngo v0.19.1 -> v0.20.0
  • github.com/rivo/tview ee97a7ab3975 -> 2a6de950f73b
  • github.com/talos-systems/discovery-api v0.1.0 new
  • github.com/talos-systems/discovery-client v0.1.0 new
  • github.com/talos-systems/extras v0.6.0 -> v0.7.0-1-gd6b73a7
  • github.com/talos-systems/go-blockdevice v0.2.4 -> v0.2.5
  • github.com/talos-systems/go-smbios v0.1.0 -> v0.1.1
  • github.com/talos-systems/net v0.3.0 -> v0.3.1
  • github.com/talos-systems/pkgs v0.8.0 -> v0.9.0-1-g7a3419a
  • github.com/talos-systems/siderolink v0.1.0 new
  • github.com/talos-systems/tools v0.8.0 -> v0.9.0-1-gb1146f9
  • github.com/vmware-tanzu/sonobuoy v0.53.2 -> v0.55.1
  • github.com/vmware/govmomi v0.26.1 -> v0.27.2
  • github.com/vmware/vmw-guestinfo 687661b8bd8e -> cc1fd90d572c
  • go.etcd.io/etcd/api/v3 v3.5.0 -> v3.5.1
  • go.etcd.io/etcd/client/pkg/v3 v3.5.0 -> v3.5.1
  • go.etcd.io/etcd/client/v3 v3.5.0 -> v3.5.1
  • go.etcd.io/etcd/etcdutl/v3 v3.5.0 -> v3.5.1
  • go.uber.org/atomic v1.9.0 new
  • golang.org/x/net 3ad01bbaa167 -> 491a49abca63
  • golang.org/x/sys 39ccf1dd6fa6 -> 97ca703d548d
  • golang.org/x/term 140adaaadfaf -> 03fcf44c2211
  • golang.org/x/time 1f47c861a9ac -> f0f3c7e86c11
  • golang.zx2c4.com/wireguard/wgctrl 0a2f4901cba6 -> dd7407c86d22
  • google.golang.org/grpc v1.41.0 -> v1.42.0
  • inet.af/netaddr 85fa6c94624e -> c74959edd3b6
  • k8s.io/api v0.22.2 -> v0.23.1
  • k8s.io/apimachinery v0.22.2 -> v0.23.1
  • k8s.io/client-go v0.22.2 -> v0.23.1
  • k8s.io/component-base v0.23.1 new
  • k8s.io/cri-api v0.22.2 -> v0.23.1
  • k8s.io/kubectl v0.22.2 -> v0.23.1
  • k8s.io/kubelet v0.22.2 -> v0.23.1
  • kernel.org/pub/linux/libs/security/libcap/cap v1.2.59 -> v1.2.61
  • sigs.k8s.io/yaml v1.3.0 new

Previous release can be found at v0.13.0

Images

quay.io/coreos/flannel:v0.15.1
ghcr.io/talos-systems/install-cni:v0.7.0-1-gd6b73a7
docker.io/coredns/coredns:1.8.6
gcr.io/etcd-development/etcd:v3.5.1
k8s.gcr.io/kube-apiserver:v1.23.1
k8s.gcr.io/kube-controller-manager:v1.23.1
k8s.gcr.io/kube-scheduler:v1.23.1
k8s.gcr.io/kube-proxy:v1.23.1
ghcr.io/talos-systems/kubelet:v1.23.1
ghcr.io/talos-systems/installer:v0.14.0
k8s.gcr.io/pause:3.2

Don't miss a new talos release

NewReleases is sending notifications on new releases.