Skip to main content

Kairos release v3.5.0

ยท 5 min read


kairos-white-column 5bc2fe34

We're excited to announce the release of Kairos 3.5.0! This release represents a significant milestone for the broader Kairos ecosystem, marking the completion of several key features across multiple projects that work together to improve the overall Kairos experience.

โš™๏ธ Meet the Kairos Operatorโ€‹

The biggest addition to the Kairos ecosystem is the Kairos operator - a standalone Kubernetes operator that provides a native way to manage upgrades and operations on Kairos nodes. While this operator can work with previous Kairos versions, 3.5.0 marks the point where we consider it mature enough to be the recommended approach for Kubernetes-based management.

The operator provides two custom resources:

  • NodeOp: For generic operations on Kubernetes nodes (Kairos or not). It allows mounting the host's root filesystem to perform operations or run scripts.

  • NodeOpUpgrade: A Kairos-specific custom resource for upgrading Kairos nodes. It automatically creates a NodeOp with the appropriate upgrade script and configuration.

This means you can now manage your Kairos nodes using familiar Kubernetes patterns. The operator automatically detects Kairos nodes and labels them with kairos.io/managed: true, making it easy to target Kairos nodes specifically in hybrid clusters.

To get started with the operator, simply deploy it to your cluster:

kubectl apply -k https://github.com/kairos-io/kairos-operator/config/default

Then trigger an upgrade by creating a NodeOpUpgrade resource:

apiVersion: operator.kairos.io/v1alpha1
kind: NodeOpUpgrade
metadata:
name: kairos-upgrade
namespace: default
spec:
image: quay.io/kairos/ubuntu:22.04-standard-amd64-generic-v3.5.0-k3s-v1.33.2-k3s1
nodeSelector:
matchLabels:
kairos.io/managed: "true"
concurrency: 1
stopOnFailure: true

For more details on using the operator, check out our Kairos Operator documentation.

The Kairos operator opens up new possibilities for node management. You can now:

  • Perform custom operations on nodes using NodeOp resources
  • Control upgrade concurrency and failure handling
  • Apply configuration changes after installation
  • Reset nodes with custom configurations
  • Handle trusted boot upgrades through Kubernetes

The operator provides fine-grained control over deployment strategies, allowing you to implement canary deployments, rolling updates, or bulk operations depending on your needs.

๐Ÿ”ง Enhanced AuroraBoot Experienceโ€‹

Another significant milestone is the completion of the API-based workflow in AuroraBoot, our tool for building bootable images. AuroraBoot provides a comprehensive solution for creating custom bootable images, with both a user-friendly WebUI and powerful automation capabilities.

Introducing AuroraBoot WebUIโ€‹

AuroraBoot includes a web-based interface that makes image building accessible to everyone. The WebUI provides an intuitive way to configure and build custom Kairos images without needing to remember complex command-line parameters. You can easily specify container images, cloud configurations, and various build options through a clean, modern interface.

Experimental Feature

The AuroraBoot WebUI is currently under heavy development and should be considered experimental. While functional, it may have limitations and could undergo significant changes in future releases. For production use, we recommend using the command-line interface.

To get started with the AuroraBoot WebUI, simply run:

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
--privileged \
-v $PWD/build/:/output \
-p 8080:8080 \
quay.io/kairos/auroraboot web

Then visit http://localhost:8080 in your browser to access the interface. For more details on using the WebUI, check out our AuroraBoot documentation.

API-Based Automationโ€‹

The new API-based workflow in AuroraBoot enables automation of image building operations. This means you can now integrate image building into your CI/CD pipelines and infrastructure automation workflows. The API provides programmatic access to all AuroraBoot features, allowing you to build images as part of your automated deployment processes.

The API workflow complements the existing WebUI, giving you both the ease of use for manual operations and the power of automation for production environments.

๐Ÿ“ Configuration Path Migration Reminderโ€‹

While the configuration path change from /etc/elemental/config.yaml to /etc/kairos/config.yaml has been moved to v4.0.0, we want to remind users to start migrating their configurations now. This change will align our configuration paths with the Kairos branding and provide a cleaner, more consistent experience.

If you're using the old path, we recommend updating your configurations to use the new location (/etc/kairos/config.yaml) to prepare for deprecation. The old path will continue to work for now, but migrating early will ensure a smooth transition.

๐Ÿ”ฎ What's Nextโ€‹

The completion of these ecosystem features represents a significant step toward more integrated and automated Kairos workflows. We're excited to see how the community uses these new capabilities to build more sophisticated deployment and management workflows.

We're already working on the next milestone - Kairos v3.6.0. Check out the ticket to see what's coming next.

As always, we encourage you to try out the new features and share your feedback. Whether you're upgrading existing clusters, automating image builds, or deploying new ones, these tools should make your day-to-day operations smoother and more predictable.

For a complete list of changes in this release, visit the v3.5.0 release page on GitHub. For detailed upgrade instructions and examples, visit our upgrade documentation. If you run into any issues or have questions, join the conversation in our Slack or GitHub Discussions. If you want to participate in the development process, you can always join our office hours - the calendar is available on our community page.

Happy upgrading!