Skip to main content

sloth-kubernetes

Multi-Cloud Kubernetes Orchestration in a Single Binary

Deploy secure, production-grade Kubernetes clusters across DigitalOcean, Linode, AWS, Azure, and GCP with unified configuration, automated orchestration, and zero external dependencies.

Get Started | View on GitHub


What is sloth-kubernetes?

sloth-kubernetes eliminates the complexity of multi-cloud Kubernetes deployment by embedding infrastructure provisioning, configuration management, and Kubernetes tooling into a single binary. No Pulumi CLI, no Terraform, no Ansible - just one executable.

Five Essential Tools, Zero Dependencies

ToolDescription
Pulumi Automation APIInfrastructure as Code embedded in the binary. No external Pulumi CLI required.
SaltStack Integration100+ remote operations for node management, including cmd.run, pkg.install, service.restart.
kubectl EmbeddedComplete Kubernetes CLI built-in. Manage workloads through sloth-kubernetes kubectl.
Helm SupportChart management and deployments. Install, upgrade, rollback Helm releases.
KustomizeConfiguration customization for Kubernetes manifests.

Complete Feature Set

Multi-Cloud Infrastructure

Deploy across 5 cloud providers with unified LISP configuration:

  • DigitalOcean - Droplets, VPCs, Floating IPs, Cloud Firewalls
  • Linode - Instances, VLANs, NodeBalancers
  • AWS - EC2, VPC, Route53
  • Azure - VMs, VNets, Load Balancers
  • GCP - Compute Engine, VPC, Cloud DNS

Security-First Architecture

Bastion Host

  • SSH jump host for private cluster access
  • MFA support via Google Authenticator
  • Complete SSH session audit logging

WireGuard VPN Mesh

  • Automatic WireGuard tunnel creation between all nodes
  • Full mesh topology for HA and performance
  • Private IP routing across cloud providers

Hardened Kubernetes

  • CIS Kubernetes Benchmark alignment
  • RBAC enabled by default
  • Network Policies for pod isolation

50+ CLI Commands

# Cluster Lifecycle
sloth-kubernetes deploy --config cluster.lisp
sloth-kubernetes destroy
sloth-kubernetes preview

# Node Management
sloth-kubernetes nodes list
sloth-kubernetes nodes ssh <name>
sloth-kubernetes nodes add --pool workers --count 2

# Stack Operations
sloth-kubernetes stacks list
sloth-kubernetes stacks info
sloth-kubernetes stacks select <name>

# SaltStack (100+ operations)
sloth-kubernetes salt ping
sloth-kubernetes salt cmd.run "uptime"
sloth-kubernetes salt pkg.install nginx

# Kubernetes Tools
sloth-kubernetes kubectl get nodes
sloth-kubernetes helm install nginx bitnami/nginx

Quick Start

Installation

curl -fsSL https://raw.githubusercontent.com/chalkan3/sloth-kubernetes/main/install.sh | bash

Deploy Your First Cluster

(cluster
(metadata
(name "production")
(environment "production"))

(providers
(digitalocean
(enabled true)
(token "${DIGITALOCEAN_TOKEN}")
(region "nyc3")))

(node-pools
(masters
(name "masters")
(provider "digitalocean")
(count 3)
(roles master etcd)
(size "s-2vcpu-4gb"))
(workers
(name "workers")
(provider "digitalocean")
(count 5)
(roles worker)
(size "s-4vcpu-8gb")))

(kubernetes
(distribution "rke2")
(version "v1.29.0+rke2r1")))
export DIGITALOCEAN_TOKEN="your-digitalocean-token"
sloth-kubernetes deploy --config cluster.lisp

Comparison Matrix

Featuresloth-kubernetesTerraform + AnsibleRaw PulumiRancher
Single Binary✅ All-in-one❌ 3+ tools❌ Requires CLI❌ Server required
kubectl Embedded✅ Built-in❌ External❌ External✅ Web UI
Multi-Cloud VPN✅ Automated⚠️ Manual⚠️ Manual❌ Not included
SaltStack✅ 100+ ops
GitOps (ArgoCD)✅ Integrated⚠️ Separate⚠️ Separate⚠️ Fleet

Next Steps