v1.26.X
Upgrade Notice
Before upgrading from earlier releases, be sure to read the Kubernetes Urgent Upgrade Notes.
Release v1.26.7+k3s1
This release updates Kubernetes to v1.26.7, and fixes a number of issues. For more details on what’s new, see the Kubernetes release notes.
Changes since v1.26.6+k3s1:
- Remove file_windows.go (#7855)
- Fix code spell check (#7859)
- Allow k3s to customize apiServerPort on helm-controller (#7874)
- Check if we are on ipv4, ipv6 or dualStack when doing tailscale (#7882)
- Support setting control server URL for Tailscale. (#7893)
- S3 and Startup tests (#7885)
- Fix rootless node password (#7901)
- Backports for 2023-07 release (#7908)
- Resolved an issue that caused agents joined with kubeadm-style bootstrap tokens to fail to rejoin the cluster when their node object is deleted.
- The
k3s certificate rotate-ca
command now supports the data-dir flag.
- Adding cli to custom klipper helm image (#7914)
- The default helm-controller job image can now be overridden with the —helm-job-image CLI flag
- Generation of certs and keys for etcd gated if etcd is disabled (#7944)
- Don’t use zgrep in
check-config
if apparmor profile is enforced (#7956) - Fix image_scan.sh script and download trivy version (#7950) (#7968)
- Adjust default kubeconfig file permissions (#7983)
- Update to v1.26.7 (#8022)
Release v1.26.6+k3s1
This release updates Kubernetes to v1.26.6, and fixes a number of issues.
For more details on what’s new, see the Kubernetes release notes.
Changes since v1.26.5+k3s1:
- Update flannel version (#7648)
- Bump vagrant libvirt with fix for plugin installs (#7658)
- E2E and Dep Backports - June (#7693)
- Bump docker go.mod #7681
- Shortcircuit commands with version or help flags #7683
- Add Rotation certification Check, remove func to restart agents #7097
- E2E: Sudo for RunCmdOnNode #7686
- VPN integration (#7727)
- E2e: Private registry test (#7721)
- Fix spelling check (#7751)
- Remove unused libvirt config (#7757)
- Backport version bumps and bugfixes (#7717)
- The bundled metrics-server has been bumped to v0.6.3, and now uses only secure TLS ciphers by default.
- The
coredns-custom
ConfigMap now allows for*.override
sections to be included in the.:53
default server block. - The K3s core controllers (supervisor, deploy, and helm) no longer use the admin kubeconfig. This makes it easier to determine from access and audit logs which actions are performed by the system, and which are performed by an administrative user.
- Bumped klipper-lb image to v0.4.4 to resolve an issue that prevented access to ServiceLB ports from localhost when the Service ExternalTrafficPolicy was set to Local.
- Make LB image configurable when compiling k3s
- K3s now allows nodes to join the cluster even if the node password secret cannot be created at the time the node joins. The secret create will be retried in the background. This resolves a potential deadlock created by fail-closed validating webhooks that block secret creation, where the webhook is unavailable until new nodes join the cluster to run the webhook pod.
- The bundled containerd’s aufs/devmapper/zfs snapshotter plugins have been restored. These were unintentionally omitted when moving containerd back into the k3s multicall binary in the previous release.
- The embedded helm controller has been bumped to v0.15.0, and now supports creating the chart’s target namespace if it does not exist.
- Add format command on makefile (#7762)
- Fix logging and cleanup in Tailscale (#7782)
- Update Kubernetes to v1.26.6 (#7789)
Release v1.26.5+k3s1
This release updates Kubernetes to v1.26.5, and fixes a number of issues.
For more details on what’s new, see the Kubernetes release notes.
Changes since v1.26.4+k3s1:
- Ensure that klog verbosity is set to the same level as logrus (#7360)
- Prepend release branch to dependabot (#7374)
- Add integration tests for etc-snapshot server flags (#7377)
- Bump Runc and Containerd (#7399)
- CLI + Config Enhancement (#7403)
--Tls-sans
now accepts multiple arguments:--tls-sans="foo,bar"
Prefer-bundled-bin: true
now works properly when set inconfig.yaml.d
files
- Migrate netutil methods into /utils/net.go (#7432)
- Bump kube-router version to fix a bug when a port name is used (#7460)
- Kube flags and longhorn storage tests (#7465)
- Local-storage: Fix permission (#7474)
- Bump containerd to v1.7.0 and move back into multicall binary (#7444)
- The embedded containerd version has been bumped to
v1.7.0-k3s1
, and has been reintegrated into the main k3s binary for a significant savings in release artifact size.
- The embedded containerd version has been bumped to
- Backport version bumps and bugfixes (#7514)
- K3s now retries the cluster join operation when receiving a “too many learners” error from etcd. This most frequently occurred when attempting to add multiple servers at the same time.
- K3s once again supports aarch64 nodes with page size > 4k
- The packaged Traefik version has been bumped to v2.9.10 / chart 21.2.0
- K3s now prints a more meaningful error when attempting to run from a filesystem mounted
noexec
. - K3s now exits with a proper error message when the server token uses a bootstrap token
id.secret
format. - Fixed an issue where Addon, HelmChart, and HelmChartConfig CRDs were created without structural schema, allowing the creation of custom resources of these types with invalid content.
- Servers started with the (experimental) —disable-agent flag no longer attempt to run the tunnel authorizer agent component.
- Fixed an regression that prevented the pod and cluster egress-selector modes from working properly.
- K3s now correctly passes through etcd-args to the temporary etcd that is used to extract cluster bootstrap data when restarting managed etcd nodes.
- K3s now properly handles errors obtaining the current etcd cluster member list when a new server is joining the managed etcd cluster.
- The embedded kine version has been bumped to v0.10.1. This replaces the legacy
lib/pq
postgres driver withpgx
. - The bundled CNI plugins have been upgraded to v1.2.0-k3s1. The bandwidth and firewall plugins are now included in the bundle.
- The embedded Helm controller now supports authenticating to chart repositories via credentials stored in a Secret, as well as passing repo CAs via ConfigMap.
- Bump containerd/runc to v1.7.1-k3s1/v1.1.7 (#7534)
- The bundled containerd and runc versions have been bumped to v1.7.1-k3s1/v1.1.7
- Wrap error stating that it is coming from netpol (#7547)
- Add ‘-all’ flag to apply to inactive units (#7573)
- Update to v1.26.5-k3s1 (#7576)
- Pin emicklei/go-restful to v3.9.0 (#7598)
Release v1.26.4+k3s1
This release updates Kubernetes to v1.26.4, and fixes a number of issues.
For more details on what’s new, see the Kubernetes release notes.
Changes since v1.26.3+k3s1:
- Enhance
k3s check-config
(#7091) - Update stable channel to v1.25.8+k3s1 (#7161)
- Drone Pipelines enhancement (#7169)
- Fix_get_sha_url (#7187)
- Improve Updatecli local-path-provisioner pipeline (#7181)
- Improve workflow (#7142)
- Improve Trivy configuration (#7154)
- Bump Local Path Provisioner version (#7167)
- The bundled local-path-provisioner version has been bumped to v0.0.24
- Bump etcd to v3.5.7 (#7170)
- The embedded etcd version has been bumped to v3.5.7
- Bump runc to v1.1.5 (#7171)
- The bundled runc version has been bumped to v1.1.5
- Fix race condition caused by etcd advertising addresses that it does not listen on (#7147)
- Fixed a race condition during cluster reset that could cause the operation to hang and time out.
- Bump coredns to v1.10.1 (#7168)
- The bundled coredns version has been bumped to v1.10.1
- Don’t apply hardened args to agent (#7089)
- Upgrade helm-controller to v0.13.3 (#7209)
- Improve Klipper Helm and Helm controller bumps (#7146)
- Fix issue with stale connections to removed LB server (#7194)
- The client load-balancer that maintains connections to active server nodes now closes connections to servers when they are removed from the cluster. This ensures that agent components immediately reconnect to a current cluster member.
- Bump actions/setup-go from 3 to 4 (#7111)
- Lock bootstrap data with empty key to prevent conflicts (#7215)
- When using an external datastore, K3s now locks the bootstrap key while creating initial cluster bootstrap data, preventing a race condition when multiple servers attempted to initialize the cluster simultaneously.
- Updated kube-router to move the default ACCEPT rule at the end of the chain (#7218)
- The embedded kube-router controller has been updated to fix a regression that caused traffic from pods to be blocked by any default drop/deny rules present on the host. Users should still confirm that any externally-managed firewall rules explicitly allow traffic to/from pod and service networks, but this returns the old behavior that was relied upon by some users.
- Add make commands to terraform automation and fix external dbs related issue (#7159)
- Update klipper lb to v0.4.2 (#7210)
- Add coreos and sle micro to selinux support (#6945)
- Fix call for k3s-selinux versions in airgapped environments (#7264)
- Update Kube-router ACCEPT rule insertion and install script to clean rules before start (#7274)
- The embedded kube-router controller has been updated to fix a regression that caused traffic from pods to be blocked by any default drop/deny rules present on the host. Users should still confirm that any externally-managed firewall rules explicitly allow traffic to/from pod and service networks, but this returns the old behavior that was relied upon by some users.
- Update to v1.26.4-k3s1 (#7282)
- Bump golang:alpine image version (#7292)
- Bump Sonobuoy version (#7256)
- Bump Trivy version (#7257)
Release v1.26.3+k3s1
This release updates Kubernetes to v1.26.3, and fixes a number of issues.
For more details on what’s new, see the Kubernetes release notes.
Changes since v1.26.2+k3s1:
- Add E2E to Drone (#6890)
- Add flannel adr (#6973)
- Update flannel and kube-router (#7039)
- Bump various dependencies for CVEs (#7044)
- Adds a warning about editing to the containerd config.toml file (#7057)
- Update stable version in channel server (#7066)
- Wait for kubelet port to be ready before setting (#7041)
- The agent tunnel authorizer now waits for the kubelet to be ready before reading the kubelet port from the node object.
- Improve support for rotating the default self-signed certs (#7032)
- The
k3s certificate rotate-ca
checks now support rotating self-signed certificates without the--force
option.
- The
- Skip all pipelines based on what is in the PR (#6996)
- Add missing kernel config checks (#6946)
- Remove deprecated nodeSelector label beta.kubernetes.io/os (#6970)
- MultiClusterCIDR for v1.26 (#6885)
- MultiClusterCIDR feature
- Remove Nikolai from MAINTAINERS list (#7088)
- Add automation for Restart command for K3s (#7002)
- Fix to Rotate CA e2e test (#7101)
- Drone: Cleanup E2E VMs on test panic (#7104)
- Update to v1.26.3-k3s1 (#7108)
- Pin golangci-lint version to v1.51.2 (#7113)
- Clean E2E VMs before testing (#7109)
- Update flannel to fix NAT issue with old iptables version (#7136)
Release v1.26.2+k3s1
This release updates Kubernetes to v1.26.2, and fixes a number of issues.
For more details on what’s new, see the Kubernetes release notes.
Changes since v1.26.1+k3s1:
- Add build tag to disable cri-dockerd (#6760)
- Bump cri-dockerd (#6797)
- The embedded cri-dockerd has been updated to v0.3.1
- Update stable channel to v1.25.6+k3s1 (#6828)
- E2E Rancher and Hardened script improvements (#6778)
- Add Ayedo to Adopters (#6801)
- Consolidate E2E tests and GH Actions (#6772)
- Allow ServiceLB to honor
ExternalTrafficPolicy=Local
(#6726)- ServiceLB now honors the Service’s ExternalTrafficPolicy. When set to Local, the LoadBalancer will only advertise addresses of Nodes with a Pod for the Service, and will not forward traffic to other cluster members.
- Fix cronjob example (#6707)
- Bump vagrant boxes to fedora37 (#6832)
- Ensure flag type consistency (#6852)
- E2E: Consoldiate docker and prefer bundled tests into new startup test (#6851)
- Fix reference to documentation (#6860)
- Bump deps: trivy, sonobuoy, dapper, golangci-lint, gopls (#6807)
- Fix check for (open)SUSE version (#6791)
- Add support for user-provided CA certificates (#6615)
- K3s now functions properly when the cluster CA certificates are signed by an existing root or intermediate CA. You can find a sample script for generating such certificates before K3s starts in the github repo at contrib/util/certs.sh.
- Ignore value conflicts when reencrypting secrets (#6850)
- Add
kubeadm
style bootstrap token secret support (#6663)- K3s now supports
kubeadm
style join tokens.k3s token create
now creates join token secrets, optionally with a limited TTL. - K3s agents joined with an expired or deleted token stay in the cluster using existing client certificates via the NodeAuthorization admission plugin, unless their Node object is deleted from the cluster.
- K3s now supports
- Add NATS to the list of supported data stores (#6876)
- Use default address family when adding kubernetes service address to SAN list (#6857)
- The apiserver advertised address and IP SAN entry are now set correctly on clusters that use IPv6 as the default IP family.
- Fix issue with servicelb startup failure when validating webhooks block creation (#6911)
- The embedded cloud controller manager will no longer attempt to unconditionally re-create its namespace and serviceaccount on startup. This resolves an issue that could cause a deadlocked cluster when fail-closed webhooks are in use.
- Fix access to hostNetwork port on NodeIP when egress-selector-mode=agent (#6829)
- Fixed an issue that would cause the apiserver egress proxy to attempt to use the agent tunnel to connect to service endpoints even in agent or disabled mode.
- Wait for server to become ready before creating token (#6932)
- Allow for multiple sets of leader-elected controllers (#6922)
- Fixed an issue where leader-elected controllers for managed etcd did not run on etcd-only nodes
- Update Flannel to v0.21.1 (#6944)
- Fix Nightly E2E tests (#6950)
- Fix etcd and ca-cert rotate issues (#6952)
- Fix ServiceLB dual-stack ingress IP listing (#6979)
- Resolved an issue with ServiceLB that would cause it to advertise node IPv6 addresses, even if the cluster or service was not enabled for dual-stack operation.
- Bump kine to v0.9.9 (#6974)
- The embedded kine version has been bumped to v0.9.9. Compaction log messages are now omitted at
info
level for increased visibility.
- The embedded kine version has been bumped to v0.9.9. Compaction log messages are now omitted at
- Update to v1.26.2-k3s1 (#7011)
Release v1.26.1+k3s1
This release updates Kubernetes to v1.26.1, and fixes a number of issues.
For more details on what’s new, see the Kubernetes release notes.
Changes since v1.26.0+k3s2:
- Add jitter to scheduled snapshots and retry harder on conflicts (#6715)
- Scheduled etcd snapshots are now offset by a short random delay of up to several seconds. This should prevent multi-server clusters from executing pathological behavior when attempting to simultaneously update the snapshot list ConfigMap. The snapshot controller will also be more persistent in attempting to update the snapshot list.
- Adjust e2e test run script and fixes (#6718)
- RIP Codespell (#6701)
- Bump alpine from 3.16 to 3.17 in /package (#6688)
- Bump alpine from 3.16 to 3.17 in /conformance (#6687)
- Bump containerd to v1.6.15-k3s1 (#6722)
- The embedded containerd version has been bumped to v1.6.15-k3s1
- Containerd restart testlet (#6696)
- Bump ubuntu from 20.04 to 22.04 in /tests/e2e/scripts (#6686)
- Add explicit read permissions to workflows (#6700)
- Pass through default tls-cipher-suites (#6725)
- The K3s default cipher suites are now explicitly passed in to kube-apiserver, ensuring that all listeners use these values.
- Bump golang:alpine image version (#6683)
- Bugfix: do not break cert-manager when pprof is enabled (#6635)
- Fix CI tests on Alpine 3.17 (#6744)
- Update Stable to 1.25.5+k3s2 (#6753)
- Bump action/download-artifact to v3 (#6746)
- Generate report and upload test results (#6737)
- Slow dependency CI to weekly (#6764)
- Fix Drone plugins/docker tag for 32 bit arm (#6769)
- Update to v1.26.1-k3s1 (#6774)
Release v1.26.0+k3s2
This release updates containerd to v1.6.14 to resolve an issue where pods would lose their CNI information when containerd was restarted, as well as a number of other stability and administrative changes.
Before upgrading from earlier releases, be sure to read the Kubernetes Urgent Upgrade Notes.
Changes since v1.26.0+k3s1:
- Current status badges (#6653)
- Add initial Updatecli ADR automation (#6583)
- December 2022 channels update (#6618)
- Change Updatecli GH action reference branch (#6682)
- Fix OpenRC init script error ‘openrc-run.sh: source: not found’ (#6614)
- Add Dependabot config for security ADR (#6560)
- Bump containerd to v1.6.14-k3s1 (#6693)
- The embedded containerd version has been bumped to v1.6.14-k3s1. This includes a backported fix for containerd/7843 which caused pods to lose their CNI info when containerd was restarted, which in turn caused the kubelet to recreate the pod.
- Exclude December r1 releases from channel server (#6706)
Release v1.26.0+k3s1
⚠️ WARNING
This release is affected by https://github.com/containerd/containerd/issues/7843, which causes the kubelet to restart all pods whenever K3s is restarted. For this reason, we have removed this K3s release from the channel server. Please use
v1.26.0+k3s2
instead.
This release is K3S’s first in the v1.26 line. This release updates Kubernetes to v1.26.0.
Before upgrading from earlier releases, be sure to read the Kubernetes Urgent Upgrade Notes.
Changes since v1.25.5+k3s1:
- Remove deprecated flags in v1.26 (#6574)
- Using “etcd-snapshot” for saving snapshots is now deprecated, use “etcd-snapshot save” instead. (#6575)
- Update to v1.26.0-k3s1
- Update kubernetes to v1.26.0-k3s1
- Update cri-tools to v1.26.0-rc.0-k3s1
- Update helm controller to v0.13.1
- Update etcd to v3.5.5-k3s1
- Update cri-dockerd to the latest 1.26.0
- Update cadvisor
- Update containerd to v1.6.12-k3s1 (#6370)
- Preload iptable_filter/ip6table_filter (#6645)
- Bump k3s-root version to v0.12.1 (#6651)