timothystewart6/k3s-ansible

The easiest way to bootstrap a self-hosted High Availability Kubernetes cluster. A fully automated HA k3s etcd install with kube-vip, MetalLB, and more....

View on GitHub ↗Jump to charts ↓Open shareable report →

Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 2 hours ago
Added to GitGenius on September 23rd, 2026
Created on March 26th, 2022
Open Issues & Pull Requests: 1 (+0)
GitHub issues: Enabled
Number of forks: 1,175
Total Stargazers: 3,017 (+0)
Total Subscribers: 48 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 38.3 days
Mean response time: 280.2 days
90th percentile: 876.1 days
Tracked items: 38

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 0
New in 7 days: 0
Closed in 7 days: 0
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (11)
  • wontfix (9)
  • CI (3)
  • bug (3)
  • good first issue (3)
  • documentation (1)
  • missing information (1)
  • verification (1)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

k3s-ansible is an Ansible collection that automates the deployment of a highly available Kubernetes cluster using k3s.

The tool addresses the complexity of setting up a production-grade, self-hosted Kubernetes cluster by automating the entire provisioning process. It uses Ansible playbooks to configure multiple nodes as a k3s cluster with high availability through etcd, employing kube-vip for control plane load balancing and supporting either MetalLB or kube-vip for service load balancing. The approach handles the configuration of CNI options and manages the cluster lifecycle through repeatable, idempotent playbooks.

The project suits teams deploying k3s on bare metal or virtual machines running Debian, Ubuntu, or Rocky Linux across x64, arm64, and armhf architectures. It is designed for operators who want to avoid manual cluster setup and prefer infrastructure-as-code approaches. The tool requires Ansible 2.11 or newer on the control node, passwordless SSH access to target nodes, and the netaddr Python package. Cluster configuration happens through inventory files and group variables, allowing customization of k3s version and networking options before deployment. The README emphasizes that all nodes must have unique hostnames, as k3s registers nodes by this identifier.

Development activity shows consistent engagement with the codebase through regular commits addressing both features and maintenance. The project maintains comprehensive documentation including a detailed blog post walkthrough and video guide, alongside structured contribution guidelines and testing infrastructure via Molecule for local validation. Pull requests receive timely review and integration, indicating active stewardship of the repository.