convoy docs
Search

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.

BinaryRole
convoy-apiserverThe aggregated API server for the convoy API groups.
convoy-controller-managerThe controllers for Cluster, the sources and Release.
convoy-observerDrift detection, health assessment and the on-demand subresources.
kubectl-convoyThe CLI plugin. See kubectl convoy.

See Components for how the binaries work together.

Flags that must match#

  • --shards must have the same value on all three server binaries.
  • --render-store-url must have the same value on the controller-manager and the observer.
  • --observer-url on the apiserver must reach the --serve-addr of 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:

FlagTypeDefaultDescription
--observer-urlstringDefault http://convoy-observer.convoy-system.svc:8080Base URL of the observer that /preview and /diff proxy to.
--shardsintDefault 32Fleet-wide shard count used to stamp the shard label. Must match the controllers' --shards.

convoy-controller-manager#

FlagTypeDefaultDescription
--kubeconfigstringDefault emptyPath to a kubeconfig file. Empty uses in-cluster config.
--resyncdurationDefault 2m0sInformer resync period; drives periodic re-probing of Clusters.
--workersintDefault 2Number of concurrent reconcile workers.
--shardsintDefault 32Fixed shard count S; work is partitioned by target cluster into S shards. Must match across the fleet.
--shard-scoped-cacheboolDefault falseCache only the owned shards' Releases/ReleaseInventories/Clusters so memory scales with replica count. Requires the shard label on those objects.
--render-store-urlstringDefault emptygocloud blob URL for durable render storage (e.g. s3://bucket, gs://bucket, file:///path). Empty disables render persistence/history.
--replica-idstringDefault emptyUnique shard-lease holder identity. Empty uses $POD_NAME, then the hostname.
--lease-namespacestringDefault emptyNamespace for sharding leases. Empty uses $POD_NAMESPACE, then "convoy-system".
--lease-durationdurationDefault 30sHow long a held shard lease is valid without renewal.
--lease-renew-intervaldurationDefault 10sHow often shard leases are renewed and ownership re-evaluated.

convoy-observer#

FlagTypeDefaultDescription
--kubeconfigstringDefault emptyPath to a kubeconfig file. Empty uses in-cluster config.
--resyncdurationDefault 2m0sInformer resync period; drives periodic drift re-checks.
--workersintDefault 2Number of concurrent drift-check workers.
--serve-addrstringDefault :8080Address for the on-demand HTTP server (/preview) the apiserver proxies to.
--shardsintDefault 32Fixed shard count S; work is partitioned by target cluster. Must match across the fleet.
--shard-scoped-cacheboolDefault falseCache only the owned shards' Releases/ReleaseInventories/Clusters so memory scales with replica count. Requires the shard label on those objects.
--render-store-urlstringDefault emptygocloud blob URL for the durable render store (must match the controller-manager's). Empty disables /history and historical /diff.
--replica-idstringDefault emptyUnique shard-lease holder identity. Empty uses $POD_NAME, then the hostname.
--lease-namespacestringDefault emptyNamespace for sharding leases. Empty uses $POD_NAMESPACE, then "convoy-system".
--lease-durationdurationDefault 30sHow long a held shard lease is valid without renewal.
--lease-renew-intervaldurationDefault 10sHow often shard leases are renewed and ownership re-evaluated.

Environment variables#

VariableUsed for
POD_NAMEThe shard lease identity when --replica-id is empty. Then the host name.
POD_NAMESPACEThe lease namespace when --lease-namespace is empty. Then convoy-system.

In the code

convoy v0.9.0