convox/pkg/atom/README.md
David Dollar 50ea56855f
atom: tighten up and document state machine (#45)
* atom: tighten up and document state machine

* remove dead code

* fix k8s tests
2019-12-06 13:44:30 -05:00

3.7 KiB

atom

Transactional updates and rollbacks of Kubernetes objects

State Machine

                                        ┌ ─ ─ ─ updating  ─ ─ ┐

                                        │  ┌───────────────┐  │
                                           │    Pending    │◀───────────────────────────────┐
                                        │  └───────┬───────┘  │                             │
                                                   ▼                                        │
                                        │  ┌───────────────┐  │                             │
                                           │   Updating    ├──────────────────┐             │
                                        │  └───────┬───────┘  │               │             │
                                                   │                          │             │
                                        └ ─ ─ ─ ─ ─│─ ─ ─ ─ ─ ┘               │             │
                                                   │                          │             │
           ┌───────────────────┬───────────────────┤                          │             │
┌ ─ ─ ─ ─ ─│─ ─ ─ ─ ─ ─ ─ ─ ─ ─│─ ─ ─ ─ ─ ─ ─ ─ ─ ─│─ ─ ─ ─ ─ ┐    ┌ ─ ─ ─ ─ ─│─ ─ ─ ─ ─ ┐  │
           ▼                   ▼                   ▼                          ▼             │
│  ┌───────────────┐   ┌───────────────┐   ┌───────────────┐  │    │  ┌───────────────┐  │  │
   │   Cancelled   │   │   Deadline    │   │     Error     │          │    Running    ├─────┤
│  └───────┬───────┘   └───────┬───────┘   └───────┬───────┘  │    │  └───────────────┘  │  │
           │                   │                   │                                        │
│          └───────────────────┼───────────────────┘          │    │  ┌───────────────┐  │  │
                               ▼                                 ┌───▶│   Reverted    ├─────┤
│                      ┌───────────────┐                      │  │ │  └───────────────┘  │  │
                       │   Rollback    ├─────────────────────────┤                          │
│                      └───────────────┘                      │  │ │  ┌───────────────┐  │  │
                                                                 └───▶│    Failure    ├─────┘
└ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ rollback  ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘    │  └───────────────┘  │

                                                                   └ ─ ─ ─ running ─ ─ ─ ┘