The managed-starrocks module manages StarRocks instances in Deckhouse Platform (DP). StarRocks is a high-performance analytical DBMS (OLAP) for real-time analytics, data warehouses, and BI workloads.

The module provides:

  • Automatic Deployment: Creates a StarRocks instance using a simple YAML configuration.
  • Configuration Management: Separate StarrocksClass resource for templating service creation and flexible validation of user parameters.
  • Analytics Tuning: Supports data load parameters (streamingLoadMaxMb, loadProcessMaxMemoryLimitPercent) and catalog management (catalogTrashExpireSecond).
  • Status: Displays the current status of the deployed StarRocks instance.

For more details about module settings and usage examples, refer to the module documentation.

Module architecture

The following assumptions are used to simplify the diagram:

  • The diagram shows direct communication between containers in different Pods. In practice, components communicate through Kubernetes Services (internal load balancers). Service names are omitted when obvious from context. In other cases, a service name is shown above the arrow.
  • Pods can run with multiple replicas, but only one replica of each Pod is shown in the diagram.

The level-2 C4 architecture of the managed-starrocks module and its interactions with other components of DP are shown in the following diagram:

Managed-starrocks module architecture

Module components

The module consists of the following components:

  1. Managed-starrocks-operator (Deployment): Kubernetes operator consisting of a single container manager that performs the following operations:

    • Reconciles Starrocks custom resources in all user namespaces. The Starrocks and StarrocksClass custom resources define the settings of the StarRocks instance.

    • Creates and manages the Certificate custom resource and StatefulSet, Service, Secret, ConfigMap, and PersistentVolumeClaim resources related to the StarRocks instance.

  2. Managed-starrocks-webhook (Deployment): A component consisting of a single container manager.

    It validates and mutates Starrocks custom resources, and mutates StarrocksClass custom resources using the Validating/Mutating Admission Controllers mechanism.

  3. D8ms-sr-<INSTANCE_NAME> (StatefulSet): A component that starts and runs the StarRocks instance. It is created by the managed-starrocks-operator component.

    It consists of the following containers:

    • agent: Sidecar container that monitors and updates the TLS certificate status, and configures the instance.
    • starrocks: Main container.

Module interactions

The module interacts with the kube-apiserver component:

  • Manages Starrocks and Certificate custom resources.
  • Watches StarrocksClass custom resources.
  • Manages StatefulSet, Service, Secret, ConfigMap, and PersistentVolumeClaim resources.

The following external components interact with the module:

  1. Kube-apiserver: Validates and mutates Starrocks custom resources, mutates StarrocksClass custom resources.

  2. User applications: Send requests to the StarRocks instance.

Additional resources