etcd-io / etcd-io/etcd-operator
Add Status Reporting to EtcdCluster
- Dominant language
- Go
- Stars
- 164
- Forks
- 72
- Avg merge
- 22h 46m
- Merged PRs (30d)
- 34
Description
**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).
Contributor guide
Assessment
This issue has not been assessed yet.