v0.9.0
Talos 0.9.0 (2021-03-22)
Welcome to the v0.9.0 release of Talos!
Please try out the release binaries and report any issues at
https://github.com/talos-systems/talos/issues.
New Features
- Control Plane as Static Pods
- ECDSA Keys for Kubernetes PKI
- Disk Encryption
- Virtual Shared IP for Control Plane Endpoint
More in the docs.
Upgrading
Please read the upgrade notes before upgrading from Talos 0.8.
Contributors
- Andrey Smirnov
- Artem Chernyshev
- Alexey Palazhchenko
- Andrew Rynhard
- Spencer Smith
- Seán C McCord
- Andrew Rynhard
- Brandon McNama
- Guilhem Lettron
- Willem Monsuwe
- vlad doster
Changes
188 commits
80b7b2219
release(v0.9.0): prepare releasec6f7c7f36
fix: commandetcd remove-member
shouldn't remove etcd data directory84d597319
chore: remove oldosctl
reference26c924619
fix: upgrade-k8s bug with empty config values and provision script6ffe084f9
feat: update Kubernetes to 1.20.502839b10d
release(v0.9.0-beta.1): prepare release9d3605361
fix: talosctl health should not check kube-proxy when it is disabled3844103d1
test: update aws cloud provider version5bf28b8c8
fix: properly format spec comments in the resources6d7b0efc6
fix: don't touch any partitions on upgrade with --preserveaaa19e1ed
chore: update Linux to 5.10.2396477d249
chore: fix provision tests after changes to build-container67e0317b9
fix: update output ofconvert-k8s
command51f59f435
fix: move containerd CRI config files under/var/
96521a186
chore: update Go to 1.15.9dbcb643e8
release(v0.9.0-beta.0): prepare release3863be9ce
chore: bump release scope to v0.9d3798cd7a
docs: document controller runtime, resources and talosctl getc2e353d6a
fix: do not print out help string if the parameters are correct56c95eace
chore: bump dependencies via dependabot49853fc2e
fix: mkdir source of the extra mounts for the kubelete8e91d643
fix: properly propagate nameservers to provisioned docker clustersf4ca6e9a6
feat: update containerd to version 1.4.43084a3f35
chore: update tools/pkgs/extras tags81acadf34
fix: ignore connection refused errors when updating/converting cpdb3785b93
fix: align partition start to the physical sector sizedf52c1358
chore: fix //nolint directivesf3a32fff9
chore: expire objects in CI S3 bucket7e8f13652
chore: fix upgrade tests by bumping 0.9 to alpha.5044fb7708
fix: chmod etcd PKI path to fix virtual IP for upgrades with persistenceec72ae892
release(v0.9.0-alpha.5): prepare release4e47f6766
feat: bypass lock if ACPI reboot/shutdown issued60b7f79fd
feat: add--on-reboot
flag to talosctl edit/patch machineConfig49a23bbde
chore: bump Go module dependencies40a2e4d4f
feat: support JSON output intalosctl get
, event types638af35db
chore: properly propagate context object in the controller60aa011c7
feat: rename namespaces, resources, types etc3a2caca78
release(v0.9.0-alpha.4): prepare release8ffb55943
fix: ignore 'ENOENT' (no such file directory) on mounta241e9ee4
feat: update linux kernel to 5.10.19561f8aa15
fix: move etcd tocri
containerd runner1d8ed9b5c
chore: update provision/upgrade tests to 0.9.0-alpha.302c0c25ba
docs: bump v0.8 release version in the SBCs guides9333e2a60
docs: add disk encryption guidea12a5dd25
release(v0.9.0-alpha.3): prepare release31e56e63d
fix: update in-cluster kubeconfig validity to match other certsc2f7a4b6f
fix: add ApplyDynamicConfig call in the apply-config --immediate mode376fdcf6c
feat: implement etcd remove-member cli commandc8ae00937
chore: bump dependencies via dependabotd173fd4c0
feat: update etcd to 3.4.155ae315f49
fix: set hdmi_safe=1 on Raspberry Pi for maximum HDMI compatibility61cb2fb25
feat: talosctl: allow v-prefixed k8s versionsc7ee23908
fix: show stopped/exited containers via CRI inspectord7cdc8cc1
feat: implement simple layer 2 shared IP for CP63160277d
fix: make ApplyDynamicConfig idempotent041620c85
feat: implement talosctl edit and patch config commandsc29cfaa09
chore: build both Darwin and Linux versions of talosctl953ce643a
feat: bump etcd client library to 3.5.0-alpha.024b4c0bcb
refactor: add context to the networkd9464c4cbc
refactor: split WithNetworkConfig into sub-options779ac74a0
fix: improve the drain functionf24c81537
fix: correctly set service state in the resource4e19b597a
test: add integration test with Canal CNI and reset API589d01892
fix: update the layout of the Disks API to match proxying requirements7587af958
docs: update AMI images for 0.8.47108bb3f5
test: upgrade master to master tests09369fedb
fix: stop and clean up installer container correctly85d1669fb
chore: bump dependencies via dependabot84ad6cbb1
chore: switch CI to stop embedding local registry into the builds1a491ee85
fix: sanitize volume name better in static pod extra volumes5aa75e020
release(v0.9.0-alpha.2): prepare release3b672d342
feat: u-boot 2021.01, ca-certificates update, Linux file ACLse355d4fae
fix: redirect warnings in manifest apply k8s clientc37f2c6d3
docs: add link to GitHub Discussions as a support forume2f1fbcfd
feat: support control plane upgrades with Talos managed control plane8789849c7
feat: add support for extra volume mounts for control plane pods06b8c0948
test: enable disk encryption key rotation test41430e72d
fix: handle case when kubelet serving certificates are issued7a6e0cd3e
fix: correctly escape extra args in kube-proxy manifest41b9f1345
feat: add a warning to boot log if running self-hosted control plane2b76c4890
feat: add an option to disable kube-proxy manifestd2d5c72bb
fix: skip empty manifest YAML sub-documentse9fc54f6e
feat: update Kubernetes to 1.20.3b91439815
refactor: split kubernetes/etcd resource generation into subresourcesc2d109637
chore: add default cron pipeline to the list of pipelinesce6bfbdbb
chore: run default pipeline as part of thecron
pipeline32d258852
test: update integration tests to use wrapped client for etcd APIs54d6a4521
feat: add state encryption support8e35560ba
release(v0.9.0-alpha.1): prepare release7751920db
feat: add a tool and package to convert self-hosted CP to static pods3a78bfcec
test: trigger e2e on thrice daily58ff2c980
feat: implement ephemeral partition encryptione5bd35ae3
feat: add resource watch API + CLI6207fa517
test: update aws templatescc83b8380
feat: rename apply-config --no-reboot to --on-reboot254e0e91e
fix: correctly unwrap responses for etcd commands292bc3968
chore(ci): fix schedules in Drone pipelines02b3719df
feat: skip filesystem for state and ephemeral partitions in the installeredbaa0bc7
chore: update artifacts bucket name in Dronef1d1f72b5
chore(ci): update gcp templates162d8b6be
fix: drop cri dependency on etcdb315a7e1f
chore: rework Drone pipelines9205870ee
fix: move versions to annotations in control plane static podsecd0921d7
feat: stop all pods before unmounting ephemeral partitionaa9bef278
feat: bump Go to 1.15.8f96548e16
refactor: extract go-cmd into a separate library8d7a36cc0
fix: find master node IPs correctly in health checks6791036cf
fix: add 3 seconds grub boot timeoutffe34ec10
fix: don't use filename from URL when downloading manifest1111edfc7
fix: pass attributes when adding routesd99a016af
fix: correct response structure for GenerateConfig APIdf0099036
fix: correctly extract wrapped error messages1a32d55e4
fix: prevent crash in machined on apid service stopdaea9d381
feat: support version contract for Talos config generationf9896777f
feat: update Linux to 5.10.141908ba79d
docs: update AMI list for 0.8.27f3dca8e4
test: add support for IPv6 in talosctl cluster create3aaa888f9
docs: fix typosedf577722
feat: add an option to force upgrade without checks85ae9f75e
fix: wait for time sync before generating Kubernetes certificatesb526c2cc3
fix: set proper hostname on docker nodesa07cfbd5a
fix: mount kubelet secrets from system instead of ephemeral4734fe7dd
feat: upgrade CoreDNS to 1.8.0d29a56b0c
chore: update dependencies via dependabot33de89ef9
fix: allow loading of empty config files757cc204e
fix: prefer configured nameservers, fix DHCP6 in container6cf98a732
feat: implement IPv6 DHCP client in networkd5855b8d53
fix: refresh control plane endpoints on worker apids on schedule47c260e36
fix: update DHCP client to use Request-Ack sequence after an Offer42cadf5c5
release(v0.9.0-alpha.0): prepare release2277ce8ab
feat: move to ECDSA keys for all Kubernetes/etcd certs and keys9947ec84d
fix: use hugetlbfs instead of none389349c02
fix: use grpc load-balancing when connecting to trustd6eafca037
feat: update kernelb441915c0
feat: mount hugetlbfse4e6da388
feat: allow fqdn to be used when registering k8s node87ccf0eb2
test: clear connection refused errors after resetc36e4a935
feat: copy cryptsetup executable from pkgs8974b529a
chore: bump dependencies (via dependabot)512c79e8d
fix: lower memory usage a bit by disabling memory profiling1cded4d33
chore: fix import path for fsnotify698fdd9d6
chore: add dependabot config064d33229
fix: don't probe disks in container mode1051d2ab6
fix: prefix rendered Talos-owned static pod manifests7be3a8609
fix: bump timeout for worker apid waiting for kubelet client config76a679443
fix: kill all processes and umount all disk on reboot/shutdown18db20dbc
fix: open blockdevices with exclusive flock for partitioninge0a0f5880
feat: use multi-arch images for k8s and Flannel CNIa83af0373
refactor: update go-blockdevice and restructure disk interaction code0aaf8fa96
feat: replace bootkube with Talos-managed control planea2b6939c2
docs: update components.md11863dd74
feat: implement resource API in Talose9aa49477
feat: update Linux to 5.10.7, musl-libc to 1.2.278eecc057
chore: enable virtio-balloon and monitor in QEMU provisionerd71ac4c4f
feat: update Kubernetes to 1.20.2d515613bb
fix: list command unlimited recursion default behavior9883d0af1
feat: support Wireguard networking00d345fd3
docs: add v0.9 docsaf5c34b34
fix: pick first interface valid hostname (vs. last one)275ca76c5
chore: update protobuf, grpc-go, prototoold19486afa
fix: allow 'console' argument in kernel args to be always overridden47fb5720c
test: skip etcd tests on non-HA clusters529c03587
docs: add modes to validate commandd455f917f
docs: document omitting DiskPartition size5325a66e3
fix: bring up bonded interfaces correctly on packeta8dd2ff30
fix: checkpoint controller-manager and schedulerf9ff4848e
feat: bump pkgs for kernel with CONFIG_IPV6_MULTIPLE_TABLESf2c029a07
chore: update upgrade test version used7b6c4bcb1
refactor: define default kernel flags in machinery instead of procfsf3465b8e3
feat: support type filter in list API and CLI5590fe19e
docs: update references to 0.8.0, add 0.8.0 AWS AMIs11229a018
docs: fix latest docsff0749c4a
docs: set latest docs to v0.86a0e652f0
fix: correctly transport gRPC errors from apid47fb7d26e
fix: use SetAll instead of AppendAll when building kernel argsb4ddfbfe9
fix: add more dependencies for bootstrap services73c81c501
fix: pass disk image flags to e2e-qemu cluster create command5e3b8ee09
fix: ignore pods spun up from checkpoints in health checksa83e8758d
feat: add commands to manage/query etcd clustere75bb27cf
fix: leave etcd for staged upgradesf1964aab5
fix: ignore errors on stopping/removing pod sandboxes6540e9bf7
feat: support disk image in talosctl cluster createb1d481430
feat: update Kubernetes to 1.20.14f74b11db
docs: provide AMIs for 0.8.0-beta.014b43068d
docs: fix SBC docs to point to beta.0 instead of beta.1941556cff
fix: use the correct console on Banana Pi M64e791e7dca
fix: don't run LabelNodeAsMaster in two sequencesa4f864d46
docs: update Talos release for SBCs
Changes since v0.9.0-beta.1
4 commits
Changes from talos-systems/crypto
5 commits
39584f1
feat: support for key/certificate types RSA, Ed25519, ECDSAcf75519
fix: function NewKeyPair should create certificate with proper subject751c95a
feat: add 'PEMEncodedKey' which allows to transport keys in YAML562c3b6
feat: add support for public RSA key in RSAKeybda0e9c
feat: enable more conversions between encoded and raw versions
Changes from talos-systems/extras
5 commits
Changes from talos-systems/go-blockdevice
6 commits
bb3ad73
fix: align partition start to physical sector size8f976c2
feat: replace exec.Command with go-cmd module1cf7f25
fix: properly handle no child processes error from cmd.Wait04a9851
feat: implement luks encryption providerb0375e4
feat: add an option to open block device with exclusive flock5a1c7f7
refactor: add devname into gpt.Partition, refactor probe package
Changes from talos-systems/go-cmd
4 commits
Changes from talos-systems/go-procfs
2 commits
Changes from talos-systems/go-retry
Changes from talos-systems/go-smbios
Changes from talos-systems/net
3 commits
Changes from talos-systems/os-runtime
13 commits
7b3d144
feat: use go-yaml fork and serialize spec as RawYAML objects84c3c87
chore: provide fmt.Stringer for EventType8b3f192
feat: update naming conventions for resources and types28dd9aa
feat: add an option to bootstrap WatchKind with initial list of resources734f1e1
feat: add support for exporting dependency grapheb6e3df
feat: sort resources returned from the List() APIb8955a5
fix: attach stack trace to panic error messageb64f477
feat: restart failing controllers automatically with exp backoff98acf0d
fix: preserve original YAML formatting in resource.Any53fb919
feat: controller runtime implementationf450ab7
feat: implement namespaces, clean up context use81bf414
feat: initial version of the runtime based on the state657fda9
Initial commit
Changes from talos-systems/pkgs
23 commits
d471b60
feat: update kernel to 5.10.238e2a376
feat: bump tools for Go 1.15.9af19871
feat: update containerd to 1.4.4a053811
chore: bump tools to the tag 0.4.004e6d12
feat: update kernel to 5.10.19bf4b778
feat: update u-boot to 2021.01c02be5f
feat: update ca-certificates to 2021-01-19be6d186
feat: enable POSIX file ACLs on XFS6748819
feat: update Linux to 5.10.17, disable init_on_free=1 by defaultc623457
feat: bump raspberrypi-firmwarea0bb6ab
feat: update Go to 1.15.80368166
feat: update Linux to 5.10.142a04697
chore: add conform configurationf9d9690
feat: build CNI plugins, bump version to current master72c4450
chore: bump tools for Go 1.15.7 update4ce1f2c
feat: add cryptsetup dependencies to all targets3c35918
feat: enable NVME-over-TCP1380273
feat: enable hyperv_utils in Linux kernel0386ef5
feat: update libmusl to 1.2.2d02d119
feat: update Linux kernel to 5.10.7db10362
feat: enable more VIRTIO options8e68598
feat: enable CONFIG_WIREGUARD kernel option2409ba7
feat: enable CONFIG_IPV6_MULTIPLE_TABLES option
Changes from talos-systems/tools
11 commits
3b25a7e
feat: bump Go to 1.15.9017d570
chore: bump tools to 0.2.04b418f3
feat: upgrade Python 3.9.2, enable pip0026740
feat: update Go to version 1.15.8ca12352
chore: make it easier to update deps.pnge54841a
feat: bump Go to 1.15.75fa9459
feat: bump rhash to 1.4.124a6dac
feat: bump toolchain for libmusl CVE-2020-28928 fix0fe682e
feat: switch to older protoc-gen-go with gRPC2fd95a7
feat: add protoc-gen-go-grpc4689294
feat: upgrade proto libraries
Dependency Changes
- github.com/AlekSi/pointer v1.1.0 new
- github.com/containerd/containerd v1.4.3 -> v1.4.4
- github.com/containernetworking/cni v0.8.0 -> v0.8.1
- github.com/containernetworking/plugins v0.8.7 -> v0.9.1
- github.com/coreos/go-iptables v0.4.5 -> v0.5.0
- github.com/docker/docker v1.13.1 -> v20.10.4
- github.com/elazarl/goproxy a92cc753f88e new
- github.com/elazarl/goproxy/ext a92cc753f88e new
- github.com/emicklei/dot v0.15.0 new
- github.com/emicklei/go-restful v2.15.0 new
- github.com/evanphx/json-patch v4.9.0 new
- github.com/fsnotify/fsnotify v1.4.9 new
- github.com/gdamore/tcell/v2 acf90d56d591 -> v2.2.0
- github.com/google/go-cmp v0.5.4 new
- github.com/google/uuid v1.1.2 -> v1.2.0
- github.com/hashicorp/go-getter v1.5.1 -> v1.5.2
- github.com/insomniacslk/dhcp 4de412bc85d8 -> cc9239ac6294
- github.com/jsimonetti/rtnetlink 8bebea019a6c -> 1b79e63a70a0
- github.com/mdlayher/netlink v1.1.1 -> v1.4.0
- github.com/morikuni/aec v1.0.0 new
- github.com/plunder-app/kube-vip v0.3.2 new
- github.com/prometheus/procfs v0.2.0 -> v0.6.0
- github.com/rivo/tview f007e9ad3893 -> 8a8f78a6dd01
- github.com/spf13/cobra v1.1.1 -> v1.1.3
- github.com/stretchr/testify v1.6.1 -> v1.7.0
- github.com/talos-systems/crypto e0dd56ac4745 -> 39584f1b6e54
- github.com/talos-systems/extras v0.1.0-6-gdc32cc8 -> v0.2.0-1-g0db3328
- github.com/talos-systems/go-blockdevice f2728a581972 -> bb3ad73f6983
- github.com/talos-systems/go-cmd 68eb0067e0f0 new
- github.com/talos-systems/go-procfs a82654edcec1 -> 8cbc42d3dc24
- github.com/talos-systems/go-retry 8c63d290a688 -> b9dc1a990133
- github.com/talos-systems/go-smbios 80196199691e -> fb425d4727e6
- github.com/talos-systems/net v0.2.0 -> 05190541b0fa
- github.com/talos-systems/os-runtime 7b3d14457439 new
- github.com/talos-systems/pkgs v0.3.0-59-g3f7a335 -> v0.4.1-2-gd471b60
- github.com/talos-systems/talos/pkg/machinery 6a7cc02 -> 8ffb559
- github.com/talos-systems/tools v0.3.0-13-g05b7372 -> v0.4.0-1-g3b25a7e
- github.com/vmware-tanzu/sonobuoy v0.19.0 -> v0.20.0
- go.etcd.io/etcd/api/v3 v3.5.0-alpha.0 new
- go.etcd.io/etcd/client/v3 v3.5.0-alpha.0 new
- go.etcd.io/etcd/pkg/v3 v3.5.0-alpha.0 new
- golang.org/x/crypto c8d3bf9c5392 -> 5ea612d1eb83
- golang.org/x/net 69a78807bb2b -> e18ecbb05110
- golang.org/x/sync 67f06af15bc9 -> 036812b2e83c
- golang.org/x/sys 760e229fe7c5 -> 77cc2087c03b
- golang.org/x/term 7de9c90e9dd1 -> 6a3ed077a48d
- golang.org/x/time 3af7569d3a1e -> f8bda1e9f3ba
- golang.zx2c4.com/wireguard/wgctrl bd2cb7843e1b new
- google.golang.org/grpc v1.29.1 -> v1.36.0
- gopkg.in/yaml.v3 eeeca48fe776 -> 496545a6307b
- honnef.co/go/tools v0.1.2 new
- k8s.io/api v0.20.1 -> v0.20.5
- k8s.io/apimachinery v0.20.1 -> v0.20.5
- k8s.io/apiserver v0.20.1 -> v0.20.5
- k8s.io/client-go v0.20.1 -> v0.20.5
- k8s.io/cri-api v0.20.1 -> v0.20.5
- k8s.io/kubectl v0.20.5 new
- k8s.io/kubelet v0.20.1 -> v0.20.5
Previous release can be found at v0.8.0
Images
quay.io/coreos/flannel:v0.13.0
ghcr.io/talos-systems/install-cni:v0.2.0-1-g0db3328
docker.io/coredns/coredns:1.8.0
gcr.io/etcd-development/etcd:v3.4.15
k8s.gcr.io/kube-apiserver:v1.20.5
k8s.gcr.io/kube-controller-manager:v1.20.5
k8s.gcr.io/kube-scheduler:v1.20.5
k8s.gcr.io/kube-proxy:v1.20.5
ghcr.io/talos-systems/kubelet:v1.20.5
ghcr.io/talos-systems/installer:v0.9.0
k8s.gcr.io/pause:3.2