Skip to content

Add Status Reporting to EtcdCluster #135

@ballista01

Description

@ballista01

Problem:

The current EtcdCluster custom resource (operator.etcd.io/v1alpha1) does not provide any status information about the managed etcd cluster. Users lack visibility into the actual state observed by the operator, such as:

  • How many etcd members are currently ready?
  • What is the etcd cluster's view of its membership size?
  • Is the cluster currently being created, scaled, running normally, or encountering issues?
  • What is the actual etcd version running?

This lack of status reporting significantly hinders observability, making it difficult to monitor cluster health, diagnose problems effectively, and build reliable automation around the EtcdCluster resource.

Proposal:

Introduce a status subresource for the EtcdCluster API (v1alpha1). This subresource should be populated by the EtcdClusterReconciler with key observed state information.

Suggested Status Fields (Initial Scope):

  • readyReplicas (int32): Number of ready etcd pods.
  • members (int32): Number of members reported by etcd cluster membership API.
  • phase (string): High-level operational phase (e.g., Pending, Creating, Running, Scaling, Failed, Degraded).
  • (Optional but Highly Desirable) conditions ([]metav1.Condition): Standard Kubernetes conditions for reporting detailed status like Available, Progressing, Degraded.
  • (Optional) currentVersion (string): Detected etcd version of the cluster members.

Expected Benefits:

  • Greatly improves observability of managed etcd clusters.
  • Enables easier monitoring and alerting based on EtcdCluster status.
  • Provides crucial information for debugging reconciliation issues.
  • Establishes the foundation for reporting the status of future complex operations (e.g., upgrades).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions