Categorygithub.com/frantjc/kontrol
modulepackage
0.2.1
Repository: https://github.com/frantjc/kontrol.git
Documentation: pkg.go.dev

# README

kontrol CI godoc goreportcard license

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 -

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# 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.