# k3s-io/k3s-ansible

**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/k3s-io-k3s-ansible).**

2,705 stars · 946 forks · YAML · apache-2.0

## Links

- GitHub: https://github.com/k3s-io/k3s-ansible
- awesome-repositories: https://awesome-repositories.com/repository/k3s-io-k3s-ansible.md

## Description

k3s-ansible is a set of playbooks and tools for automating the deployment, orchestration, and lifecycle management of lightweight Kubernetes clusters. It functions as a provisioning tool that installs and configures these environments across multiple Linux nodes using a declarative approach.

The project provides specialized support for high-availability configurations using either embedded etcd or external datastores. It also includes mechanisms for air-gapped installations, allowing the distribution of binaries and container images from a local directory to nodes without internet access.

The toolset covers a broad range of operational capabilities, including node provisioning, worker node integration, and cluster network configuration. It manages the cluster lifecycle through version-driven upgrade mechanisms and utilities for retrieving and merging remote configuration files for administrative access.

The system supports diverse Linux distributions and CPU architectures through conditional task abstractions.

## Tags

### DevOps & Infrastructure

- [Configuration Playbook Execution](https://awesome-repositories.com/f/devops-infrastructure/infrastructure/infrastructure-as-code/management/infrastructure-orchestration/remote-execution-configurations/configuration-playbook-execution.md) — Utilizes idempotent Ansible playbooks to automate the deployment and system configuration of lightweight Kubernetes clusters.
- [Lightweight Cluster Provisioning](https://awesome-repositories.com/f/devops-infrastructure/lightweight-cluster-provisioning.md) — Provides automated deployment of lightweight K3s Kubernetes environments across multiple Linux nodes. ([source](https://github.com/k3s-io/k3s-ansible#readme))
- [Cluster Lifecycle Management](https://awesome-repositories.com/f/devops-infrastructure/cluster-lifecycle-management.md) — Manages the full operational lifecycle of the cluster, including version upgrades and administrative access control.
- [Container Cluster Deployments](https://awesome-repositories.com/f/devops-infrastructure/container-cluster-deployments.md) — Automates the initial installation and configuration of lightweight container orchestration environments across multiple nodes. ([source](https://github.com/k3s-io/k3s-ansible#readme))
- [Control Plane Deployment Tools](https://awesome-repositories.com/f/devops-infrastructure/control-plane-deployment-tools.md) — Automates the bootstrapping of the primary orchestration control plane on designated servers using roles and playbooks. ([source](https://github.com/k3s-io/k3s-ansible#readme))
- [High Availability Clustering](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clustering.md) — Coordinates multiple server nodes to ensure continuous cluster availability and fault tolerance. ([source](https://github.com/k3s-io/k3s-ansible#readme))
- [Cluster Orchestrators](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clustering/cluster-orchestrators.md) — Provides a configuration system to orchestrate multi-server high-availability K3s clusters.
- [Embedded Datastore High Availability](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clustering/embedded-datastore-high-availability.md) — Implements high-availability configurations using an embedded etcd datastore across multiple server nodes.
- [Kubernetes Deployments](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-deployments.md) — Automates the installation and configuration of lightweight Kubernetes environments across server and agent nodes.
- [Ansible Provisioners](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-deployments/ansible-provisioners.md) — Provides a specialized Ansible-based framework to configure and install Kubernetes components across Linux nodes.
- [Worker Node Management](https://awesome-repositories.com/f/devops-infrastructure/worker-node-management.md) — Automates the integration and configuration of additional machines as worker nodes within an existing cluster. ([source](https://github.com/k3s-io/k3s-ansible#readme))
- [Local Binary Distributions](https://awesome-repositories.com/f/devops-infrastructure/binary-distribution/local-binary-distributions.md) — Provides a mechanism to distribute installation binaries and container images from a local controller to nodes for air-gapped setups.
- [High Availability Clusters](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clusters.md) — Configures multi-server clusters with embedded etcd for high availability and automatic failover.
- [Air-Gapped Deployments](https://awesome-repositories.com/f/devops-infrastructure/infrastructure-deployment/infrastructure-deployment/air-gapped-deployments.md) — Supports the installation of clusters in restricted environments by providing specific configurations for air-gapped deployments.
- [Rolling](https://awesome-repositories.com/f/devops-infrastructure/version-upgrades/rolling.md) — Provides a mechanism to apply cluster-wide software updates in a rolling fashion via a single variable.

### Development Tools & Productivity

- [Node Software Provisioning](https://awesome-repositories.com/f/development-tools-productivity/development-environment-management/environment-provisioning-configuration/virtual-machine-provisioning/node-software-provisioning.md) — Prepares both control-plane and worker nodes by installing required dependencies and networking stacks. ([source](https://github.com/k3s-io/k3s-ansible#readme))

### Networking & Communication

- [Infrastructure Role Assignments](https://awesome-repositories.com/f/networking-communication/node-role-configurations/infrastructure-role-assignments.md) — Defines node roles via static Ansible inventory files to create flexible cluster topologies without manual per-node configuration.
- [Cluster Network Orchestration](https://awesome-repositories.com/f/networking-communication/cluster-network-orchestration.md) — Includes utilities to apply service and network configurations to ensure reliable communication between cluster nodes. ([source](https://github.com/k3s-io/k3s-ansible#readme))

### Security & Cryptography

- [Role-Based Server Targeting](https://awesome-repositories.com/f/security-cryptography/role-based-access-control/role-based-server-targeting.md) — Uses static inventory files to assign server or agent roles to specific nodes, controlling the distribution of cluster tasks.

### Data & Databases

- [External Datastore Configurations](https://awesome-repositories.com/f/data-databases/external-datastore-configurations.md) — Supports connecting the cluster to an external datastore for centralized state management. ([source](https://github.com/k3s-io/k3s-ansible#readme))

### Operating Systems & Systems Programming

- [Multi-Architecture Support](https://awesome-repositories.com/f/operating-systems-systems-programming/multi-architecture-support.md) — Ensures compatibility across diverse CPU architectures and Linux distributions through a conditional task abstraction layer.

### System Administration & Monitoring

- [Cluster Version Updaters](https://awesome-repositories.com/f/system-administration-monitoring/software-version-managers/cluster-version-updaters.md) — Enables rolling software updates across all cluster nodes by updating a single version string in the configuration.
