Mirantis Container Cloud (MCC) becomes part of Mirantis OpenStack for Kubernetes (MOSK)!

Starting with MOSK 25.2, the MOSK documentation set covers all product layers, including MOSK management (formerly MCC). This means everything you need is in one place. The separate MCC documentation site will be retired, so please update your bookmarks for continued easy access to the latest content.

OpenStack Controller (Rockoon)

In MOSK, Rockoon is the singleton Kubernetes operator that acts as the OpenStack Controller, providing a Kubernetes-native control plane for OpenStack. Rockoon is written in Python and leverages the Kopf framework for Kubernetes operator development, along with Pykube, a lightweight Kubernetes API client.

Rockoon is continuously watching the OpenStackDeployment custom resource and manages the full lifecycle of OpenStack through the Kubernetes API. When the resource changes, Rockoon translates its data into Helm values, merging global, feature-level, and per-service parameters, and applies them to the underlying Kubernetes cluster to install and update OpenStack components. This approach provides a stable abstraction over raw OpenStack-Helm charts and enables continuous, declarative reconciliation.

The basic child resources managed by the controller are Helm releases. They are rendered from templates using values derived from the main and features sections in the OpenStackDeployment custom resource. Then, the common fields are merged to resulting data structures. Lastly, the services fields are merged providing the final and precise override for any value in any Helm release to be deployed or upgraded. The constructed values are then used by Rockoon during a Helm release installation.

By design, Rockoon runs in a set of containers in a single pod and is deployed as a Kubernetes Deployment with one replica. Kubernetes handles failover by restarting the failed containers. Typically, each dedicated Kubernetes cluster manages a single OpenStack deployment, so each Rockoon manages only one OpenStackDeployment resource, simplifying operations and minimizing the need for full high availability of the controller.

Rockoon containers

Container

Description

osdpl

The core container that handles changes in the osdpl object.

helmbundle

The container that watches the helmbundle objects and reports their statuses to the osdpl object in status:children. See OpenStackDeploymentStatus custom resource for details.

health

The container that watches all Kubernetes native resources, such as Deployments, Daemonsets, Statefulsets, and reports their statuses to the osdpl object in status:health. See OpenStackDeploymentStatus custom resource for details.

secrets

The container that provides data exchange between different components such as Ceph.

node

The container that handles the node events.

../../../_images/openstack_controller.png