When running the werf converge command, werf starts the deployment process that includes the following steps:

  1. Rendering chart templates into a single list of Kubernetes resource manifests and validating them.
  2. Sequentially running pre-install or pre-upgrade hooks sorted by their weight and tracking each hook to completion while printing its logs in the process.
  3. Grouping non-hook Kubernetes resources by their weight and deploying each group sequentially according to its weight: creating/updating/deleting resources and tracking them until they are ready while printing logs in the process.
  4. Running post-install or post-upgrade hooks the same way as pre-install and pre-upgrade hooks.

Resource tracking

werf uses the kubedog library to track resources. Tracking behavior can be configured for each resource by setting resource annotations in the chart templates.

Multiple Kubernetes clusters

There are cases when separate Kubernetes clusters are required for a different environments. You can configure access to multiple clusters using kube contexts in a single kube config.

In that case, the --kube-context=CONTEXT deploy option should be set manually along with the environment.


During deploy process werf will render, create and track all resources of all subcharts.