Was this page helpful?
Caution
You're viewing documentation for an unstable version of ScyllaDB Operator. Switch to the latest stable version.
Conditions reference¶
The ScyllaDB Operator uses Kubernetes status conditions to communicate health and progress of managed resources. This page documents the top-level condition types, their semantics, and aggregation rules.
These conditions apply to all Operator-managed custom resources that report status conditions (e.g. ScyllaCluster, ScyllaDBDatacenter, NodeConfig).
Top-level conditions¶
Every condition-reporting resource exposes three top-level conditions:
Condition type |
Meaning when |
Meaning when |
Meaning when |
|---|---|---|---|
|
The resource is functional and can serve its purpose |
The resource is not functional |
Availability cannot yet be determined |
|
The Operator is actively reconciling (rolling update, scaling, version change) |
Either completed or stuck |
Reconciliation state cannot yet be determined |
|
Something is unhealthy or an error occurred during reconciliation |
Resource is healthy |
Health cannot yet be determined |
A fully healthy, quiescent resource shows: Available=True, Progressing=False, Degraded=False.
A resource can be Available=True and Degraded=True simultaneously — for example, a ScyllaCluster where two of three nodes are healthy can still serve traffic but is not fully healthy.
Available reflects whether the resource can serve its purpose, not whether it is in a fully healthy state.
Aggregation rules¶
The top-level conditions are computed from per-controller sub-conditions.
Each internal controller contributes a condition whose type is prefixed with the controller name and ends with Available, Progressing, or Degraded (e.g. StatefulSetControllerDegraded, JobControllerProgressing).
The aggregation logic is:
Available=Truerequires all*Availablesub-conditions to beTrue.Progressing=Truewhen any*Progressingsub-condition isTrue.Degraded=Truewhen any*Degradedsub-condition isTrue.
To inspect all conditions on a ScyllaCluster (including sub-conditions), run:
kubectl -n scylla get scyllacluster <cluster-name> \
-o jsonpath='{range .status.conditions[*]}{.type}: {.status} — {.reason}: {.message}{"\n"}{end}'
Condition fields¶
Each condition object contains:
Field |
Description |
|---|---|
|
Condition name (e.g. |
|
|
|
A CamelCase machine-readable reason string |
|
A human-readable description of the current state |
|
When the condition last changed |
|
The |