# README
kontrol

Kontrol is a CLI and Kubernetes controller with the goal of making packaging and deploying other controllers easier. It does this by providing a way to package a controller along with the Kubernetes manifests required for it to run.
It doesn't reinvent the wheel; it intends to operate on the controller's image after something like docker
has built it, it can be used with kubebuilder
and it outputs manifests that can be applied with kubectl
.
install
From a release.
Using brew
:
brew install frantjc/tap/kontrol
From source:
git clone https://github.com/frantjc/kontrol
cd kontrol
make
Using go
:
go install github.com/frantjc/kontrol/cmd/kontrol
In GitHub Actions:
- uses: frantjc/[email protected]
usage
Package
Build your controller's image:
docker build path/to/controller -t your/tag
Bundle your controller's manifests with the image:
kontrol package your/tag \
--crds path/to/crds.yaml \
--roles path/to/role.yaml
Deploy
Apply your controller's manifests:
kontrol deploy your/tag | kubectl apply -f -