The module lifecycle stage: Preview
The module has requirements for installation
Starrocks
The Starrocks resource describes a StarRocks analytical database instance in a user namespace. StarRocks is an OLAP database for real-time analytics: it accepts SQL queries, ingests data through load jobs (including Stream Load), and stores columnar data on persistent volumes managed by the operator.
Each Starrocks resource must reference a StarrocksClass that defines allowed CPU/memory sizes and which configuration parameters users may override.
Basic Example
apiVersion: managed-services.deckhouse.io/v1alpha1
kind: Starrocks
metadata:
name: analytics
namespace: my-team
spec:
starrocksClassName: default
tls:
mode: CertManager
certManager:
clusterIssuerName: selfsigned
configuration:
catalogTrashExpireSecond: 7200
instance:
memory:
size: 4Gi
cpu:
cores: 2
coreFraction: "50%"
persistentVolumeClaim:
size: 120GiSpec Fields
starrocksClassName
Name of the StarrocksClass used for sizing policy validation and configuration defaults. Required.
instance
Compute and storage sizing for the StarRocks cluster:
memory.size— RAM available to StarRocks FE/BE pods. Analytical workloads typically require several GiB; minimum depends on the linkedStarrocksClass.cpu.coresandcpu.coreFraction— CPU limits and request fraction.persistentVolumeClaim.size— disk space for StarRocks data. Size cannot be decreased after creation.persistentVolumeClaim.storageClassName(optional) — storage class for data volumes.
configuration
User-overridable StarRocks settings allowed by the linked StarrocksClass (spec.overridableConfiguration).
Only hot-reloadable keys can be listed there today:
catalogTrashExpireSecond— how long the FE keeps dropped catalog objects before cleanup (maps tocatalog_trash_expire_second; applied live viaADMIN SET FRONTEND CONFIG).streamingLoadMaxMb— max Stream Load request size in MB (maps tostreaming_load_max_mb; applied live via BE HTTPupdate_config).
Class defaults such as enableUdf and loadProcessMaxMemoryLimitPercent are not part of Starrocks.spec.configuration (set only on the class; restart / new class required).
tls
Optional TLS for the FE HTTP proxy (HTTPS on port 8443). The MySQL query port (9030) does not use TLS.
- Omit
tls— no TLS (HTTP feproxy only). mode: CertManager(default whentlsis set) — operator issues a certificate via cert-manager; setcertManager.clusterIssuerName.mode: CustomCertificate— reference existing TLS secrets (customCertificate.serverTLSSecret/serverCASecret).
When TLS is enabled, the agent reports certificate health in status.certificate.server (ttl in whole days until expiry, failed if the secret or mounted cert is missing/unreadable).
MySQL clients connecting to port 9030 must disable TLS, for example:
mysql -h<host> -P9030 -uroot -p'<password>' --ssl=falseRoot credentials
The operator creates Secret <prefix>-<name>-root-creds with key password (auto-generated alphanumeric). The StarRocks container and the agent sidecar receive it as STARROCKS_ROOT_PASSWORD.
Status Conditions
The operator reports conditions such as Available, ConfigurationValid, LastValidConfigurationApplied, and ScaledToLastValidConfiguration. With TLS enabled, also check status.certificate.server. Inspect with:
kubectl get starrocks -n my-team
kubectl describe starrocks analytics -n my-team
kubectl get starrocks analytics -n my-team -o jsonpath='{.status.certificate}' ; echoUsage Examples
Minimal Instance
Smallest size allowed by the built-in default class (2 cores / 4Gi):
apiVersion: managed-services.deckhouse.io/v1alpha1
kind: Starrocks
metadata:
name: minimal
namespace: my-team
spec:
starrocksClassName: default
instance:
memory:
size: 4Gi
cpu:
cores: 2
coreFraction: "50%"
persistentVolumeClaim:
size: 10GiProduction-Sized Instance
For heavier analytical workloads with larger data volumes:
apiVersion: managed-services.deckhouse.io/v1alpha1
kind: Starrocks
metadata:
name: warehouse
namespace: analytics
spec:
starrocksClassName: production
configuration:
catalogTrashExpireSecond: 86400
streamingLoadMaxMb: 102400
instance:
memory:
size: 16Gi
cpu:
cores: 8
coreFraction: "100%"
persistentVolumeClaim:
size: 500Gi
storageClassName: fast-ssd