Instead of telling the computer what to do,
you tell it what you want
Kubernetes API Server ^ | Watches | Metacontroller | | POSTs v Your Controller
+---------+ +-----------+ +-----------------+ +-------------------+ +-----------+
| kubectl | | APIServer | | Metacontroller | | UpDownController | | UpDown.io |
+---------+ +-----------+ +-----------------+ +-------------------+ +-----------+
| | | | |
| kubectl apply -f updowncheck.yaml | | | |
|--------------------------------------------->| | | |
| | | | |
| kubectl apply -f updowncontroller.yaml | | | |
|--------------------------------------------->| | | |
| | | | |
| | Begin polling for updownchecks | | |
| |<---------------------------------------------| | |
| | | | |
| kubectl apply -f udc-google.com.yaml | | | |
|--------------------------------------------->| | | |
| | | | |
| | gets udc-google.com | | |
| |<---------------------------------------------| | |
| | | | |
| | | curl updowncontroller.local/sync | |
| | |------------------------------------------->| |
| | | | |
| | | | create check |
| | | |------------------->|
| | | | |
| | | | 200 OK |
| | | |<-------------------|
| | | | |
| | | 200 OK, with status JSON | |
| | |<-------------------------------------------| |
| | | | |
| | Updates status body on CRD instance | | |
| |<---------------------------------------------| | |
| | | | |