explaingit

kubernetes-sigs/kubespray

Analysis updated 2026-06-21

18,476JinjaAudience · ops devopsComplexity · 5/5Setup · hard

TLDR

A collection of Ansible automation scripts that set up a production-ready Kubernetes cluster on almost any cloud or bare-metal server with one command.

Mindmap

mindmap
  root((kubespray))
    What it does
      Deploy Kubernetes
      Ansible automation
      High availability setup
    Cloud support
      AWS and GCP
      Azure and OpenStack
      Bare metal
    Features
      Network plugins
      Storage plugins
      Add-on apps
    Audience
      DevOps engineers
      Platform teams
    Requirements
      Ansible 2.14 plus
      Python netaddr
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Deploy a highly available Kubernetes cluster on AWS or Google Cloud using Ansible without manually configuring each node

USE CASE 2

Set up a Kubernetes cluster on bare-metal servers in your own data center using Kubespray's automation playbooks

USE CASE 3

Spin up a local test Kubernetes cluster using Vagrant before running the same playbooks against production infrastructure

USE CASE 4

Configure Cilium or Calico as the network plugin for a new Kubernetes cluster during initial deployment

What is it built with?

JinjaAnsiblePythonDocker

How does it compare?

kubernetes-sigs/kubespraynetbootxyz/netboot.xyzeaszlab/kubeasz
Stars18,47611,76511,362
LanguageJinjaJinjaJinja
Setup difficultyhardmoderatehard
Complexity5/53/54/5
Audienceops devopsops devopsops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires Ansible 2.14+, Python netaddr, and target servers with internet access, not suitable for quick local experiments.

License information was not mentioned in the explanation.

In plain English

Kubespray is a set of Ansible playbooks for deploying a production-ready Kubernetes cluster. Ansible is an automation tool that runs tasks on remote machines via SSH, a playbook is a file describing what those tasks should be. Kubernetes is a system for running and managing containerized applications across a group of servers. The key advantage Kubespray offers is flexibility. It can deploy Kubernetes on AWS, Google Cloud Engine, Azure, OpenStack, vSphere, Equinix Metal bare-metal servers, Oracle Cloud Infrastructure, or plain bare metal, and it supports a long list of Linux distributions including Debian, Ubuntu, CentOS Stream, RHEL, Fedora, Fedora CoreOS, openSUSE, Oracle Linux, Alma Linux, and Rocky Linux. The cluster it creates is highly available, meaning it is set up so that the failure of individual machines does not bring down the whole system. Network plugins are configurable, with support for calico, cilium, flannel, kube-ovn, kube-router, multus, and kube-vip. Several storage plugins and additional applications like cert-manager, CoreDNS, ArgoCD, Helm, and MetalLB are also handled. Requirements include Ansible version 2.14 or newer, Python's netaddr library, and target servers that have internet access to pull container images. The minimum supported Kubernetes version is 1.30. Installation can be done via Docker, Ansible directly, or Vagrant for local testing.

Copy-paste prompts

Prompt 1
Walk me through using Kubespray to deploy a highly available Kubernetes cluster on 3 AWS EC2 instances, including how to set up the Ansible inventory file
Prompt 2
How do I use Kubespray to add a new worker node to an existing Kubernetes cluster without disrupting running workloads?
Prompt 3
I want to deploy Kubernetes on bare-metal Ubuntu servers using Kubespray. What are the prerequisites and what does the inventory file look like?
Prompt 4
How do I configure Kubespray to use Cilium as the network plugin instead of the default Calico?
Prompt 5
Show me how to use Vagrant with Kubespray to create a local multi-node Kubernetes cluster for testing purposes

Frequently asked questions

What is kubespray?

A collection of Ansible automation scripts that set up a production-ready Kubernetes cluster on almost any cloud or bare-metal server with one command.

What language is kubespray written in?

Mainly Jinja. The stack also includes Jinja, Ansible, Python.

What license does kubespray use?

License information was not mentioned in the explanation.

How hard is kubespray to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is kubespray for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub kubernetes-sigs on gitmyhub

Verify against the repo before relying on details.