hops-cli is a Rust CLI for running a local Crossplane development environment on Colima.
This tool manages a local Kubernetes stack and package workflow for Crossplane:
- Installs and manages Colima and kubefwd
- Starts a local k8s cluster with Crossplane installed via Helm
- Installs the Kubernetes and Helm Crossplane providers
- Deploys an in-cluster OCI registry (
crossplane-system/registry) - Builds and publishes Crossplane configuration packages from an XRD project
- Install ubi:
Ensure you have ubi installed by running:curl --silent --location \ https://raw.githubusercontent.com/houseabsolute/ubi/master/bootstrap/bootstrap-ubi.sh | sh mkdir -p ~/.ubi/bin echo 'export PATH="$HOME/.ubi/bin:$PATH"' >> ~/.zshrc # or your preferred shell profile
- Install vnext with ubi:
ubi --project hops-ops/hops-cli --in /usr/local/bin --rename-exe hops
Install a specific version:
ubi --project hops-ops/hops-cli --tag vx.x.x --in /usr/local/bin/ --rename-exe hopsSee "Releases" for available versions and changenotes.
- macOS
- Rust/Cargo
- Homebrew
dockerCLIkubectlhelmup(Upbound CLI, used byup project build)kubefwd(used bylocal startfor automatic service forwarding)
Note: hops-cli local install installs colima and kubefwd through Homebrew.
cargo buildIf you want static OpenSSL vendoring:
cargo build --features vendoredhops --help
hops local --helpFrom source without installing:
cargo run -- --help
cargo run -- local --help# 1) Install Colima + kubefwd (via Homebrew)
cargo run -- local install
# 2) Start local k8s + Crossplane + providers + local registry
cargo run -- local start
# 3) Build and load a Crossplane configuration package from an XRD project
cargo run -- local config /path/to/projectlocal install- Runs
brew install colima kubefwd.
- Runs
local reset- Stops the background
kubefwdprocess started bylocal start - Runs
colima kubernetes reset.
- Stops the background
local start- Runs
colima start --kubernetes --cpu 8 --memory 16 --disk 60 - Installs Crossplane from
crossplane-stable/crossplane - Applies manifests from
bootstrap/for runtime config, providers, provider configs, and registry - Configures Docker in Colima for insecure pulls from
registry.crossplane-system.svc.cluster.local:5000 - Adds host mapping in Colima VM for the registry service DNS name
- Starts
kubefwd services -Ain the background (log:~/.hops/local/kubefwd.log)
- Runs
local stop- Stops the background
kubefwdprocess started bylocal start - Runs
colima stop.
- Stops the background
local destroy- Stops the background
kubefwdprocess started bylocal start - Runs
colima delete --force.
- Stops the background
local uninstall- Stops the background
kubefwdprocess started bylocal start - Prompts for confirmation, then runs
brew uninstall colima.
- Stops the background
local config [PATH]- Runs
up project buildinPATH(defaults to current directory) - Loads generated
.uppkgartifacts from<PATH>/_output - Pushes package images to local registry (
localhost:30500) - Applies Crossplane
Configurationresources pointing atregistry.crossplane-system.svc.cluster.local:5000/...
- Runs
Set LOG_LEVEL to control output (default: info):
LOG_LEVEL=debug cargo run -- local startcargo test