-
Notifications
You must be signed in to change notification settings - Fork 263
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve Conditions and Terminal errors #2379
Comments
Would/should there be a way for users to indicate that a retry should be made? Personally I get quite annoyed when I forget to create the identity ref secret or make a typo in some image name if that requires a full re-creation of the cluster. |
We could create a condition for that? |
Sure! I guess my question is that is it better to have the terminal error and then potentially need a way to retry, or is it better to just rely on the exponential backoff and make all errors transient? |
The difference between However, if anything happens to trigger a reconcile anyway, we will still reconcile the object. e.g. If you messed up the credentials and update them, that should trigger another reconcile. |
Ah that is excellent! |
/kind feature
Context and Background
As part of the initiative to improve status reporting in Cluster API (CAPI) resources, significant changes will be introduced to how resource statuses are handled in the Cluster API Provider for OpenStack (CAPO).
One major change involves phasing out the
FailureReason
andFailureMessage
fields in favor of leveraging Kubernetes Conditions to encapsulate terminal failures and lifecycle statuses. Terminal failures, though unique to CAPI, can be effectively communicated through well-defined conditions, using explicittype
andreason
values to represent fatal issues. This shift aligns CAPO with Kubernetes conventions and ensures that error states are consistently and clearly conveyed.Key Updates and Behavior Changes
Progressing
condition toTrue
with aReason
such asTransientError
and a clearMessage
. These errors will trigger reconciliation retries using exponential backoff, allowing the system to self-recover without manual intervention.Progressing=False
and aReason
such asTerminalError
. These errors will stop reconciliation, and users will be notified via a human-readable condition message.OpenStackMachine
,OpenStackServer
): Readiness will be set toProvisioned
once all Conditions are met with no failures, it won't be able to change anymore. However, Conditions will reflect key events such as deletion failures.OpenStackCluster
): These resources may experience condition changes, reflecting updates or failures after modification (e.g., issues arising from adding a security group while the Neutron API is unresponsive).Known Issues and Areas for Improvement
Several existing issues highlight gaps in handling terminal failures or reflect inconsistent status behavior. This enhancement will address the following key issues:
Summary
By aligning CAPO with CAPI’s improved status reporting and transitioning to a condition-driven model, this enhancement will:
The text was updated successfully, but these errors were encountered: