Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки

Starrocks

Ресурс Starrocks описывает инстанс аналитической СУБД StarRocks в пользовательском namespace. StarRocks — OLAP-база для аналитики в реальном времени: принимает SQL-запросы, загружает данные через load jobs (в том числе Stream Load) и хранит колоночные данные на persistent volume, управляемых оператором.

Каждый ресурс Starrocks должен ссылаться на StarrocksClass, который задаёт допустимые размеры CPU/RAM и список параметров конфигурации, доступных для переопределения.

Базовый пример

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: 120Gi

Поля spec

starrocksClassName

Имя StarrocksClass для валидации политик sizing и значений конфигурации по умолчанию. Обязательное поле.

instance

Вычислительные ресурсы и хранилище кластера StarRocks:

  • memory.size — RAM для подов FE/BE. Для аналитических нагрузок обычно требуются гигабайты; минимум определяется связанным StarrocksClass.
  • cpu.cores и cpu.coreFraction — лимиты CPU и доля request.
  • persistentVolumeClaim.size — дисковое пространство для данных StarRocks. Уменьшить размер после создания нельзя.
  • persistentVolumeClaim.storageClassName (опционально) — storage class для томов данных.

configuration

Переопределяемые пользователем настройки StarRocks, разрешённые в связанном StarrocksClass (spec.overridableConfiguration). В whitelist сейчас только hot-reloadable ключи:

  • catalogTrashExpireSecond — время хранения удалённых объектов каталога на FE перед очисткой (catalog_trash_expire_second; live через ADMIN SET FRONTEND CONFIG).
  • streamingLoadMaxMb — макс. размер Stream Load в МБ (streaming_load_max_mb; live через BE HTTP update_config).

Дефолты класса вроде enableUdf и loadProcessMaxMemoryLimitPercent в Starrocks.spec.configuration не входят (только на классе; нужен новый класс / рестарт).

tls

Опциональный TLS для HTTP-прокси FE (HTTPS, порт 8443). MySQL query port (9030) TLS не использует.

  • Без tls — TLS выключен (только HTTP feproxy).
  • mode: CertManager (по умолчанию, если задан tls) — сертификат через cert-manager; укажите certManager.clusterIssuerName.
  • mode: CustomCertificate — ссылки на существующие TLS Secret (customCertificate.serverTLSSecret / serverCASecret).

При включённом TLS агент пишет здоровье сертификата в status.certificate.server (ttl — целые дни до истечения, failed — если Secret или смонтированный cert недоступны).

Клиенты MySQL к порту 9030 должны отключать TLS, например:

mysql -h<host> -P9030 -uroot -p'<password>' --ssl=false

Учётные данные root

Оператор создаёт Secret <prefix>-<name>-root-creds с ключом password (алфавитно-цифровой, генерируется автоматически). Контейнер StarRocks и sidecar агента получают его как STARROCKS_ROOT_PASSWORD.

Условия статуса

Оператор выставляет условия Available, ConfigurationValid, LastValidConfigurationApplied и ScaledToLastValidConfiguration. При TLS также смотрите status.certificate.server. Проверка:

kubectl get starrocks -n my-team
kubectl describe starrocks analytics -n my-team
kubectl get starrocks analytics -n my-team -o jsonpath='{.status.certificate}' ; echo

Примеры использования

Минимальный инстанс

Наименьший размер, допустимый встроенным классом default (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: 10Gi

Production-инстанс

Для более тяжёлых аналитических нагрузок и больших объёмов данных:

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