# 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 -
# Functions
GetSemver returns the semantic version of kontrol as built from Semver and debug build info.
LoggerFrom returns a Logger embedded within the given Context or a no-op Logger if no such Logger exists.
NewLogger creates a new Logger.
WithLogger returns a Context from the parent Context with the given Logger inside of it.
# Variables
Semver is the semantic version of kontrol.
# Type aliases
Logger is an alias to logr.Logger in case the logging library is desired to be swapped out.