Binaries and flags
The convoy binaries and the command-line flags of each one.
convoy has three server binaries and a kubectl plugin. The flag tables on this page come from
the flag definitions in the convoy source.
| Binary | Role |
|---|---|
convoy-apiserver | The aggregated API server for the convoy API groups. |
convoy-controller-manager | The controllers for Cluster, the sources and Release. |
convoy-observer | Drift detection, health assessment and the on-demand subresources. |
kubectl-convoy | The CLI plugin. See kubectl convoy. |
See Components for how the binaries work together.
Flags that must match#
--shardsmust have the same value on all three server binaries.--render-store-urlmust have the same value on the controller-manager and the observer.--observer-urlon the apiserver must reach the--serve-addrof the observer.
convoy-apiserver#
The apiserver also accepts the standard flags of a Kubernetes aggregated API server, for example
the etcd, authentication, authorization and secure serving flags. Run convoy-apiserver --help
for the full list. The convoy flags are:
| Flag | Type | Default | Description |
|---|---|---|---|
--observer-url | string | Default http://convoy-observer.convoy-system.svc:8080 | Base URL of the observer that /preview and /diff proxy to. |
--shards | int | Default 32 | Fleet-wide shard count used to stamp the shard label. Must match the controllers' --shards. |
convoy-controller-manager#
| Flag | Type | Default | Description |
|---|---|---|---|
--kubeconfig | string | Default empty | Path to a kubeconfig file. Empty uses in-cluster config. |
--resync | duration | Default 2m0s | Informer resync period; drives periodic re-probing of Clusters. |
--workers | int | Default 2 | Number of concurrent reconcile workers. |
--shards | int | Default 32 | Fixed shard count S; work is partitioned by target cluster into S shards. Must match across the fleet. |
--shard-scoped-cache | bool | Default false | Cache only the owned shards' Releases/ReleaseInventories/Clusters so memory scales with replica count. Requires the shard label on those objects. |
--render-store-url | string | Default empty | gocloud blob URL for durable render storage (e.g. s3://bucket, gs://bucket, file:///path). Empty disables render persistence/history. |
--replica-id | string | Default empty | Unique shard-lease holder identity. Empty uses $POD_NAME, then the hostname. |
--lease-namespace | string | Default empty | Namespace for sharding leases. Empty uses $POD_NAMESPACE, then "convoy-system". |
--lease-duration | duration | Default 30s | How long a held shard lease is valid without renewal. |
--lease-renew-interval | duration | Default 10s | How often shard leases are renewed and ownership re-evaluated. |
convoy-observer#
| Flag | Type | Default | Description |
|---|---|---|---|
--kubeconfig | string | Default empty | Path to a kubeconfig file. Empty uses in-cluster config. |
--resync | duration | Default 2m0s | Informer resync period; drives periodic drift re-checks. |
--workers | int | Default 2 | Number of concurrent drift-check workers. |
--serve-addr | string | Default :8080 | Address for the on-demand HTTP server (/preview) the apiserver proxies to. |
--shards | int | Default 32 | Fixed shard count S; work is partitioned by target cluster. Must match across the fleet. |
--shard-scoped-cache | bool | Default false | Cache only the owned shards' Releases/ReleaseInventories/Clusters so memory scales with replica count. Requires the shard label on those objects. |
--render-store-url | string | Default empty | gocloud blob URL for the durable render store (must match the controller-manager's). Empty disables /history and historical /diff. |
--replica-id | string | Default empty | Unique shard-lease holder identity. Empty uses $POD_NAME, then the hostname. |
--lease-namespace | string | Default empty | Namespace for sharding leases. Empty uses $POD_NAMESPACE, then "convoy-system". |
--lease-duration | duration | Default 30s | How long a held shard lease is valid without renewal. |
--lease-renew-interval | duration | Default 10s | How often shard leases are renewed and ownership re-evaluated. |
Environment variables#
| Variable | Used for |
|---|---|
POD_NAME | The shard lease identity when --replica-id is empty. Then the host name. |
POD_NAMESPACE | The lease namespace when --lease-namespace is empty. Then convoy-system. |
In the code
convoy v0.9.0
internal/apiserver.NewOptionsinternal/apiserver/options.go:60internal/controllermanager.NewOptionsinternal/controllermanager/manager.go:122internal/observermanager.NewOptionsinternal/observermanager/manager.go:115