v2.4.0
quay.io/kairos/kairos-opensuse-leap:v2.4.0-k3svlatest-k3s1
. This will be fixed in v2.4.2 where naming of artifacts is a lot clearer
Overview and important notes
⚠️ From this release the provider-kairos images are now released from here instead of its own separated repo. We now providercore
image andstandard
images in our releases.core
means the plain Kairos image as we use to release here,standard
is the Kairos image + provider-kairos bundled. If you used to get your images from https://github.com/kairos-io/provider-kairos you can now get them all from this repo directly.⚠️ We have limited the number of k3s releases that we bundle and release to align with upstream releases. Now its limited to 3 minor release versions, same as upstream Kubernetes⚠️ RPI images build has been split into rpi3 and rpi4 due to partitioning issues (only rpi4 supports GPT). For now we only release rpi4 images. For rpi3 images, the user need to use Earthly to build its own by passing--MODEL=rpi3
when building.- 🎨 Kairos overlay files now come from luet packages directly instead of being along in the repository.
- 🎨 K3S packages now come from luet packages directly instead of being installed on the fly during building. This allows us to have a better upgrade cadence and to have the versions more under our control.
- Kairos-agent has been updated to v2.2.11 which brings the following improvements and features
- ✨ Single source for configuration: We used to have 2 different files to configure install/upgrade/reset behaviour (
/etc/elemental/config.yaml
and cloud-config file). That has been merged and all configuration of agent behaviour is now done via the cloud-config. You can see the full reference in our docs. If you have override anything in your image by setting the/etc/elemental/config.yaml
please migrate that config into your cloud-config - ✨ Create dirs in rootfs: We noticed that some users needed to create dirs in the rootfs but as our system is immutable they were unable to do so. There is now a new option in the configuration that allows creating dirs in the rootfs during install or upgrade for those corner cases in which they are needed. See our docs the
extra-dirs-rootfs
key. - ✨ Upgrade workflow while booting from passive: Update workflow used to be the same when runing from active or passive, but that could lead to issues and a broken system as it was upgrading passive as well. Now when upgrading the system from the passive boot image, only the active image will be updated to avoid overwriting a know bootable passive image.
- ✨ Auto partition and image size: No more fixed sizes for partitions and images! Now the agent will calculate the optimal size by analyzing the source for the install and creating the proper partitions to hold the images on them.
- ✨Overridable partition and image size: Dont like our auto image size? Do you want to override it to set it yourself? Now its possible to override partition and image sizes via cloud config directly and set the sizes for each action (install/upgrade/reset) so there is maximum flexibility to configure your system.
- 🎨 Improve unnatended reset: In some cases it was blocking the terminal and not rebooting correctly. We have now added flags to make unnatended reset work in any terminal/service and reboot automatically so it has gained more flexibility to work in all situations.
- 🎨
run-stage
command: Fixed several underlying issues with cloud provider metadata, user creation and layout partition and expansion. - 🎨 Allow upgrading recovery: We noticed that recovery was no longer being able to be upgraded as we were not exposing the flags to do so. Now its possible to upgrade recovery only by calling upgrade with the
--recovery
flag. Normal upgrade also has gained a warning to advise the user to remember to upgrade the recovery.
- ✨ Single source for configuration: We used to have 2 different files to configure install/upgrade/reset behaviour (
Known issues
- ubuntu-20-lts flavor on rpi is currently not able to bring the eth0 interface. No workaround at the moment.
- automatic expansion of the last partition doesn't work in some cases (#1831)
New features and improvements
- 🐧 Add Debian ARM RPi flavor by @mauromorales in #1554
- 🐧 Separate rpi3 from rpi4 by @Itxaka in #1705
- 🌱 Release standard images by @jimmykarily in #1689
- 🌱 Add /var/lib/containerd to bind paths by @Itxaka in #1706
- 🎨 Drop scripts and rework ipxe by @Itxaka in #1735
- 🎨 Bundle bootargs with framework images by @Itxaka in #1796
- 🎨 Drop elemental config file by @Itxaka in #1629
- 🎨 Drop files-iso folder from iso building by @Itxaka in #1727
- 🎨 Fully remove machine-id and systemd-firstboot by @Itxaka in #1702
- ✨ Refactor Dockerfiles for Ubuntu based flavors by @mauromorales in #1656
- ✨ Refactor Dockerfiles by @mauromorales in #1703
- ✨ Introduce new naming convention for artifacts by @mauromorales in #1625
- ✨ Bundle luet versions in the framework by @Itxaka in #1748
- ✨ Move logic to overlays by @jimmykarily in #1738
- ✨ Easy option to build non-hwe kernels by @mauromorales in #1781
Fixes
- 🐛 duplicate repository definition by @mudler in #1659
- 🐛 Stop kairos services in proper time by @Itxaka in #1643
- 🐛 Add missing packages by @mauromorales in #1658
- 🐛 Fix bootargs matcher for rpi by @Itxaka in #1810
- 🐛 Fix rpi partition sizes for upgrade by @Itxaka in #1786
- 🐛 Bring back the bootargs.cfg files to the base image by @jimmykarily in #1756
- 🐛 Install cryptsetup also on opensuse rpi by @mauromorales in #1782
- 🐛 Add missing standard arm rpi flavors by @mauromorales in #1764
- 🐛 Fix rpi4 serial by @jimmykarily in #1768
- 🐛 Install the right k3s package based on the init system by @jimmykarily in #1802
- 🐛 Add growpart to base images by @Itxaka in #1806
- 🐛 Fix secureboot livecd images by @Itxaka in #1712
Documentation
Packages included in this release
Name | Version |
---|---|
bundles/kairos-overlay-files | 1.0.6 |
container/kubectl | 1.28.1 |
dracut/immucore | 0.1.4 |
dracut/network-legacy | 0.9 |
dracut/sysext | 0.9 |
init-svc/systemd | 0.8.0 |
static/grub-config | 0.7 |
systemd-default/network | 1.0 |
system/grub2-efi | 2.06-150404 |
system/immucore | 0.1.4 |
system/kairos-agent | 2.2.11 |
system/ provider-kairos | 2.4.0 |
system/suc-upgrade | 0.2.1 |
system/kcrypt | 0.7.0 |
system/kcrypt-challenger | 0.5.0 |
utils/kube-vip | 0.6.2 |
utils/nerdctl | 1.5.0 |
utils/k9s | 0.27.4 |
utils/edgevpn | 0.23.1 |
CI improvements
- 🤖 Build provider in kairos and bring tests by @Itxaka in #1592
- 🤖 Use reusable jobs by @mauromorales in #1587
- 🤖 Add simple UKI test by @Itxaka in #1619
- 🤖 Fix+move image size test by @Itxaka in #1648
- 🤖 Fix provider tests by @Itxaka in #1674
- 🤖 Use proper job for the matrix get in framework by @Itxaka in #1679
- 🤖 Add raw image target to earthly by @Itxaka in #1675
- 🤖 Add missing targetarch argument by @mauromorales in #1670
- 🤖 Notify of master failures via slack by @Itxaka in #1616
- 🤖 Add guards to UKI test by @Itxaka in #1632
- 🤖 Keep distro calculation in sync with provider repo by @mauromorales in #1655
- 🤖 Use our (paid) kvm workers by @jimmykarily in #1709
- 🤖 Fix arm pipeline dependency by @mauromorales in #1710
- 🤖 Use one of our luet packages to install k3s by @jimmykarily in #1814
- 🤖 Zfs reuse iso by @Itxaka in #1795
- 🤖 Block metadata IP in CI runners by @Itxaka in #1794
- 🤖 Fix test that wasn't testing anything by @jimmykarily in #1749
- 🤖 Fix linting errors by @jimmykarily in #1753
- 🤖 Don't run command on scratch images by @jimmykarily in #1754
- 🤖 Add fetch to notify action under arm by @Itxaka in #1715
- 🤖 Configure KVM for verious tests by @mauromorales in #1720
- 🤖 Remove Earthly target that was never used by @jimmykarily in #1722
- 🤖 Add k3s version when it is set by @jimmykarily in #1731
- 🤖 Fix k3s installation when a version is passed by @mauromorales in #1740
- 🤖 Switch to self-hosted runner by @jimmykarily in #1780
- 🤖 Make spac on release workers by @mauromorales in #1746
- 🤖 Cache testing image and simplify scripts by @mauromorales in #1776
- 🤖 Reduce calls to release API by @mauromorales in #1771
- 🤖 Fix some release API issues by @mauromorales in #1773
Full Changelog: v2.3.2...v2.4.0