
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, and K3d Kubernetes distributions
- π¦ 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/overlock-network/overlock/refs/heads/main/scripts/install.sh" | sh
sudo mv overlock /usr/local/bin/
Specific version:
curl -sL "https://raw.githubusercontent.com/overlock-network/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/overlock-network/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 β - Providers β
β - K3d β - 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) β
β + 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 |
β
Any K8s |
β
Any K8s |
β οΈ Limited |
| 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