Overlock is a lightweight CLI tool designed to simplify the management of Crossplane resources and environments. It supports KinD, K3s, and K3d clusters, making it ideal for local development and testing of Crossplane configurations, providers and functions.
- Easily manage Crossplane environments: Create and manage Crossplane environments for local development or testing purposes.
- Supports multiple cluster types: Works with KinD, K3s, and K3d, allowing you to choose the cluster type best suited for your development and testing needs.
- Local and remote package registries: Manage both local and remote Crossplane registries to handle configurations, providers and functions.
- Load and apply Crossplane configurations: Seamlessly load Crossplane configuration packages from local
.xpkg
files or apply them directly from remote URLs. - Provider management: Easily load and apply Crossplane Providers from
.xpkg
files, supporting rapid local development. - Function management: Easily load and apply Crossplane Functions from
.xpkg
files. - Simplified interface: Overlock automates Crossplane installation, ensuring the setup process is hassle-free and quick.
To install Overlock, follow these steps:
- Docker installed and running.
- KinD, k3d or k3s installed.
- Download the latest version for your CPU architecture with the Overlock by run install script:
curl -sL "https://raw.githubusercontent.com/web-seven/overlock/refs/heads/main/scripts/install.sh" | sh
-
Move the extracted binary to a directory in your PATH (e.g.,
/usr/local/bin
):sudo mv overlock /usr/local/bin/
-
Verify the installation:
overlock --version
Overlock simplifies Crossplane setup and management across different cluster types. Use the following commands to work with your environment:
-
Create or delete a Crossplane environment:
overlock environment create|delete <environment-name>
-
Create or delete a local Crossplane package registry:
overlock registry create|delete --local [--default]
-
Create or delete a remote private Crossplane registry:
overlock registry create|delete [--default] --registry-server=<httpsurl> --username=<string> --password=<string> --email=<string>
-
Load a Crossplane configuration from a local
.xpkg
file:overlock configuration load <file.xpkg>
-
Apply a Crossplane configuration from a remote URL:
overlock configuration apply <url>
-
Serve a Crossplane configuration from local sources:
overlock configuration serve <configuration_package_path>
-
Load and apply a Crossplane provider from an
.xpkg
file:overlock provider load --apply --path=<file.xpkg> provider-name:version
-
Load and apply a Crossplane function from an
.xpkg
file:overlock function load --apply --path=<file.xpkg> function-name:version
Overlock will automatically set up Crossplane on the specified cluster type (KinD, K3s, or K3d) based on your configuration.
We welcome contributions! Please see the CONTRIBUTING.md for more details on how to get involved.
This project is written in Golang but many of the community contributions so far have been through blogging, speaking engagements, helping to test and drive the backlog of Overlock. If you'd like to help in any way then that would be more than welcome whatever your level of experience.
This project is licensed under the MIT License. See the LICENSE file for details.