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.
Container |
Description |
---|---|
|
The core container that handles changes in the |
|
The container that watches the |
|
The container that watches all Kubernetes native
resources, such as |
|
The container that provides data exchange between different components such as Ceph. |
|
The container that handles the node events. |
