# alexellis/k3sup

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/alexellis-k3sup).**

7,393 stars · 432 forks · Go · NOASSERTION

## Links

- GitHub: https://github.com/alexellis/k3sup
- Homepage: https://github.com/sponsors/alexellis
- awesome-repositories: https://awesome-repositories.com/repository/alexellis-k3sup.md

## Topics

`cloud` `cloud-native` `devops` `devtools` `edge` `go` `k3s` `k8s` `kubernetes` `raspberry-pi` `vm`

## Description

k3sup is a command-line tool that installs and manages lightweight Kubernetes clusters entirely over SSH, without requiring any pre-installed software on the target machines. It bootstraps clusters on remote hosts using a single statically-linked binary, then provides immediate kubectl access by fetching and merging the cluster's admin credentials into the local configuration. The tool supports plan-driven cluster topology, allowing users to define node roles and configuration in a YAML file for automated multi-node deployment.

The tool distinguishes itself by enabling parallel execution of installation and management commands across all specified hosts, minimizing setup time for multi-node clusters. It supports building highly available clusters with multi-master control planes using embedded etcd or external SQL datastores, and can add worker nodes to an existing cluster over SSH. k3sup also handles cluster teardown in the correct order, and can run arbitrary shell commands simultaneously on every node in a cluster.

Beyond cluster lifecycle management, the tool includes capabilities for verifying cluster readiness by checking that all nodes report a Ready status. The project provides cross-platform binary compilation for Linux, macOS, and Windows across multiple architectures, along with automated code quality checks including formatting verification and unit test coverage reporting.

## Tags

### DevOps & Infrastructure

- [Lightweight Cluster Provisioning](https://awesome-repositories.com/f/devops-infrastructure/lightweight-cluster-provisioning.md) — Command-line tool that installs and manages lightweight Kubernetes clusters over SSH with a single command.
- [SSH-Based Cluster Orchestrators](https://awesome-repositories.com/f/devops-infrastructure/managed-cluster-orchestration/test-cluster-deployers/ssh-based-cluster-orchestrators.md) — Installs Kubernetes by executing commands over SSH on remote hosts without requiring any pre-installed software.
- [Cluster Bootstrapping](https://awesome-repositories.com/f/devops-infrastructure/cluster-bootstrapping.md) — Bootstraps lightweight Kubernetes clusters on remote VMs over SSH with immediate kubectl access. ([source](https://github.com/alexellis/k3sup/blob/master/README.md))
- [Cluster Lifecycle Management](https://awesome-repositories.com/f/devops-infrastructure/cluster-lifecycle-management.md) — Command-line utility that installs, joins workers, retrieves kubeconfig, and uninstalls K3s clusters over SSH.
- [YAML Plan-Driven Topologies](https://awesome-repositories.com/f/devops-infrastructure/cluster-node-management/custom-multi-node-cluster-creators/yaml-plan-driven-topologies.md) — Defines a cluster topology in a YAML plan file and applies it in parallel across multiple hosts. ([source](https://github.com/alexellis/k3sup/blob/master))
- [Parallel Multi-Node Operations](https://awesome-repositories.com/f/devops-infrastructure/cluster-node-management/parallel-multi-node-operations.md) — Adds workers, builds HA control planes, and uninstalls clusters across many hosts in parallel.
- [SSH-Based Kubeconfig Retrievals](https://awesome-repositories.com/f/devops-infrastructure/kubeconfig-management-tools/multi-kubeconfig-loaders/ssh-based-kubeconfig-retrievals.md) — Fetches the cluster's admin credentials over SSH and merges them into the local kubectl configuration.
- [Kubernetes Cluster Deployments](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-cluster-deployments.md) — Reads a JSON host definition and a YAML plan to install or update a Kubernetes cluster in parallel. ([source](https://github.com/alexellis/k3sup/blob/master/README.md))
- [SSH-Based Kubeconfig Retrievals](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-cluster-management/kubeconfig-generation/ssh-based-kubeconfig-retrievals.md) — Fetches the kubeconfig file from a running K3s installation and merges it into the local configuration. ([source](https://github.com/alexellis/k3sup/blob/master))
- [Lightweight Kubernetes Distributions](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-cluster-management/kubernetes-specific-distributions/lightweight-kubernetes-distributions.md) — CLI that deploys, scales, and removes K3s clusters with embedded etcd or external SQL datastores.
- [Installation Script Invocations](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-cluster-management/kubernetes-specific-distributions/lightweight-kubernetes-distributions/installation-script-invocations.md) — Directly invokes the K3s installation script and configuration tools over SSH.
- [SSH-Based Node Provisioning](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-node-provisioning/ssh-based-node-provisioning.md) — Bootstraps, joins, and manages Kubernetes nodes entirely through SSH without a local Kubernetes client.
- [Kubernetes SSH Installers](https://awesome-repositories.com/f/devops-infrastructure/ssh-deployment-tools/ssh-based-application-management/kubernetes-ssh-installers.md) — Bootstraps K3s nodes and joins workers entirely over SSH without manual configuration.
- [Orderly Cluster Removals](https://awesome-repositories.com/f/devops-infrastructure/cluster-node-management/orderly-cluster-removals.md) — Removes K3s from every node in a cluster in the correct order, using a plan file or direct parameters. ([source](https://github.com/alexellis/k3sup/blob/master))
- [High Availability Clustering](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clustering.md) — Sets up multi-master Kubernetes clusters with embedded etcd or external SQL datastores for resilience. ([source](https://github.com/alexellis/k3sup/blob/master/README.md))
- [Embedded Datastore High Availability](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clustering/embedded-datastore-high-availability.md) — Creates a multi-master K3s cluster using embedded etcd or an external SQL datastore for resilience. ([source](https://github.com/alexellis/k3sup/blob/master))
- [Automatic Kubeconfig Injections](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-cluster-management/kubeconfig-generation/automatic-kubeconfig-injections.md) — Automatically fetches and merges the kubeconfig from a running K3s installation for immediate kubectl access. ([source](https://github.com/alexellis/k3sup/blob/master/README.md))
- [SSH-Based Cluster Teardowns](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-cluster-provisioning/cluster-destructions/ssh-based-cluster-teardowns.md) — Removes K3s from all nodes in the correct order using SSH credentials or plan files. ([source](https://github.com/alexellis/k3sup/blob/master/README.md))
- [Plan-Driven Provisioners](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-provisioners/plan-driven-provisioners.md) — Reads a YAML plan to install or update K3s across many servers in parallel over SSH.
- [Remote Command Execution](https://awesome-repositories.com/f/devops-infrastructure/remote-command-execution.md) — Executes a specified command on every server or agent in the cluster simultaneously over SSH. ([source](https://github.com/alexellis/k3sup/blob/master/README.md))
- [Cluster-Wide Command Executions](https://awesome-repositories.com/f/devops-infrastructure/remote-command-execution/cluster-wide-command-executions.md) — Executes a shell command on every server or agent in a cluster simultaneously over SSH. ([source](https://github.com/alexellis/k3sup/blob/master))
- [Automated Node Joining](https://awesome-repositories.com/f/devops-infrastructure/worker-node-management/private-worker-node-provisioning/automated-node-joining.md) — Adds worker nodes to an existing K3s cluster by connecting over SSH to each new host. ([source](https://github.com/alexellis/k3sup/blob/master/README.md))

### Development Tools & Productivity

- [Idempotent Installers](https://awesome-repositories.com/f/development-tools-productivity/installation-scripts/idempotent-installers.md) — Ensures repeated runs produce the same cluster state without duplicating resources.
- [Parallel Command Execution](https://awesome-repositories.com/f/development-tools-productivity/parallel-command-execution.md) — Runs installation and management commands concurrently across all specified hosts.
- [Single-Binary Distributions](https://awesome-repositories.com/f/development-tools-productivity/single-binary-distributions.md) — Delivers the entire tool as a single statically-linked Go binary with no runtime dependencies.

### Security & Cryptography

- [Cluster Credential Exports](https://awesome-repositories.com/f/security-cryptography/identity-access-management/credential-lifecycle-management/credential-security/credential-exporting/cluster-credential-exports.md) — Fetches the kubeconfig from a running Kubernetes installation and merges it into the local configuration file. ([source](https://github.com/alexellis/k3sup))
- [Cluster Node Joins](https://awesome-repositories.com/f/security-cryptography/machine-identity/enrollment-management/cluster-node-joins.md) — Joins additional machines as agents to an existing Kubernetes server over SSH, expanding compute capacity. ([source](https://github.com/alexellis/k3sup))
