Talos 1.2.0-alpha.1 (2022-07-28)
Welcome to the v1.2.0-alpha.1 release of Talos!
This is a pre-release of Talos
Please try out the release binaries and report any issues at
https://github.com/siderolabs/talos/issues.
Generating Talos secrets from PKI directory
It is now possible to generate a secrets bundle from a Kubernetes PKI directory (e.g. /etc/kubernetes/pki
).
You can also specify a bootstrap token to be used in the secrets bundle.
This secrets bundle can then be used to generate a machine config.
This facilitates migrating clusters (e.g. created using kubeadm
) to Talos.
talosctl gen secrets --kubernetes-bootstrap-token znzio1.1ifu15frz7jd59pv --from-kubernetes-pki /etc/kubernetes/pki
talosctl gen config --with-secrets secrets.yaml my-cluster https://172.20.0.1:6443
Kubernetes ControlPlane Components
Talos now run all Kubernetes Control Plane Components with the CRI default Seccomp Profile and other recommendations as described in
KEP-2568.
Kubelet Default Runtime Seccomp Profile
Talos now runs Kubelet with the CRI default Seccomp Profile enabled.
This can be disabled by setting .machine.kubelet.defaultRuntimeSeccompProfileEnabled
to false
.
This is not enabled automatically on upgrades, so upgrading to Talos v1.2 needs this to be explicitly enabled.
Network bridge support
Talos now supports configuring Linux bridges. It can be configured in the machine config like the following:
machine:
network:
interfaces:
- interface: br0
bridge:
stp:
enabled: true
interfaces:
- eth0
- eth1
See documentation for more details.
VLAN support in cmdline arguments
Talos now supports dracut-style vlan
kernel argument to allow
installing Talos Linux in networks where ports are not tagged
with a default VLAN:
vlan=eth1.5:eth1 ip=172.20.0.2::172.20.0.1:255.255.255.0::eth1.5:::::
Packet Capture
Talos now supports capturing packets on a network interface with talosctl pcap
command:
talosctl pcap --interface eth0
Seccomp Profiles
Talos now supports creating custom seccomp profiles on the host machine which in turn can be used by Kubernetes workloads.
It can be configured in the machine config as below:
machine:
seccompProfiles:
- name: audit.json
value:
defaultAction: SCMP_ACT_LOG
- name: deny.json
value: {"defaultAction":"SCMP_ACT_LOG"}
This profile data can be either configured as a YAML definition or as a JSON string.
The profiles are created on the host under /var/lib/seccomp/profiles
and bind mounted at /var/lib/kubelet/seccomp/profiles
so Kubelet can use it.
See documentation for more details.
Stable Default Hostname
Talos now generates the default hostname (when there is no explicitly specified hostname) for the nodes based on the
node id (e.g. talos-2gd-76y
) instead of using the DHCP assigned IP address (e.g. talos-172-20-0-2
).
This ensures that the node hostname is not changed when DHCP assigns a new IP to a node.
Strategic merge machine configuration patching
In addition to JSON (RFC6902) patches Talos now supports strategic merge patching.
For example, machine hostname can be set with the following patch:
machine:
network:
hostname: worker1
Patch format is detected automatically.
Variable substitution for URL query parameter in the talos.config kernel parameter
The kernel parameter talos.config can now substitute system information into placeholders inside its URL query values. This example shows all supported variables:
http://example.com/metadata?h=${hostname}&m=${mac}&s=${serial}&u=${uuid}
Component Updates
- Linux: 5.15.57
Talos is built with Go 1.18.4.
Contributors
- Andrey Smirnov
- Noel Georgi
- Utku Ozdemir
- Dmitriy Matrenichev
- Philipp Sauter
- Tim Jones
- Spencer Smith
- Artem Chernyshev
- Davincible
- AMet
- Alex Wied
- Bermi Ferrer
- Christoph Schmatzler
- Dennis Marttinen
- Eirik Askheim
- Florian Klink
- Han Cen
- Larry Rosenman
- Markus Reiter
- Matthew Richardson
- Nico Berlee
- Rio Kierkels
- RyanSquared
- Serge Logvinov
- Seán C McCord
- hobyte
- nett_hier
- zebernst
Changes
129 commits
- 1db097f50 release(v1.2.0-alpha.1): prepare release
- 5ac4947b6 feat: enable default seccomp profile for kubelet
- e5994ff7a fix: skip
ResetDuringBoot
test if theCluster
config is unknown - 8028e1074 fix: wait for boot done when rebooting a node in the integration tests
- ae1bec59e feat: allow running only one sequence at a time
- ec05aee04 fix: correctly unwrap errors when streaming
- 7c7f2d8c3 feat: refactor disk size matcher to be compatible with DeepEqual
- 3addea83b feat: introduce support for Talos API access from Kubernetes
- 34d3a4164 docs: add missing <> to relref
- c4d2d20c4 fix: enable stable hostnames for worker configs as well
- 0326bac1f chore: bump kernel to 5.15.57
- 86820c33f chore: bump dependencies
- 6e7dfeeb3 fix: data race in packet capture (part 2)
- c11e1dae7 docs: fix spelling and grammar errors
- 30f7851d2 chore: bump golangci-lint from 1.45.2 to 1.47.2
- 2cce9112d chore: bump goimports from 0.1.10 to 0.1.11
- 18756c7ff fix: folder permissions of overlay mounted folders
- 47c35dc47 feat: set stable default hostname based on machine-id
- 1ed3df295 chore: support glibc apps extension spec
- a2aea9726 fix: write etcd PKI files in a controller
- bb4abc096 fix: regenerate kubelet certs when hostname changes
- d650afb6c chore: fix typo in
powercycle
- 644e803ad fix: use masks and different firewall mark for KubeSpan
- 80444a43d fix: remove data race in pcap capture
- 04a45dff2 docs: remove katacoda links
- 065b59276 feat: implement packet capture API
- 7c006cabc feat: update Kubernetes to 1.24.3
- 551290195 chore: bump dependencies
- 1677bcc4b fix: skip bond itself when matching interface (Equinix Metal)
- f1c2b5c55 feat: implement strategic merge patching for API server admission config
- be98cb82b feat: follow KEP-2568 non-root enhancements
- 87ea1d961 fix: update kubelet kubeconfig when cluster control plane endpoint changes
- a75fe7600 feat: gen secrets from kubernetes pki dir
- a1d7b535a docs: add kubeadm migration guide
- 9e0c56581 docs: guide for setting up synology-csi driver
- f0b8eea5e refactor: remove bootstrap sequence
- 89c7da899 docs: add documentation for vagrant & libvirt
- 014b85fdc docs: improve talos kubernetes upgrade note
- 88bb017ed docs: remove old docs from site
- c92c90655 feat: build talosctl for FreeBSD
- 616da3069 docs: update last release for 1.1
- 091e6ef0e feat: resubstitute talos.config url variables on retry
- ec74ab38a feat: update Go to 1.18.4, Linux to 5.15.54
- 641f6a1e4 feat: expose strategic merge config patches
- 6e3d2d647 docs: fix disk encryption params
- c43d6a31d docs: fix typos
- 551887528 chore: bump dependencies
- 626ef05e6 fix: correct SANs for etcd certs
- 83ce92c5f docs: fix theila docs
- 8a038d40e fix: stabilize etcd join and promote sequences
- 136122556 fix: use correct etcd cert path
- c170ec0b0 chore: bump kernel to 5.15.53
- d924901b7 feat: add cli subcommand to generate secrets
- 34aabedd8 feat: more circular pkg from internal to pkg
- 4f044e466 feat: implement strategic merge machine config patching
- c2a512608 fix: avoid double append of
talos.platform
kernel argument - 27dfe7c03 fix: perform accurate conflict resolution on overal (kubespan)
- e437445b4 chore: bump kernel to 5.15.52
- d27a6a4ac feat: add vlan support to cmdline
- fdca5d8a9 chore: bump dependencies
- ae3840dbc refactor: move kubeconfig package under public api
- 184e113f3 chore: disable systeminfo controller in container
- 86a0a7bdf refactor: use pointer types more in machine config structs
- 3a1eb10e6 docs: update the Proxmox
kvm64
note - 30e220fcd docs: kernel cmdline params updated on upgrades
- 915de9cf9 docs: fix bridge documentation
- 52cd12951 test: bump Talos versions in upgrade tests
- 022581d80 release(v1.2.0-alpha.0): prepare release
- 643e81cfe feat: add SenseLabs to ADOPTERS.md
- bdfee2b3b chore: bump kernel to 5.15.51
- 36c44a651 fix: provide CA certificates in
/etc/ssl/certs/ca-certificates.crt
- 7ebd9bcce docs: fix pod security talos resource name
- 57b625e0a refactor: avoid recreating grpc clients in service health checks
- a68a00f1b docs: recommend setting "host" Processor Type on proxmox
- 923600a73 chore: bump kernel to 5.15.50
- 758a9bf59 docs: add theila ui
- b81016e62 chore: update blockdevice library to v0.3.3
- 284a2f959 fix: filter static pods correctly and optimize fetching
- 61abf3111 docs: change command for cluster create to keep $HOME with sudo
- 6ae1e9bf2 chore: bump dependencies
- 2deff6b6e feat: add support for variable substitution in talos.config kernel parameter
- 103c94225 fix: update crypto library with support for RSA-SHA*
- 448de7194 docs: add UpCloud installation guide
- 07014e0a8 fix: generate correct bootstrap manifests when only IPv6 CIDR is used
- 465edbb47 fix: look for qemu-kvm binary
- 63caa281a fix: create native image format for DigitalOcean
- f15ce549e fix: siderlink api assume port 443 with https schema
- 797596229 feat: add support for configuring network bridges
- 2b23fabcc docs: use SVG image for K8s conformance
- d4606c33e chore: bump kernel to 5.15.49
- cfb640222 docs: update docs for release 1.1
- b816d0b60 docs: fix the vendor information for Kubernetes conformance tests
- a167a5402 test: fix CLI nodes discovery without provisioner data
- 916a30682 docs: add twitter meta info
- 80090a3ed test: fix health endpoint cli test when discovery is disabled
- 3c263bb44 chore: bump dependencies
- e8113527f chore: bump kubernetes to v1.24.2
- 068f1b6d0 feat: add ctest package and base for test suite
- 2aad3a1e4 chore: bump kernel to 5.15.48
- a31a858e0 docs: snippets for logging api server audit logs
- 89aaaef9f chore: bump kernel to 5.15.47
- 6759fcd4a feat: use discovery service on cluster health checks
- f54d90787 fix: enable orderly poweroff in hyper-v on Azure
- 35475ce45 docs: openebs jiva example with iscsi-tools extension
- 8d2be5e31 feat: extend node definition used in health checks
- 7a11b4def fix: make
talosctl bootstrap
accept only single node - 217fba288 test: fix csi tests
- 90bf34fed docs: fork docs for Talos 1.2
- a0dd010a8 docs: add link to discovery service in kubespan
- c0371410e fix: support SideroLink "secure" gRPC connection
- b03709620 feat: build Talos images with system extensions included
- 43def7490 chore: bump kernel and runc
- 4dbbf4ac5 chore: add generic methods and use them part #2
- 7114292b6 docs: fix latest release version in docs
- da2985fe1 fix: respect local API server port
- e03266667 fix: correctly validate reboot mode in CLI
- 70fc42409 chore: add generic methods and use them
- 3ae8bdd92 chore: run
xfs_repair
on xfs filesystem returingEUCLEAN
- 0c91c89f4 chore: revert day-two tests for csi tests
- f71b58312 feat: disallow anonymous requests by default (kube-apiserver)
- c19dd1b89 feat: add 'etcd members should be control plane nodes' health check
- f2997c0f2 chore: bump dependencies
- f3efec4b5 feat: update containerd 1.6.6, Linux 5.15.45, Flannel 0.18.1
- 27f8e50ce fix: add ovmf image path for rhel
- 87e7de30c docs: fix required ports
- c126f2ee8 chore: bump golang to 1.18.3
- c1aed6240 fix: wait for
/var
to be mounted in kubelet service controller - d7a64f5d2 fix: improve vip operator shutdown sequence
- 7b9dfcb85 chore: add 'make go-mod-outdated'
Changes since v1.2.0-alpha.0
67 commits
- 1db097f50 release(v1.2.0-alpha.1): prepare release
- 5ac4947b6 feat: enable default seccomp profile for kubelet
- e5994ff7a fix: skip
ResetDuringBoot
test if theCluster
config is unknown - 8028e1074 fix: wait for boot done when rebooting a node in the integration tests
- ae1bec59e feat: allow running only one sequence at a time
- ec05aee04 fix: correctly unwrap errors when streaming
- 7c7f2d8c3 feat: refactor disk size matcher to be compatible with DeepEqual
- 3addea83b feat: introduce support for Talos API access from Kubernetes
- 34d3a4164 docs: add missing <> to relref
- c4d2d20c4 fix: enable stable hostnames for worker configs as well
- 0326bac1f chore: bump kernel to 5.15.57
- 86820c33f chore: bump dependencies
- 6e7dfeeb3 fix: data race in packet capture (part 2)
- c11e1dae7 docs: fix spelling and grammar errors
- 30f7851d2 chore: bump golangci-lint from 1.45.2 to 1.47.2
- 2cce9112d chore: bump goimports from 0.1.10 to 0.1.11
- 18756c7ff fix: folder permissions of overlay mounted folders
- 47c35dc47 feat: set stable default hostname based on machine-id
- 1ed3df295 chore: support glibc apps extension spec
- a2aea9726 fix: write etcd PKI files in a controller
- bb4abc096 fix: regenerate kubelet certs when hostname changes
- d650afb6c chore: fix typo in
powercycle
- 644e803ad fix: use masks and different firewall mark for KubeSpan
- 80444a43d fix: remove data race in pcap capture
- 04a45dff2 docs: remove katacoda links
- 065b59276 feat: implement packet capture API
- 7c006cabc feat: update Kubernetes to 1.24.3
- 551290195 chore: bump dependencies
- 1677bcc4b fix: skip bond itself when matching interface (Equinix Metal)
- f1c2b5c55 feat: implement strategic merge patching for API server admission config
- be98cb82b feat: follow KEP-2568 non-root enhancements
- 87ea1d961 fix: update kubelet kubeconfig when cluster control plane endpoint changes
- a75fe7600 feat: gen secrets from kubernetes pki dir
- a1d7b535a docs: add kubeadm migration guide
- 9e0c56581 docs: guide for setting up synology-csi driver
- f0b8eea5e refactor: remove bootstrap sequence
- 89c7da899 docs: add documentation for vagrant & libvirt
- 014b85fdc docs: improve talos kubernetes upgrade note
- 88bb017ed docs: remove old docs from site
- c92c90655 feat: build talosctl for FreeBSD
- 616da3069 docs: update last release for 1.1
- 091e6ef0e feat: resubstitute talos.config url variables on retry
- ec74ab38a feat: update Go to 1.18.4, Linux to 5.15.54
- 641f6a1e4 feat: expose strategic merge config patches
- 6e3d2d647 docs: fix disk encryption params
- c43d6a31d docs: fix typos
- 551887528 chore: bump dependencies
- 626ef05e6 fix: correct SANs for etcd certs
- 83ce92c5f docs: fix theila docs
- 8a038d40e fix: stabilize etcd join and promote sequences
- 136122556 fix: use correct etcd cert path
- c170ec0b0 chore: bump kernel to 5.15.53
- d924901b7 feat: add cli subcommand to generate secrets
- 34aabedd8 feat: more circular pkg from internal to pkg
- 4f044e466 feat: implement strategic merge machine config patching
- c2a512608 fix: avoid double append of
talos.platform
kernel argument - 27dfe7c03 fix: perform accurate conflict resolution on overal (kubespan)
- e437445b4 chore: bump kernel to 5.15.52
- d27a6a4ac feat: add vlan support to cmdline
- fdca5d8a9 chore: bump dependencies
- ae3840dbc refactor: move kubeconfig package under public api
- 184e113f3 chore: disable systeminfo controller in container
- 86a0a7bdf refactor: use pointer types more in machine config structs
- 3a1eb10e6 docs: update the Proxmox
kvm64
note - 30e220fcd docs: kernel cmdline params updated on upgrades
- 915de9cf9 docs: fix bridge documentation
- 52cd12951 test: bump Talos versions in upgrade tests
Changes from siderolabs/extras
2 commits
- siderolabs/extras@17a319f chore: update Go to 1.18.4
- siderolabs/extras@892407f chore: bump golang to 1.18.3
Changes from siderolabs/pkgs
24 commits
- siderolabs/pkgs@dcc0311 chore: bump kernel to 5.15.57
- siderolabs/pkgs@b943a9d chore: update Go to 1.18.4
- siderolabs/pkgs@a44e324 chore: bump kernel to 5.15.54
- siderolabs/pkgs@247f567 chore: bump kernel to 5.15.53
- siderolabs/pkgs@4fe9867 chore: bump openssl to 1.1.1q
- siderolabs/pkgs@9ee662c chore: bump kernel to 5.15.52
- siderolabs/pkgs@4412db8 chore: bump kernel to 5.15.51
- siderolabs/pkgs@6fedbdc chore: bump tools
- siderolabs/pkgs@f1f44e6 chore: bump kernel to 5.15.50
- siderolabs/pkgs@388af5e chore: bump openssl to 1.1.1p
- siderolabs/pkgs@ed75c50 chore: enable
RANDOM_TRUST_BOOTLOADER
by default - siderolabs/pkgs@7c243f6 chore: bump kernel to 5.15.49
- siderolabs/pkgs@6e1269e chore: bump kernel to 5.15.48
- siderolabs/pkgs@5d671a3 chore: bump nvidia drivers to 515.48.07
- siderolabs/pkgs@b35d835 chore: bump kernel to 5.15.47
- siderolabs/pkgs@6604d6b feat: hyperv arm64
- siderolabs/pkgs@c474058 chore: bump nvidia driver to 515.43.04
- siderolabs/pkgs@5bc7e34 feat: update runc to 1.1.3, libseccomp to 2.5.4
- siderolabs/pkgs@c02cd7a chore: bump kernel to 5.15.46
- siderolabs/pkgs@b9c72a5 feat: update containerd to 1.6.6
- siderolabs/pkgs@f7786a3 chore: bump kernel to 5.15.45
- siderolabs/pkgs@b1c207d feat: update containerd to 1.6.5
- siderolabs/pkgs@4d47830 chore: bump golang to 1.18.3
- siderolabs/pkgs@dc21e30 chore: bump kernel to 5.15.44
Changes from siderolabs/tools
5 commits
- siderolabs/tools@0d669dd feat: update Go 1.18.4
- siderolabs/tools@26b32d5 chore: bump openssl to 1.1.1q
- siderolabs/tools@d8015e7 chore: bump curl to 7.84.0
- siderolabs/tools@3ec03ed chore: bump openssl to 1.1.1p
- siderolabs/tools@3df9e13 chore: bump golang to 1.18.3
Changes from talos-systems/crypto
Changes from talos-systems/go-blockdevice
2 commits
- siderolabs/go-blockdevice@74ea471 feat: add freebsd stubs
- siderolabs/go-blockdevice@9fa801c feat: add ReadOnly attribute to Disk
Changes from talos-systems/grpc-proxy
Dependency Changes
- cloud.google.com/go/compute v1.6.1 -> v1.7.0
- github.com/BurntSushi/toml v1.1.0 -> v1.2.0
- github.com/aws/aws-sdk-go v1.44.24 -> v1.44.61
- github.com/containerd/containerd v1.6.4 -> v1.6.6
- github.com/containernetworking/cni v1.1.0 -> v1.1.1
- github.com/cosi-project/runtime 95d06feaf8b5 -> 22c6aa1ca7ec
- github.com/docker/docker v20.10.16 -> v20.10.17
- github.com/emicklei/dot v0.16.0 -> v1.0.0
- github.com/google/gopacket v1.1.19 new
- github.com/google/nftables a9775fb167d2 -> a346d51f53b3
- github.com/hashicorp/go-getter v1.6.1 -> v1.6.2
- github.com/hashicorp/go-version v1.5.0 -> v1.6.0
- github.com/hetznercloud/hcloud-go v1.33.2 -> v1.35.1
- github.com/martinlindhe/base36 v1.1.1 new
- github.com/packethost/packngo v0.24.0 -> v0.25.0
- github.com/rivo/tview 9994674d60a8 -> 73bf2902b59a
- github.com/siderolabs/extras v1.1.0-1-g5800284 -> v1.2.0-alpha.0-1-g17a319f
- github.com/siderolabs/pkgs v1.1.0-8-gfa9a488 -> v1.2.0-alpha.0-23-gdcc0311
- github.com/siderolabs/tools v1.1.0-1-g134974c -> v1.2.0-alpha.0-4-g0d669dd
- github.com/spf13/cobra v1.4.0 -> v1.5.0
- github.com/stretchr/testify v1.7.1 -> v1.8.0
- github.com/talos-systems/crypto v0.3.5 -> e9df1b8ca74c
- github.com/talos-systems/go-blockdevice v0.3.2 -> v0.3.4
- github.com/talos-systems/grpc-proxy v0.3.0 -> v0.3.1
- github.com/vishvananda/netlink v1.2.0-beta -> v1.2.1-beta.2
- github.com/vmware-tanzu/sonobuoy v0.56.6 -> v0.56.8
- github.com/vmware/govmomi v0.28.0 -> v0.29.0
- golang.org/x/net 5463443f8c37 -> a158d28d115b
- golang.org/x/sync 0976fa681c29 -> 886fb9371eb4
- golang.org/x/sys bc2c85ada10a -> 8c9f86f7a55f
- golang.org/x/term 065cf7ba2467 -> a9ba230a4035
- golang.org/x/time 583f2d630306 -> e5dcc9cfc0b9
- google.golang.org/grpc v1.46.2 -> v1.48.0
- gopkg.in/yaml.v3 496545a6307b -> v3.0.1
- inet.af/netaddr c74959edd3b6 -> 097006376321
- k8s.io/api v0.24.2 -> v0.24.3
- k8s.io/apiserver v0.24.2 -> v0.24.3
- k8s.io/client-go v0.24.2 -> v0.24.3
- k8s.io/component-base v0.24.2 -> v0.24.3
- k8s.io/kubectl v0.24.2 -> v0.24.3
- k8s.io/kubelet v0.24.2 -> v0.24.3
- kernel.org/pub/linux/libs/security/libcap/cap v1.2.64 -> v1.2.65
Previous release can be found at v1.1.0
Images
ghcr.io/siderolabs/flannel:v0.18.1
ghcr.io/siderolabs/install-cni:v1.2.0-alpha.0-1-g17a319f
docker.io/coredns/coredns:1.9.3
gcr.io/etcd-development/etcd:v3.5.4
k8s.gcr.io/kube-apiserver:v1.24.3
k8s.gcr.io/kube-controller-manager:v1.24.3
k8s.gcr.io/kube-scheduler:v1.24.3
k8s.gcr.io/kube-proxy:v1.24.3
ghcr.io/siderolabs/kubelet:v1.24.3
ghcr.io/siderolabs/installer:v1.2.0-alpha.1
k8s.gcr.io/pause:3.6