# This manifest deploys a StarRocks cluster with 3 FEs, 3 BEs.

apiVersion: starrocks.com/v1
kind: StarRocksCluster
metadata:
  name: starrockscluster-sample
  namespace: starrocks
spec:
  starRocksFeSpec:
    image: starrocks/fe-ubuntu:latest
    replicas: 1
    # If you just want to start a running StarRocks cluster, you can set a smaller request/limit, such as 1 core and 2GB.
    # See https://docs.starrocks.io/docs/deployment/plan_cluster/#cpu-and-memory for more information about how to configure CPU and memory in production.
    limits:
      cpu: 1
      memory: 2Gi
    requests:
      cpu: 1
      memory: 2Gi
    # storageVolumes is optional. If you don't specify it, emptyDir will be used to store FE meta and log, and be aware
    # that the files and directories written to the volume will be completely lost upon container restarting.
    storageVolumes:
      - name: fe-storage-meta
        # storageClassName: ""  # If storageClassName is not set, Kubernetes will use the default storage class.
        # fe container stop running if the disk free space which the fe meta directory residents, is less than 5Gi.
        storageSize: 10Gi
        mountPath: /opt/starrocks/fe/meta
      - name: fe-storage-log
        # storageClassName: ""  # If storageClassName is not set, Kubernetes will use the default storage class.
        storageSize: 5Gi
        mountPath: /opt/starrocks/fe/log
  starRocksBeSpec:
    image: starrocks/be-ubuntu:latest
    replicas: 1
    # If you just want to start a running StarRocks cluster, you can set a smaller request/limit, such as 1 core and 2GB.
    # See https://docs.starrocks.io/docs/deployment/plan_cluster/#cpu-and-memory for more information about how to configure CPU and memory in production.
    limits:
      cpu: 1
      memory: 2Gi
    requests:
      cpu: 1
      memory: 2Gi
    # storageVolumes is optional. If you don't specify it, emptyDir will be used to store BE data and log, and be aware
    # that the files and directories written to the volume will be completely lost upon container restarting.
    storageVolumes:
      - name: be-storage-data
        # storageClassName: ""  # If storageClassName is not set, Kubernetes will use the default storage class.
        storageSize: 1Ti
        mountPath: /opt/starrocks/be/storage
      - name: be-storage-log
        # storageClassName: ""  # If storageClassName is not set, Kubernetes will use the default storage class.
        storageSize: 1Gi
        mountPath: /opt/starrocks/be/log