Status Fields
Display States
GitRepos, HelmOps, Clusters, and Bundles have different states in each phase of applying Bundles.
Since the states from the BundleDeployments are propagated to the Bundle, GitRepo, Cluster, and ClusterGroup, you’ll find them displayed in the same way. The difference lies in the perspective on the resources.
By looking at the GitRepo, the states of all resources related to the GitRepo are displayed there. When looking at the Cluster, the states of all Bundles in that Cluster are displayed, which may span across many GitRepos. When looking at the Bundle, the states of all BundleDeployments in that Bundle are displayed.
Ready Condition
The Ready
condition is used to determine if the BundleDeployments are in a Ready
state.
The Ready
condition is set to True
if all BundleDeployments are in the Ready
state.
If at least one BundleDeployment isn’t in the Ready
state, the Ready
condition is set to False
.
All BundleDeployment states are aggregated into the message
field of the Ready
status condition. To prevent the message from becoming too long, only the first ten states are shown. The message
field contains the number of BundleDeployments in each state, followed by the Cluster name where the BundleDeployment is located. Ready
statuses are excluded from the message
field.
For example:
status:
conditions:
- lastUpdateTime: "2025-06-25T14:59:35Z"
message: WaitApplied(1) [Cluster fleet-default/downstream4]
status: "False"
type: Ready
Ready Status Determination
Fleet uses the kstatus
package of the sigs.k8s.io/cli-utils
module to determine the Ready status of BundleDeployments based on the status of their resources.
For details, see the kstatus
package README.
Propagation of Ready Status
Display State
The status.display
field provides a summary of the state. States are ranked, and the worst possible state is used as the state
in the status.display
field.
State Ranking
This is the ranking in which states are displayed. If a Bundle has BundleDeployments in different states, the worst state is used in the status.display.state
field.
This state is also propagated from the Bundles to other Fleet resources (GitRepos, Clusters, ClusterGroups).
From best to worst:
-
Ready
-
NotReady
-
Pending
-
OutOfSync
-
Modified
-
WaitApplied
-
ErrApplied
Bundles
Bundle Statuses
-
Ready : Bundles have been deployed, and all resources are ready. If not, the
message
field of theReady
condition contains an aggregation of BundleDeployment states. -
NotReady : BundleDeployments have been deployed, but some resources aren’t ready (for example, container images are being pulled or services haven’t reported readiness).
-
Pending : Bundles are queued for processing by the Fleet controller. This may occur if rollout is paused (Refer to Rollout Strategy).
-
OutOfSync : Bundles are synced from the Fleet controller, but updated BundleDeployments haven’t yet been created, so downstream agents can’t sync changes. This can also occur if rollout is paused (Refer to Rollout Strategy).
-
Modified : Bundles are deployed and resources are ready, but some deployed resources were modified externally and not from Git.
-
WaitApplied : Bundles are synced but waiting to deploy. Persistent display of this state may indicate an unreachable target cluster.
-
ErrApplied : Bundles synced successfully but encountered errors during deployment.
Clusters
Cluster-Specific States
-
WaitCheckIn : Waiting for the agent to report registration info and cluster status.
States from Bundles
-
Ready : All Bundles in this cluster are deployed, and resources are ready.
-
NotReady : Some Bundles in this cluster are not ready.
-
Pending : Some Bundles are pending.
-
OutOfSync : Some Bundles are out of sync.
-
Modified : Some Bundles are modified.
-
WaitApplied : Some Bundles are waiting to be applied.
-
ErrApplied : Some Bundles have errors.
GitRepo
-
Ready :
True
if desired and current states match. IfFalse
, the message contains:-
an error from the GitJob controller,
-
an error from the Bundle (for example, templating failure), or
-
an aggregated list of Bundles not in
Ready
.
-
-
GitPolling : Indicates whether polling or initial cloning is in progress.
True
if polling is successful or disabled. -
Reconciling : The controller is currently reconciling changes.
-
Stalled : The controller encountered an error or failed to make progress.
-
Accepted : GitRepo restrictions were applied and external Helm secrets exist.
HelmOp Conditions
-
Ready :
True
if all BundleDeployments were deployed successfully;False
if any are not ready. -
Accepted :
False
if Helm options are invalid, chart versions can’t be resolved, polling failed, or Bundle creation failed. -
Polled :
True
if polling succeeded.False
otherwise, with an error message.
status.display
The status.display
fields are shared between GitRepos and GitOps. Both resources contain a status.display
field summarizing the state of the resource. The value of state
may differ depending on resource type.
-
readyBundleDeployments
: A string in the form%d/%d
showing the number of ready versus total bundle deployments. -
state
: Represents the GitRepo’s state (for example,GitUpdating
) or the highest BundleState per the State Ranking. IfReady
, it’s set to an empty value. -
message
: Contains relevant deployment condition messages. -
error
:true
if an error message exists.