Releases: kairos-io/kairos
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...
v2.4.0-rc3
What's Changed
- ⬆️ Update repositories by @ci-robbot in #1809
- Brings new immucore with latest yip
- Brings new kairos-agent with latest yip
- 🐛 Fix bootargs matcher for rpi by @Itxaka in #1810
Full Changelog: v2.4.0-rc2...v2.4.0-rc3
v2.4.0-rc2
What's Changed
- 🐛 Add growpart to base images by @Itxaka in #1806
- ⬆️ Update repositories by @ci-robbot in #1808
Full Changelog: v2.4.0-rc1...v2.4.0-rc2
v2.4.0-rc1
What's Changed
- ⬆️ Update repositories by @ci-robbot in #1595
- Update earthly/earthly Docker tag to v0.7.11 by @renovate in #1549
- Update renovate/renovate Docker tag to v36 by @renovate in #1581
- Update module github.com/urfave/cli to v1.22.14 by @renovate in #1503
- Build provider in kairos and bring tests by @Itxaka in #1592
- Update quay.io/kairos/osbuilder-tools Docker tag to v0.7.8 by @renovate in #1603
- 🐧 Add Debian ARM RPi flavor by @mauromorales in #1554
- Update osbuilder by @Itxaka in #1604
- 🤖 Use reusable jobs by @mauromorales in #1587
- 🤖 Notify of master failures via slack by @Itxaka in #1616
- Update quay.io/kairos/osbuilder-tools Docker tag to v0.8.0 by @renovate in #1613
- 🤖 Add simple UKI test by @Itxaka in #1619
- ⬆️ Update repositories by @ci-robbot in #1617
- 🤖 Add guards to UKI test by @Itxaka in #1632
- Bump repo and drop elemental config file by @Itxaka in #1629
- 🐛 Stop kairos services in proper time by @Itxaka in #1643
- ✨ Introduce new naming convention for artifacts by @mauromorales in #1625
- 📖 Update README and drop duplicated content from community by @mudler in #1649
- ⬆️ Update repositories by @ci-robbot in #1630
- Update module github.com/kairos-io/kairos-sdk to v0.0.10 by @renovate in #1647
- Update earthly/earthly Docker tag to v0.7.12 by @renovate in #1612
- 🤖 Fix+move image size test by @Itxaka in #1648
- Keep distro calculation in sync with provider repo by @mauromorales in #1655
- Update earthly/earthly Docker tag to v0.7.13 by @renovate in #1654
- 🐛 duplicate repository definition by @mudler in #1659
- ✨ Refactor Dockerfiles for Ubuntu based flavors by @mauromorales in #1656
- 🐛 Add missing packages by @mauromorales in #1658
- ⬆️ Update repositories by @ci-robbot in #1653
- Update earthly/earthly Docker tag to v0.7.14 by @renovate in #1668
- Update quay.io/kairos/osbuilder-tools Docker tag to v0.8.2 by @renovate in #1669
- 🤖 Add missing targetarch argument by @mauromorales in #1670
- Update aquasec/trivy Docker tag to v0.44.0 by @renovate in #1494
- ⬆️ Update repositories by @ci-robbot in #1667
- 🤖 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
- ⬆️ Update repositories by @ci-robbot in #1680
- ⬆️ Update repositories by @ci-robbot in #1685
- Update earthly/earthly Docker tag to v0.7.15 by @renovate in #1686
- ⬆️ Update repositories by @ci-robbot in #1691
- Bump osbuilder to 0.8.3 by @mauromorales in #1692
- Update module github.com/kairos-io/kairos-sdk to v0.0.12 by @renovate in #1671
- 1609 release standard images by @jimmykarily in #1689
- 🌱 Add /var/lib/containerd to bind paths by @Itxaka in #1706
- Use our (paid) kvm workers by @jimmykarily in #1709
- Fix arm pipeline dependency by @mauromorales in #1710
- ✨ Refactor Dockerfiles by @mauromorales in #1703
- 🐧 Separate rpi3 from rpi4 by @Itxaka in #1705
- :wrenchIcon: Fully remove machine-id and systemd-firstboot by @Itxaka in #1702
- 🤖 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
- 🎨 Drop files-iso folder from iso building by @Itxaka in #1727
- Fix k3s installation when a version is passed by @mauromorales in #1740
- 🎨 Drop scripts and rework ipxe by @Itxaka in #1735
- ⬆️ Update repositories by @ci-robbot in #1699
- 🤖 Make spac on release workers by @mauromorales in #1746
- 1726 move logic to overlays by @jimmykarily in #1738
- Bundle luet versions in the framework by @Itxaka in #1748
- 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
- Bring back the bootargs.cfg files to the base image by @jimmykarily in #1756
- ⬆️ Update repositories by @ci-robbot in #1758
- 🐛 Add missing standard arm rpi flavors by @mauromorales in #1764
- Fix rpi4 serial by @jimmykarily in #1768
- Reduce calls to release API by @mauromorales in #1771
- Fix some release API issues by @mauromorales in #1773
- ✨ Cache testing image and simplify scripts by @mauromorales in #1776
- ⬆️ Update repositories by @ci-robbot in #1778
- Switch to self-hosted runner by @jimmykarily in #1780
- Easy option to build non-hwe kernels by @mauromorales in #1781
- Install cryptsetup also on opensuse rpi by @mauromorales in #1782
- Update kairos-io/linting-composite-action action to v0.0.8 by @renovate in #1784
- Update earthly/earthly Docker tag to v0.7.17 by @renovate in #1774
- Update module github.com/kairos-io/kairos-sdk to v0.0.14 by @renovate in #1736
- ⬆️ Update repositories by @ci-robbot in #1785
- Update aquasec/trivy Docker tag to v0.45.0 by @renovate in #1713
- ⬆️ Update repositories by @ci-robbot in #1788
- Update actions/checkout action to v4 by @renovate in #1789
- 🐛 Fix rpi partition sizes for upgrade by @Itxaka in #1786
- 🤖 Block metadata IP in CI runners by @Itxaka in #1794
- Zfs reuse iso by @Itxaka in #1795
- 🎨 Bundle bootargs with framework images by @Itxaka in #1796
- Install the right k3s package based on the init system by @jimmykarily in #1802
Full Changelog: v2.3.2...v2.4.0-rc1
v2.4.0-alpha6
What's Changed
- Switch to self-hosted runner by @jimmykarily in #1780
- Easy option to build non-hwe kernels by @mauromorales in #1781
- Install cryptsetup also on opensuse rpi by @mauromorales in #1782
Full Changelog: v2.4.0-alpha5...v2.4.0-alpha6
v2.4.0-alpha5
What's Changed
- Fix some release API issues by @mauromorales in #1773
- ✨ Cache testing image and simplify scripts by @mauromorales in #1776
- ⬆️ Update repositories by @ci-robbot in #1778
Full Changelog: v2.4.0-alpha4...v2.4.0-alpha5
v2.4.0-alpha4
What's Changed
- Fix rpi4 serial by @jimmykarily in #1768
- Reduce calls to release API by @mauromorales in #1771
Full Changelog: v2.4.0-alpha3...v2.4.0-alpha4
v2.4.0-alpha3
What's Changed
- 🤖 Make spac on release workers by @mauromorales in #1746
- 1726 move logic to overlays by @jimmykarily in #1738
- Bundle luet versions in the framework by @Itxaka in #1748
- 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
- Bring back the bootargs.cfg files to the base image by @jimmykarily in #1756
- ⬆️ Update repositories by @ci-robbot in #1758
- 🐛 Add missing standard arm rpi flavors by @mauromorales in #1764
Full Changelog: v2.4.0-alpha2...v2.4.0-alpha3
v2.4.0-alpha2
What's Changed
- 🎨 Drop files-iso folder from iso building by @Itxaka in #1727
- Fix k3s installation when a version is passed by @mauromorales in #1740
- 🎨 Drop scripts and rework ipxe by @Itxaka in #1735
- ⬆️ Update repositories by @ci-robbot in #1699
Full Changelog: v2.4.0-alpha1...v2.4.0-alpha2
v2.4.0-alpha1
What's Changed
- Add k3s version when it is set by @jimmykarily in #1731
Full Changelog: v2.3.3-rc2...v2.4.0-alpha1