Aleksandr Zakharchenko
10/20/2026, 2:16 PMRocky
10/20/2026, 2:17 PMdefault_warehouse or the system's default resource group).
In shared-data mode, the FE schedules query tasks to "workers" (CNs) grouped into warehouses. If the FE reports that a worker group has no alive workers, it means the scheduler has no available compute resources to execute your request.
Common Causes and Fixes
1. Compute Nodes (CN) are not registered or alive
The most common cause is that the CN processes haven't successfully joined the cluster or have crashed.
* Check Status: Run the following SQL command to check if any CNs are listed and if they are marked as `Alive: true`:
sql
SHOW COMPUTE NODES;
-- or if using older versions
SHOW BACKENDS;
* Fix: If the list is empty, you must add your CNs to the cluster:
sql
ALTER SYSTEM ADD COMPUTE NODE "cn_host:heartbeat_port";
If they are listed but Alive is false, check the cn.out and <http://cn.INFO|cn.INFO> logs on the CN machines for startup errors.
2. Storage/Object Store Connection Issues
In shared-data mode, CNs must be able to access the remote object storage (S3, MinIO, etc.) to function. If a CN cannot initialize its connection to the storage defined in the FE's run_config or the warehouse configuration, it may fail to report as a healthy worker.
* Check Logs: Look for "failed to init object storage" or "heartbeat" errors in <http://cn.INFO|cn.INFO>.
* Fix: Ensure the CN has network access to the storage endpoint and that the credentials/endpoint configured in the cluster are correct.
3. Warehouse/Worker Group Mismatch
If you are using the Multi-Warehouse feature (available in StarRocks 3.x+), the query might be directed to a warehouse that has no nodes assigned or is suspended.
* Check Warehouses:
sql
SHOW WAREHOUSES;
* Fix: Ensure the warehouse you are using has at least one CN assigned. If the default warehouse is empty, you can add nodes to it or ensure your CNs are not assigned to a different, specific warehouse.
4. Heartbeat and Network Issues
The FE and CN communicate via heartbeat ports (default 9050). If there is a firewall or network partition, the FE will mark the CN as "not alive."
* Fix: Verify that the FE can reach the CN's heartbeat_port and the CN can reach the FE's query_port and edit_log_port.
5. StarOS Metadata Mismatch (Advanced)
Shared-data mode relies on a metadata service (internal StarOS). If the CNs were restarted with a different starlet configuration or if the metadata on the FE was reset/wiped, the mapping of worker group 0 might be broken.
* Fix: Check fe.log for any "StarOS" or "LakeService" exceptions. If this is a fresh deployment, ensure the cloud_native_storage_type and related storage parameters are consistent across all FE nodes.
Recommended first step: Run SHOW COMPUTE NODES and check the ErrMsg column for any specific error reasons reported by the FE.
References
• faq/shared_data_faq.md
• quick_start/shared-data.md
• deployment/shared_data/feature-support-shared-data.md
• deployment/shared_data/s3.mdAleksandr Zakharchenko
10/20/2026, 2:25 PMRocky
10/20/2026, 2:26 PMdefault_warehouse (id 0) and its default_worker_group (id 0) are automatically managed by the FE.
* Background Tasks: Even before you run any queries, the FE starts background services like the LakeService, CompactionScheduler, and WarehouseManager. These services periodically check for available compute resources to perform internal tasks (such as metadata maintenance or checking storage accessibility).
* The Error: Since you haven't started any CN nodes yet, the FE's scheduler correctly reports that worker group 0 has no alive workers. In many cases, this is background noise and not necessarily what is blocking your third FE from moving out of the INIT state.
* The INIT State: An FE in INIT means it has not yet completed its GlobalStateMgr initialization or has not successfully synchronized its metadata with the Leader.
2. Is it a blocker?
Usually, the "no alive workers" log is a symptom, not the cause of an FE being stuck in INIT. However, in some 3.x versions, if the FE is trying to perform a mandatory system initialization task (like creating system tables or validating the storage volume) that requires a compute resource, it might "hang" or retry until a CN is available.
3. How to fix and move forward
Follow these steps to resolve the state and finish the cluster bootstrap:
A. Verify the FE Quorum
If you have 3 FEs and 2 are in FOLLOWER state, a Leader should have been elected (one of the followers will show IsLeader: true in SHOW FRONTENDS).
* Check the fe.log of the node in INIT for other errors. Specifically, look for RPC timeouts, Connection refused, or BDBJE errors.
* Ensure priority_networks is configured in fe.conf on all nodes to prevent them from trying to communicate over the wrong network interface.
B. Start and Register at least one CN
StarRocks shared-data mode requires at least one CN to be fully functional. You do not need to wait for all FEs to be "Ready" before starting a CN. Once the Leader FE is up (even if the other two are still syncing):
1. Start one CN node (./bin/start_cn.sh --daemon).
2. Connect to the Leader FE via MySQL and add the CN:
sql
ALTER SYSTEM ADD COMPUTE NODE "cn_host:heartbeat_service_port";
3. Check if the CN is alive: SHOW COMPUTE NODES;.
Once a CN is registered and Alive: true, the "worker group 0" error should stop, and any background initialization tasks that were waiting for a worker will complete, which may allow the INIT FE to finish its startup.
C. Manual Warehouse Check (If the error persists after CN is added)
If the CN is added but the error continues, check the warehouse status:
sql
SHOW WAREHOUSES;
-- If no warehouse exists, the default should be created automatically,
-- but you can try to trigger a refresh by restarting the Leader FE.
Summary Recommendation
Don't wait for the third FE to leave INIT before starting your CNs. Start your CN nodes now and register them with the FE cluster. This often clears the background errors and allows the remaining FE to synchronize and become Ready.
If the INIT node remains stuck after adding a CN, check its fe.log specifically for "failed to get leader" or "catch up" messages, as that points to a network or metadata consistency issue between the FEs.
References
• administration/Meta_recovery.md
• quick_start/shared-data.mdRocky
10/20/2026, 2:26 PMAleksandr Zakharchenko
10/20/2026, 2:30 PMRocky
10/20/2026, 2:31 PMINIT?
When a StarRocks FE starts up (even a new node joining an existing cluster), it must reload the global metadata. Part of this process involves:
* onReload / checkAndSetActive: The FE iterates through all existing Materialized Views to verify their state.
* Iceberg Metadata Fetch: The stack trace shows the FE is reaching out to an external Iceberg catalog (via IcebergHiveCatalog and ResolvingFileIO) to check the base tables of those MVs.
* The Block: If the FE cannot reach the Iceberg catalog (Hive MetaStore or S3) or if it's waiting for a response that never comes, the thread blocks. This prevents the FE from completing its initialization and moving from INIT to a healthy FOLLOWER or LEADER state.
2. The "Worker Group 0" Connection
In shared-data mode, worker group 0 (the default_worker_group of the default_warehouse) is the primary compute resource for system tasks.
* Certain "heavy" metadata operations or background maintenance tasks in shared-data mode require an active worker node (CN) to be available to handle storage-related checks or internal query fragments.
* The warning worker group 0 does not have alive workers confirms that the FE has no compute resources to delegate these tasks to.
3. The "Unclosed ResolvingFileIO" Warning
This is a side effect. It means the Iceberg connection (FileIO) was opened to fetch metadata but was never properly closed—likely because the operation timed out or the thread was interrupted because the FE is struggling to stabilize.
──────────
How to Fix
Step 1: Start and Register your CN nodes
In shared-data mode, you should not wait for all FEs to be in a perfect state before starting CNs. The cluster lifecycle in 3.x shared-data mode expects compute resources to be available almost immediately for background initialization.
1. Start your CN nodes.
2. If you haven't already, register them with the FE (use the FE that is currently the Leader—check SHOW FRONTENDS on one of the FOLLOWER nodes to see who is IsLeader: true):
sql
ALTER SYSTEM ADD COMPUTE NODE "cn_host:9050";
Once the FE sees "Alive" workers, it can successfully initialize the default_warehouse, which often clears the block on background metadata tasks.
Step 2: Check External Connectivity
The stack trace shows a failure to communicate with an Iceberg catalog. Ensure that:
* The FE nodes have network access to the Hive MetaStore or Glue endpoint.
* The FE nodes have the correct S3/Object Store credentials (via fe.conf or instance profiles) to read the Iceberg metadata files.
* If you are using a shared metadata volume from a previous installation, the FE is trying to reach catalogs that might no longer exist or are unreachable.
Step 3: Increase Metadata Loading Timeouts (Optional)
If you have a very large number of Materialized Views, the reload can take time. You can check fe.log for any "timeout" messages related to GlobalStateMgr. However, adding a CN is the most likely fix for the "worker group" error specifically.
Summary: The "worker group 0" error is a signal that your FEs are trying to do work (MV initialization) but have no compute nodes to help. Start your CNs now and the INIT node should eventually catch up and transition to FOLLOWER.
References
• using_starrocks/async_mv/troubleshooting_asynchronous_materialized_views.md
• knowledge/trouble_shooting/fe_deadlock_problems.mdRocky
10/20/2026, 2:31 PMAleksandr Zakharchenko
10/20/2026, 2:41 PMRocky
10/20/2026, 2:41 PMkube-starrocks chart), the behavior you are describing is actually the built-in default logic of the Operator's reconciliation loop.
There isn't a single "toggle" property like `waitForFE: true`; instead, the StarRocks Operator is designed as a "Level 2" operator that manages component dependencies automatically.
1. The "Property" (Operator Logic)
The Operator's internal logic prevents the creation or scaling of starRocksCnSpec (Compute Nodes) until the starRocksFESpec (Frontends) have reached a Ready state.
* In your case, because you have one FE stuck in INIT and the others are likely not yet reporting as fully Ready to the Kubernetes readiness probe, the Operator is holding back the CN nodes.
2. The Deadlock (The "Chicken-and-Egg" Problem)
You have encountered a common dependency deadlock in shared-data mode (especially with version 3.x and external catalogs like Iceberg):
1. Operator Logic: "I won't start the CNs until the FEs are Ready."
2. FE Status: The FE stays in INIT because it is trying to reload metadata (like checking Materialized Views or external Iceberg tables).
3. Shared-Data Requirement: In shared-data mode, the FE often needs an active worker (CN) in worker group 0 to execute the internal tasks required to finish its own initialization.
How to Fix It
To break this deadlock, you need to allow the CNs to start even if the FE is not yet "Ready." You can try the following:
* Check Readiness Probes: If your FEs are actually running but just not "Ready" in Kubernetes terms, the Operator will wait indefinitely. You might need to temporarily relax the readinessProbe in your values.yaml for the FE so that the Operator thinks they are ready and triggers the CN deployment.
* Manual Intervention: If you are using the Operator, check the StarRocksCluster resource status (kubectl get starrockscluster). If it is stuck in Reconciling, it's because of the FE.
* Use initContainers (The Manual Way): If you manually added a wait script in the values.yaml under starrocksCnSpec.initContainers, that is what's blocking the CN. It usually looks like this:
yaml
starrocksCnSpec:
initContainers:
• name: wait-for-fe
image: busybox:1.28
command: ['sh', '-c', 'until nslookup <fe-service-name>; do sleep 2; done']
If this exists in your values.yaml, remove or comment it out to let the CN start and assist the FE.
Summary: The "property" is the Operator's built-in reconciliation sequence. Because your FE is stuck in INIT (waiting for workers to help load Iceberg/MV metadata), the Operator is refusing to start the workers. You should check if you can manually start at least one CN or relax the FE's readiness requirements in the Helm chart to trigger the Operator to proceed.
References
• quick_start/shared-data.md
• deployment/deploy_manually.md
• administration/Meta_recovery.md
• quick_start/routine-load.mdAleksandr Zakharchenko
10/20/2026, 2:58 PMRocky
10/20/2026, 2:59 PMenabledCN: false in your values.yaml only prevents the Kubernetes Operator from deploying the CN Pods. It does not tell the StarRocks engine to ignore the lack of compute nodes.
Because you are in shared-data mode, the FE cluster is architecturally dependent on having workers (CNs) to perform background system tasks. This is why you are seeing the "no alive workers" error even with the setting disabled.
1. Why enabledCN: false doesn't stop the error
In shared-data mode (Cloud Native), the Frontend (FE) delegates nearly all data-related tasks to the Compute Nodes (CN). Upon startup, the FE initiates several background services:
* Warehouse Manager: Automatically tries to initialize worker group 0 in the default_warehouse. If no CNs are registered or alive, it will log warnings/errors indefinitely.
* Metadata Reload (The Block): Your previous logs showed the FE stuck in MaterializedView.onReload. In StarRocks 3.x, if an MV references an external table (like Iceberg), the FE may need to dispatch a metadata-fetch task. If there are no CNs, this task cannot be scheduled, causing the FE thread to block or retry, keeping the node in the INIT state.
2. The Deadlock (Chicken-and-Egg)
You are likely experiencing a common deadlock with the StarRocks Operator:
1. Operator Logic: It waits for the FE cluster to be "Ready" (pass Kubernetes readiness probes) before it starts the CN nodes.
2. FE State: The FE stays in INIT (Not Ready) because it is waiting for a worker to help it finish loading Materialized View metadata.
3. Result: The CNs never start because the FEs aren't ready, and the FEs never become ready because the CNs aren't there to help.
3. How to resolve this
To break this cycle, you must allow at least one CN to start and join the cluster so the FEs can complete their initialization.
Option A: Relax the FE Readiness Probe (Recommended)
Modify your values.yaml to make the FE's readiness probe less strict. This allows the Operator to see the FEs as "Ready" (even if they are still in INIT internally), which triggers the deployment of the CNs.
yaml
starrocksFESpec:
readinessProbe:
failureThreshold: 60 # Increase significantly
initialDelaySeconds: 10
periodSeconds: 10
Option B: Manually Force CN Deployment
If you are comfortable with kubectl, you can check if the StarRocksCluster (SRC) resource has a starRocksCnSpec. If the Operator is refusing to create the CN Deployment because the FE isn't ready, you may need to temporarily set enabledCN: true and check the Operator logs (kubectl logs -n <namespace> <operator-pod-name>) to see why it isn't reconciling the CNs.
Option C: Bypass MV Reload (Advanced)
If you believe the Materialized Views are causing a terminal block, you can try to start the FE with background MV reloads disabled by adding this to your fe.conf (via starrocksFESpec.config in values.yaml):
properties
# This might allow the FE to finish INIT without waiting for external catalogs
enable_background_refresh_materialized_view = false
Note: Use this only as a temporary measure to get the cluster up, then re-enable it once CNs are healthy.
Summary
Shared-data StarRocks cannot function without CNs. Setting enabledCN: false effectively breaks the cluster. You should:
1. Set enabledCN: true.
2. Ensure your FE readiness probes aren't so strict that they prevent the CNs from ever being created.
3. Once the first CN is up and registers with the Leader FE, the INIT node should transition to FOLLOWER shortly after.
References
• deployment/deploy_manually.md
• deployment/sr_operator.md
• deployment/upgrade.md
• deployment/shared_data/s3.mdRocky
10/20/2026, 2:59 PMAleksandr Zakharchenko
10/20/2026, 3:04 PMRocky
10/20/2026, 3:04 PMAleksandr Zakharchenko
10/20/2026, 3:12 PMRocky
10/20/2026, 3:12 PMReady before starting CNs, and the FE won't become Ready until it sees a CN (the "chicken-and-egg" deadlock), you should relax the Readiness Probe.
1. The "Bypass" Method (Recommended)
You can modify your values.yaml to replace the standard health check with a command that always returns success. This "tricks" Kubernetes and the Operator into thinking the FE is ready, which triggers the deployment of the CNs.
In your values.yaml, override the readinessProbe for the FE:
yaml
starrocksFESpec:
readinessProbe:
exec:
command:
- /bin/sh
- -c
- "exit 0"
initialDelaySeconds: 5
periodSeconds: 5
2. The "Patience" Method
If you don't want to bypass the check entirely, you can significantly increase the failureThreshold and initialDelaySeconds. This gives the FE a very long time to "eventually" become ready without Kubernetes killing it or the Operator giving up, though it won't solve the deadlock if the FE truly requires a CN to finish its INIT phase.
yaml
starrocksFESpec:
readinessProbe:
httpGet:
path: /api/health
port: 8030
failureThreshold: 300 # Allow up to 50 minutes (300 * 10s)
periodSeconds: 10
3. Why this works
* The Operator: It monitors the Ready status of the FE Pods. Once it sees 1/1 Ready, its reconciliation logic moves to the next step: creating/scaling the CNs.
* The FE: Once the CN starts and registers with the FE, the FE will finally be able to complete its background metadata tasks (like reloading Materialized Views) and transition from INIT to FOLLOWER or LEADER.
Important: After the cluster successfully starts and the CNs are running, you should revert the readiness probe to the standard settings so that Kubernetes can accurately detect and restart the FE if it actually crashes in the future.
Verification
After applying the change, run:
bash
kubectl get pods -n <your-namespace>
You should see the FE pods show 1/1 READY immediately. Shortly after, you should see the Operator begin to create the CN pods.
References
• quick_start/helm.md
• deployment/sr_operator.md
• deployment/deploy_manually.md
• faq/Deploy_faq.md
References
• faq/Deploy_faq.md
• administration/management/FE_configuration.md
• deployment/deploy_manually.md
• deployment/upgrade.md
• deployment/sr_operator.md
• faq/operation_maintenance_faq.md
• administration/management/graceful_exit.mdAleksandr Zakharchenko
10/20/2026, 3:29 PMRocky
10/20/2026, 3:29 PMINIT state), you need to override the default Readiness Probe in your values.yaml.
This is the standard way to break the "chicken-and-egg" deadlock where the FE waits for a CN to finish its startup, but the Operator won't start the CN until the FE is "Ready."
The Change for values.yaml
Add or modify the readinessProbe block within starrocksFESpec. Using an exec probe that returns exit 0 will force Kubernetes to mark the pod as healthy immediately.
yaml
starrocks:
starrocksFESpec:
# This block forces the FE to be marked as Ready immediately
readinessProbe:
exec:
command:
- /bin/sh
- -c
- "exit 0"
initialDelaySeconds: 5
periodSeconds: 5
Why this specific change?
* The Problem: The default probe usually checks httpGet on port 8030/api/health. If the FE is stuck in INIT (Materialized View reloading, etc.), this endpoint returns a failure.
* The Result: By switching to exec: command: ["exit 0"], the kubelet always receives a "success" signal.
* The Outcome: The Operator sees the FE pods as 1/1 Ready, which satisfies its requirement to move forward and finally deploy your CN/BE pods.
Alternative: The "High Threshold" approach
If you don't want to bypass the check entirely but want to stop the Operator from restarting the FE or blocking the CN, you can increase the failure threshold to a very high number:
yaml
starrocks:
starrocksFESpec:
readinessProbe:
httpGet:
path: /api/health
port: 8030
failureThreshold: 100 # Allow ~15-20 minutes of "Not Ready" before giving up
periodSeconds: 10
Recommendation: Use the exit 0 method to get the cluster up for the first time. Once the CNs are registered and the FE finally transitions to LEADER or FOLLOWER, you should remove this override to restore proper health monitoring.
References
• quick_start/helm.md
• deployment/sr_operator.md
• faq/Deploy_faq.md
• administration/management/FE_configuration.md
References
• quick_start/helm.md
• administration/management/FE_configuration.mdAleksandr Zakharchenko
10/20/2026, 3:54 PMRocky
10/20/2026, 3:54 PMreadinessProbe configuration and falling back to its hardcoded default (http-get http://:8030/api/health).
This usually happens for one of two reasons: the version of the operator you are using doesn't support full probe overrides, or the structure/indentation in your values.yaml is slightly off for the specific Helm chart you are using.
1. Verify the Indentation and Key
Depending on whether you are using the kube-starrocks chart (which includes the operator) or the standalone starrocks cluster chart, the key might differ. Ensure your values.yaml follows this exact structure (note the nesting):
For the kube-starrocks chart:
yaml
starrocks:
starrocksFESpec:
readinessProbe:
exec:
command:
- /bin/sh
- -c
- "exit 0"
initialDelaySeconds: 5
periodSeconds: 5
2. Check for Operator Field Support
In some versions of the StarRocks Operator, the readinessProbe field is not fully exposed as a block. Instead, it uses specific fields to control the probe behavior. If the exec block continues to be ignored, try using the specific Failure Seconds fields:
yaml
starrocks:
starrocksFESpec:
# Some operator versions use these specific fields instead of a full probe block
readinessProbeFailureSeconds: 3600 # Set to 1 hour to prevent "Not Ready" status from affecting the cluster
livenessProbeFailureSeconds: 3600
3. Check the StarRocksCluster CR
To see if your change actually made it into the Kubernetes cluster configuration, check the Custom Resource (CR) directly:
bash
kubectl get starrockscluster -n <your-namespace> -o yaml
* If the readinessProbe is missing from the CR output: Your values.yaml structure is incorrect or the Helm chart version is too old to pass that field to the operator.
* If the readinessProbe is present in the CR but the Pod still shows `http-get`: The version of the StarRocks Operator you have installed does not support custom probes and is hardcoding the health check.
Recommended Version
Customizing probes was improved in Operator v1.8.7+. If you are on an older version, the operator will always default to the http-get check on port 8030. You may need to upgrade the operator or use the readinessProbeFailureSeconds workaround.
References
• quick_start/helm.md
• deployment/sr_operator.md
• faq/Deploy_faq.md
• administration/management/FE_configuration.md
References
• quick_start/helm.md
• deployment/deploy_manually.md
• administration/management/monitoring/Monitor_and_Alert.mdAleksandr Zakharchenko
10/20/2026, 3:56 PMRocky
10/20/2026, 3:57 PMreadinessProbeFailureSeconds.
The reason your previous attempt with the exec block didn't work is that the StarRocks Operator CRD (Custom Resource Definition) abstracts the readiness probe. It does not allow a full Kubernetes readinessProbe object override (like exec or httpGet); instead, it generates the probe for you based on specific fields.
The Correct Settings
In your values.yaml, ensure you are using the correct casing and field name. Setting this to 0 tells the Operator to disable the readiness probe in the Pod specification entirely.
yaml
starrocks:
starrocksFESpec:
# Use exact casing: readinessProbeFailureSeconds
# Setting this to 0 removes the probe from the Pod spec
readinessProbeFailureSeconds: 0
# Optional: You may want to do the same for liveness if it's also failing
livenessProbeFailureSeconds: 0
Why your previous attempts might have failed:
1. Casing: You mentioned trying readinessProbeseconds. Kubernetes and the StarRocks Operator are case-sensitive. If the field is not exactly readinessProbeFailureSeconds, it will be ignored, and the operator will fall back to its hardcoded default (http-get on port 8030).
2. Object Structure: Using a readinessProbe: block with exec: is not supported by the StarRocksCluster CRD. The operator only looks for the ...FailureSeconds fields to configure health checks.
How to verify it worked:
1. Update the cluster:
bash
helm upgrade starrocks starrocks/kube-starrocks -f values.yaml
2. Check the Pod Spec:
Wait for the FE pods to restart (or delete them to force a restart), then check the description:
bash
kubectl describe pod <fe-pod-name>
If successful, the Readiness: line will be completely missing from the container description.
3. Wait for the Operator:
Once the pod is running (even if the FE is still "initializing" internally), the absence of a failing readiness probe means Kubernetes will report the pod as 1/1 READY. This will signal the Operator to start deploying your CN or BE nodes.
Note: Once your cluster is fully initialized and CNs are registered, it is highly recommended to set readinessProbeFailureSeconds back to a reasonable value (e.g., 300) to ensure the cluster can properly recover from future failures.
References
• deployment/sr_operator.md
• quick_start/helm.md
• faq/Deploy_faq.md
• administration/management/FE_configuration.md
References
• quick_start/helm.md
• deployment/sr_operator.mdAleksandr Zakharchenko
10/20/2026, 4:06 PMRocky
10/20/2026, 4:07 PM1/1 Ready (by bypassing the readiness probe), the StarRocks Operator often waits for the FE to be functionally healthy before it creates the CN or BE StatefulSets.
* The Check: The Operator attempts to connect to the FE's internal API to verify if a Leader has been elected.
* The Result: If the FE is still stuck in an INIT state (e.g., waiting for metadata or a CN to join), the Operator stays in a loop. It logs "not found" because it hasn't reached the step where it actually Creates the StatefulSet, but the reconciliation logic is already looking for it to see if it needs updates.
Solution: Check the FE logs (kubectl logs <fe-pod-name>) to see if it says "wait for leader election" or "image is not ready." If the FE is not yet a Leader, the CN will not be deployed.
2. Incorrect YAML Nesting
If the starRocksCnSpec is not at the correct indentation level in your values.yaml, the Operator will ignore the CN configuration entirely, resulting in no StatefulSet being created.
Ensure your values.yaml looks like this:
yaml
starrocks:
starrocksFESpec:
# ... your FE config ...
starrocksCnSpec: # <--- MUST be at the same level as starrocksFESpec
enabled: true # Some charts require this explicit flag
replicas: 3
image:
repository: starrocks/cn-ubuntu
tag: 3.1-latest
3. Missing Storage/Object Store Configuration (Shared-Data)
CN (Compute Nodes) are primarily used in Shared-Data (Cloud-Native) mode. If you are deploying CNs but have not provided the mandatory object storage configuration (S3/GCS/Azure) in the starRocksFeSpec, the Operator may fail to initialize the FE properly, which in turn prevents the CN StatefulSet from being created.
How to Diagnose
Run the following command to see what the Operator actually "sees" in your configuration:
bash
kubectl get starrockscluster -o yaml
* Look for spec.starRocksCnSpec: If this section is missing from the output, the Operator doesn't know you want CNs (check your values.yaml indentation).
* Look for status: Check the cnStatus or feStatus fields at the bottom of the output. If the feStatus does not say running, the Operator will not create the CN.
Summary
The "not found" log is often a transient warning. The Operator says "I can't find the CN StatefulSet (so I can't update it)," but it won't create it until the FE reports that it is ready to accept compute nodes. Ensure at least one FE has successfully elected itself as Leader by checking kubectl logs <fe-pod> | grep "master".
References
• deployment/sr_operator.md
• quick_start/helm.md
• administration/management/logs.md
• deployment/deploy_manually.md
References
• deployment/deploy_manually.md
• deployment/sr_operator.md
• deployment/environment_configurations.md