Architecture
How convoy is built, for contributors and operators.
These pages describe how the convoy components work inside: the process boundaries, the status ownership, the reconcile code path, storage and sharding. For the behavior that users see, read Concepts first.
- Components
The three convoy binaries and the kubectl plugin, what each one owns, and how they communicate.
- Status ownership
Which component writes each status field and each ReleaseInventory field, and the Server-Side Apply field manager that it uses.
- Reconcile flow
The code path of one Release reconcile in the controller-manager, and the observer loops that work with it.
- Health loop
How the HealthController of the observer assesses the ReleaseInventory, writes health, polls hooks and wakes the controller.
- Render storage
How the controller-manager writes renders and their history to an object store, and how the observer reads them.
- Sharding
How convoy divides the reconcile work between replicas with shard leases, for high availability and for scale.
- Shard-scoped caches
How --shard-scoped-cache makes each replica cache only the objects of its own shards.
- Rollout state machine
How the release controller decides the rollout state, the verdict and the rollback in each reconcile.
- Cluster auth providers
How convoy builds the connection to a target cluster and how the source controllers authenticate.