Simplified and automated OpenStack operation with Yaook

A co-pilot that knows its job: Yaook is far more than a simple configuration management tool. Leveraging the power of Kubernetes, it takes care of those everyday annoyances that come with running OpenStack, freeing up your mind for the more complex challenges. Whether it’s handling minor disruptions or bigger tasks like shifting workloads when a hypervisor fails, Yaook has your back - automatically.

Take a look around - or jump directly to the following information:

Why Yaook?

The challenges

Scalability

Clouds often start small - whether due to careful investment planning or a proof-of-concept phase. When growth sets in, the control plane must also be scaled. This includes moving services to other available nodes while ensuring availability at the same time.

Complex configuration

As an OpenStack cluster evolves, it accumulates special-case configurations - whether it's a new hardware generation, provider network, or service. Keeping track of which configuration applies where can become a real challenge over time.

Solution & advantages

Unambiguous configuration

Yaook lets you define configuration options based on labels on nodes, allowing you to set up fine-tuned, specialised configurations for hypervisors and network nodes. Conflicting options are not merged - they are rejected. So you never have to wonder which configuration is in effect: if it's written correctly and Yaook doesn't complain, it will be applied.

Operators

At the heart of Yaook lies the controller pattern popularized by Kubernetes. Yaook is constantly working to fulfill the configuration you provide. Moving databases or network gateways to dedicated nodes? Just add or remove a couple of labels, and Yaook takes it from there. Yaook and Kubernetes work seamlessly together to ensure zero downtime. The same goes for hypervisors, by the way, with automatic live migrations. And through it all, Yaook ensures your data is safe, with no risk of loss without your explicit manual intervention.

Field of application

Application scenarios

Yaook can be used anywhere Kubernetes can run. Thanks to its flexible configuration, it can be adapted to suit almost any scenario.

Yaook lets you sleep at night offers fearless automation is your trusted co-pilot

Features

Kubernetes-native

Yaook runs in Kubernetes, leveraging its power wherever possible.

Automated „day two“

The operators assist with daily tasks like replacing failed nodes or upgrading to new versions. The automation within Yaook has been implemented and is continuously refined by a community of cloud operators. In total, decades of experience have shaped the algorithms used by Yaook.

Risk-averse

The algorithms will never risk losing your (or your customer’s) valuable data - unless you explicitly instruct it to, and only when there’s no other option.

Label-based distribution

Almost every component of Yaook can be planned using labels and taints.
This is not only important to prevent control plane components from running on hypervisors - it also gives you more control if you expand the control plane to more than three nodes due to growth.

Secured by default

All cluster-internal communication is encrypted using TLS, managed by Cert Manager. This is non-optional, so there’s no risk of accidental misconfigurations. For external communication, you can use your own certificates or integrate with Cert Manager as well.

Mix & Match

Yaook supports a variety of OpenStack services, but the choice is yours. Select only the services you need and customise your cloud to be as feature-rich or minimalistic as you prefer.

Fully customisable

Each container image provided by Yaook can be exchanged for an image of your choice - at any time and as securely as all Yaook upgrades. This makes it possible to extend and change the services provided by Yaook during operation without having to wait for a new version.

Open source

Yaook is completely open source and enables collaboration and transparency at every step.

Workflow

1. Provide the operators

Pick the OpenStack services you want and deploy the corresponding Yaook Operators to your (ideally bare-metal) Kubernetes cluster.

2. Configure your Cluster

Write the YAML manifests describing the OpenStack services you want to deploy.

3. Press the button

Roll out your manifests (preferably using GitOps) to your cluster and watch Yaook deploy OpenStack faster than you've ever seen it before.

4. Run tests

Finalise your deployment by using the tempest operator to run the OpenStack test suite against your deployment to ensure functionality.

Open source is Digital sovereignty the future Community

Use Cases

Yaook makes deploying and running OpenStack easier (not that it was ever going to be easy, let’s be real). Some ways you can take advantage of this include:
You work for the IT department of a medium-sized company. Your software developers have asked for a cloud environment that they can use to test their software. Outsourcing is not an option for legal reasons. With Yaook, you can provide a minimalist OpenStack with just Keystone, Glance, Cinder, Neutron and Nova, which is sufficient for your internal purposes on just six nodes. This increases the efficiency of your developers by providing them with the full power of a cloud while minimising costs through more efficient sharing of hardware resources.

Your company offers a PaaS product. To gain additional market share, you want to advertise the fact that you have full control over the data and are no longer dependent on third-party cloud services.

You start with a minimal OpenStack, but at some point your developers ask for more advanced features like Load Balancing as a Service.

Adding it is as simple as reconfiguring the network on your nodes and adding an Octavia deployment to your system.

You're ready to shake up the cloud market and introduce the European public cloud. You have big plans - hundreds, no, thousands of hypervisors - but hey, everyone has to start somewhere. After the initial deployment, your three-node control plane starts to collapse under the load. But don't worry: with the Yaook Metal Controller, you quickly spin up three more nodes, label them and separate your APIs from the backend services, giving your setup a much-needed break and significantly reducing the load. As you scale, you can add more CPU architectures and generations. Per-node configuration, host aggregates and yaook disruption budgets ensure that VMs land exactly where they are needed and that you have sufficient capacity - even when rolling upgrades affect all your nodes. And if you make that one typo that would have completely destroyed the data plane if you had rolled it out? No problem - Yaook will stop the rollout before disaster strikes because it realised that libvirt wouldn't start with that configuration.

Community and user info

You want to try Yaook?

Do you have any questions? Found a bug? Want to contribute to the project? Join the Yaook community!

Videos about Yaook

OpenInfra Summit 2022

Yaook - Fearless automation. Deployment of OpenStack on Kubernetes

ALASCA Tech-Talk No1

Yaook: Using Kubernetes to deploy OpenStack, a non-cloud-native application

A project by ALASCA.

Yaook began in June 2020, laying the foundation for the community that would later grow into ALASCA - a non-profit association for the (further) development of operational, open cloud infrastructures. ALASCA's mission revolves around the further development and provision of open source tools that not only enable but also facilitate the development and operation of customised cloud infrastructures.

In addition to the practical development work on these projects, ALASCA also sees itself as a provider of knowledge on these topics - not only within the organisation, but also to the outside world, for example in the form of the ALASCA Tech Talks.

With a strong, motivated community and the combined expertise of its members, ALASCA is driving forward digital sovereignty in Germany and Europe in the long term - also in collaboration with other open source initiatives and communities in the digital sector.

de_DE_formal