This quickstart helps to install a Kubernetes cluster hosted on GCE, Azure, OpenStack, AWS or Baremetal with Kargo tool.

Kargo is a composition of Ansible playbooks, inventory generation CLI tools and domain knowledge for generic OS/Kubernetes clusters configuration management tasks. It provides:

To choose a tool which fits your use case the best, you may want to read this comparison to kubeadm and kops.

Creating a cluster

(1/4) Ensure the underlay requirements are met


  • You must have cloud instances or baremetal nodes running for your future Kubernetes cluster. A way to achieve that is to use the kargo-cli tool.
  • Or provision baremetal hosts with a tool-of-your-choice or launch cloud instances, then create an inventory file for Ansible with this tool.

(2/4) Compose the deployment


  • Customize your deployment by usual Ansible meanings, which is generating inventory and overriding default data variables. Or just stick with default values (Kargo will choose Calico networking plugin for you then). This includes steps like deciding on the:
  • DNS configuration options
  • Networking plugin to use
  • Versions of components.
  • Additional node groups like bastion hosts or Calico BGP route reflectors.
  • Plan custom deployment steps, if any, or use the default composition layer in the cluster definition file. Taking the best from Ansible world, Kargo allows users to execute arbitrary steps via the ansible-playbook with given inventory, playbooks, data overrides and tags, limits, batches of nodes to deploy and so on.
  • For large deployments (100+ nodes), you may want to tweak things for best results.

(3/4) Run the deployment


(4/4) (Optional) verify inter-pods connectivity and DNS resolve with Netchecker


  • Ensure the netchecker-agent's pods can resolve DNS requests and ping each over within the default namespace. Those pods mimic similar behavior of the rest of the workloads and serve as cluster health indicators.

Explore contributed add-ons

See the list of contributed playbooks to explore other deployment options.

What's next

Kargo has quite a few marks on the radar.


To delete your scratch cluster, you can apply the reset role with the manual ansible-playbook command.

Note, that it is highly unrecommended to delete production clusters with the reset playbook!