Getting Started
Welcome to sloth-kubernetes - the multi-cloud Kubernetes deployment platform that fits in a single binary.
What is sloth-kubernetes?
sloth-kubernetes is a CLI tool that deploys production-ready Kubernetes clusters across multiple cloud providers with:
- Zero external dependencies - Single binary includes Pulumi, Salt, and kubectl
- Multi-cloud support - AWS, DigitalOcean, Linode, Azure (GCP coming soon)
- Lisp-based configuration - Dynamic, readable configs with 70+ built-in functions
- Enterprise features - State management, audit logging, config versioning, manifest tracking
- Automatic networking - WireGuard VPN mesh across all providers
Quick Installation
# One-line install (Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/chalkan3/sloth-kubernetes/main/install.sh | bash
# Verify
sloth-kubernetes version
Other platforms: See Installation Guide for Windows, manual install, and building from source.
5-Minute Quick Start
1. Set credentials:
export DIGITALOCEAN_TOKEN="your-token"
export PULUMI_CONFIG_PASSPHRASE="your-passphrase"
2. Create cluster.lisp:
(cluster
(metadata (name "my-cluster") (environment "dev"))
(providers (digitalocean (enabled true) (region "nyc3")))
(network (mode "wireguard") (wireguard (enabled true) (create true) (mesh-networking true)))
(node-pools
(main
(name "main")
(provider "digitalocean")
(region "nyc3")
(count 1)
(roles master etcd worker)
(size "s-4vcpu-8gb")))
(kubernetes (distribution "k3s")))
3. Deploy:
sloth-kubernetes deploy my-cluster --config cluster.lisp
4. Use:
sloth-kubernetes kubectl my-cluster get nodes
Full guide: Quick Start
Why sloth-kubernetes?
| Challenge | sloth-kubernetes Solution |
|---|---|
| Multiple tools required (Terraform, kubectl, helm, etc.) | Single binary with everything embedded |
| Static configuration files | Dynamic Lisp configs with env vars, conditionals, functions |
| Vendor lock-in | Multi-cloud support with same config format |
| State management complexity | Pulumi state as database with full audit trail |
| Networking across providers | Automatic WireGuard VPN mesh |
How It Works
┌────────────────────────────────────────────────────────────────┐
│ sloth-kubernetes CLI │
│ (Single Binary) │
├────────────────────────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ Lisp │ │ Pulumi │ │ Salt │ │ kubectl │ │
│ │ Config │ │ Engine │ │ Master │ │ Embedded │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────────┘ │
├────────────────────────────────────────────────────────────────┤
│ Cloud Providers (AWS, DO, Linode, Azure) │
├─────────── ─────────────────────────────────────────────────────┤
│ WireGuard VPN Mesh | RKE2/K3s | Node Management │
└────────────────────────────────────────────────────────────────┘
What You'll Learn
In this section:
- Installation - Install on Linux, macOS, or Windows
- Quick Start - Deploy your first cluster in 5 minutes
After getting started:
- User Guide - All CLI commands and workflows
- Configuration - Complete Lisp syntax reference
- Built-in Functions - 70+ functions for dynamic configs
- Examples - Multi-cloud and production configurations
- FAQ - Common questions answered
Prerequisites
Required
-
Cloud provider account with API credentials:
- DigitalOcean - Easiest to start
- Linode
- AWS - IAM credentials
- Azure - Service principal
-
Terminal - Command-line access (bash, zsh, PowerShell)
Optional (but embedded)
- kubectl - Embedded in sloth-kubernetes
- Pulumi - Embedded in sloth-kubernetes
- Salt - Automatically configured
Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Ready to get started? Head to the Quick Start Guide to deploy your first cluster.