Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Create a design-document for the controller (#181)
# Motivation I started some "R'n'D" (scare quotes intended) for implementing scale up, scale down, self-healing and so on and quickly realized, that the coding of the member add/member remove and similar steps is the more trivial part of the undertaking. The difficult part is coming up with a working algorithm that can correctly deduce the cluster's state and execute the necessary actions at the right time. To better reason about the controller's algorithm now, and to better develop it going forward, I feel it is important to have good documentation of the current design and the intended next steps, so I started with trying to document the current state of the code. # Results This document contains a mermaid flowchart that outlines the reconciliation loop. It is better viewed in [rendered form](https://github.com/aenix-io/etcd-operator/blob/docs/design/docs/DESIGN.md). Going forward, I envision this document to have at least three purposes: * Let the developers spot flaws and prompt them to open issues. * Act as a more detailed form of documentation for advanced users. * Be a blueprint for implementing anything non-trivial. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Updated the design document for the `EtcdCluster` custom resources with a detailed flowchart illustrating the reconciliation process and lifecycle management within a Kubernetes environment. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Hidden Marten <[email protected]> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
- Loading branch information