Overlock
Simplify Crossplane development and testing with a powerful CLI toolkit.
Overlock handles the complexity of setting up Crossplane environments, making it easy for developers to build, test, and deploy infrastructure-as-code solutions. Get a fully configured Crossplane environment running in minutes, not hours.
Table of Contents
Features
β‘ Quick Environment Setup - Create fully configured Crossplane environments with a single command
π― Multi-Engine Support - Works seamlessly with KinD, K3s, K3d, and K3s-Docker Kubernetes distributions
π₯οΈ Multi-Node & Remote Nodes - Add remote Linux machines as worker nodes via SSH to distribute Crossplane workloads across multiple hosts
π CPU Limits - Cap CPU usage per container node to keep your machine responsive during complex control plane development
π¦ Package Management - Install and manage Crossplane configurations, providers, and functions
π Live Development - Hot-reload support for local package development
ποΈ Registry Integration - Support for both local and remote package registries
π Plugin System - Extensible architecture for custom functionality
Quick Start
# Create a new Crossplane environment
overlock environment create my-dev-env
# Install a cloud provider (GCP example)
overlock provider install xpkg.upbound.io/crossplane-contrib/provider-gcp:v0.22.0
# Apply a configuration
overlock configuration apply xpkg.upbound.io/devops-toolkit/dot-application:v3.0.31
# List your environments
overlock environment list
That's it! You now have a fully functional Crossplane environment ready for development.
Installation
Prerequisites
Docker (required for creating Kubernetes clusters)
One of: KinD , K3s , or K3d (choose based on your preference)
Install Overlock
Latest version:
curl -sL "https://raw.githubusercontent.com/web-seven/overlock/refs/heads/main/scripts/install.sh" | sh
sudo mv overlock /usr/local/bin/
Specific version:
curl -sL "https://raw.githubusercontent.com/web-seven/overlock/refs/heads/main/scripts/install.sh" | sh -s -- -v 0.11.0-beta.11
sudo mv overlock /usr/local/bin/
Verify installation:
overlock --version
Building from Source
git clone https://github.com/web-seven/overlock.git
cd overlock
go build -o overlock ./cmd/overlock
See the Development Guide for detailed build instructions.
Documentation
User Guides
Developer Resources
Command Overview
Overlock organizes functionality into intuitive command groups:
Command
Alias
Description
environment
env
Create and manage Kubernetes environments
provider
prv
Install and manage cloud providers
configuration
cfg
Manage Crossplane configurations
function
fnc
Manage Crossplane functions
registry
reg
Configure package registries
resource
res
Create and manage custom resources
Use overlock <command> --help for detailed information on any command.
Architecture Overview
Overlock is built with a modular architecture designed for extensibility and maintainability:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Overlock CLI β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Environment Manager β Package Manager β
β - KinD β - Configurations β
β - K3s / K3d β - Providers β
β - K3s-Docker β - Functions β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Engine Manager β Registry Manager β
β - Crossplane Install β - Local Registries β
β - Helm Integration β - Remote Registries β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Resource Manager β Plugin System β
β - Custom Resources β - Dynamic Loading β
β - YAML Processing β - Extensibility β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββ
β Kubernetes Cluster β
β (KinD / K3s / K3d / K3s-Docker) β
β + Crossplane β
βββββββββββββββββββββββββββββββββββββββ
Key Components
CLI Framework : Kong-based command parsing with intuitive subcommands
Engine Management : Helm-based Crossplane installation and lifecycle
Environment Management : Multi-engine Kubernetes cluster operations
Package Management : Crossplane configurations, providers, and functions
Plugin System : Extensible architecture for custom functionality
For detailed architecture information, see the Development Guide .
Ecosystem Comparison
Feature
Overlock
kubectl + helm
Crossplane CLI
up CLI
Environment creation
β
Single command
β Manual setup
β Manual setup
β
Automated
Multi-engine support
β
KinD/K3s/K3d/K3s-Docker
β
Any K8s
β
Any K8s
β οΈ Limited
Hybrid environments
β
Local + remote nodes via SSH
β Manual
β No
β No
Package management
β
Built-in
β Manual
β
Limited
β
Built-in
Live reload dev
β
Yes
β No
β No
β οΈ Partial
Registry support
β
Local + Remote
β Manual
β οΈ Remote only
β
Yes
Environment lifecycle
β
Full control
β Manual
β Manual
β οΈ Limited
Plugin system
β
Yes
N/A
β No
β No
Why Overlock?
Overlock bridges the gap between simple kubectl/helm workflows and full-featured cloud platforms. It provides:
Faster setup than manual kubectl/helm configurations
More development-focused features than standard Crossplane CLI
Better local development experience than cloud-based solutions
Complete control over your development environment
Get Help & Connect
Contributing
We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.
Code of Conduct
We are committed to providing a welcoming and inclusive experience. Please read our Code of Conduct in CONTRIBUTING.md .
Credits
Overlock is built on top of excellent open-source projects:
Crossplane - The cloud native control plane framework
Kubernetes - Container orchestration platform
Helm - The Kubernetes package manager
KinD , K3s , K3d - Kubernetes engines
License
This project is licensed under the MIT License. See the LICENSE file for details.
Made with β€οΈ by the Overlock community