Skip to content
Installation

Installation

KICK ships as a single controller plus two cluster-scoped CRDs (KickPolicy, KickRequest). The recommended install is the Helm chart.

Prerequisites

  • Kubernetes 1.28+
  • Helm 3.12+
  • (optional) Argo CD, if you want to gate restarts behind GitOps

Helm install

helm install kick oci://ghcr.io/corewire/charts/kick \
  --namespace kick-system \
  --create-namespace

That installs the CRDs, RBAC, and the controller Deployment.

Common values

Override with --set key=value or a -f values.yaml file:

ValueDefaultDescription
image.repositoryghcr.io/corewire/kickController image.
image.tagchart appVersionController image tag.
integrations.argocd.enabledtrueGrant RBAC to read Argo CD Application/AppProject for GitOps gating.
integrations.argocd.applicationNamespaces[]Namespaces KICK may read Argo CD objects from. Empty means Argo CD namespace only.
integrations.flux.enabledtrueGrant RBAC to read Flux Kustomizations/HelmReleases for GitOps gating.
integrations.kargo.enabledfalseGrant RBAC to read Kargo Stages/Promotions for GitOps gating.
leaderElection.enabledtrueEnable leader election for HA.
replicaCount1Controller replicas.

If you do not use Argo CD, disable its RBAC:

helm install kick oci://ghcr.io/corewire/charts/kick \
  --namespace kick-system --create-namespace \
  --set integrations.argocd.enabled=false

Upgrading CRDs

Helm installs the CRDs on first install but does not upgrade them on helm upgrade. When a release changes the CRDs, re-apply them explicitly:

kubectl apply -f https://raw.githubusercontent.com/corewire/kick/main/config/crd/bases/kick.corewire.io_kickpolicies.yaml
kubectl apply -f https://raw.githubusercontent.com/corewire/kick/main/config/crd/bases/kick.corewire.io_kickrequests.yaml

From source (local development)

For a throwaway Kind cluster with the controller built from your working tree:

make kind-create   # create the kind-kick-dev cluster
make kind-load     # build and load the controller image
make install       # install CRDs + controller

Local defaults: context kind-kick-dev, kubeconfig .kubeconfig-kind-kick-dev. You can also install the chart directly from the repo checkout:

helm install kick charts/kick --namespace kick-system --create-namespace

Verify

kubectl -n kick-system get pods
kubectl get crd | grep kick.corewire.io

The controller Pod should be Running and both CRDs (kickpolicies, kickrequests) present.

Next steps

  • Quickstart — see KICK restart a Deployment when a Secret changes.
  • Concepts — how discovery, freshness, and GitOps gating work.
Last updated on