-
Notifications
You must be signed in to change notification settings - Fork 39
Description
Description:
Currently, the Cluster API Provider Tinkerbell (CAPT) lacks standardized status condition tracking for its resources. We should implement metav1.Condition based status tracking to improve observability and user experience.
Background:
Kubernetes uses metav1.Condition as a standard way to represent resource states. Cluster API core has implemented comprehensive condition tracking in v1beta2. Other providers like CAPV have successfully implemented similar condition patterns.
Proposed Implementation:
Add condition support to CAPT infrastructure resources starting with TinkerbellMachine. Initial conditions to consider implementing:
Ready: Indicates if the machine is fully provisioned and ready
HardwareReady: Indicates if hardware is available and configured
PowerStateReady: Indicates if BMC power operations completed successfully
Example Condition Structure:
const (
// Ready condition indicates the machine is fully provisioned
Ready = "Ready"
// HardwareReady indicates the Hardware is configured
HardwareReady = "HardwareReady"
// Additional conditions...
)
Benefits:
- Improved debugging and troubleshooting capabilities
- Consistent status reporting across CAPI ecosystem
- Enhanced user experience through clear state visibility
Tasks:
- Define relevant conditions for CAPT resources
- Implement condition handling in controllers
- Update status subresource with condition changes