Skip to content

Kustomize install

Coxswain's deployment manifests are structured as a Kustomize base under deploy/manifests/. Use this method when you need to apply overlays — custom resource limits, additional labels, namespace changes, or image overrides.

Install from main

For a quick install without version pinning:

# Install Gateway API CRDs first (once per cluster)
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/latest/download/standard-install.yaml

# Install Coxswain
kubectl apply -k "github.com/coxswain-labs/coxswain//deploy/manifests?ref=main"

Install a specific version

The remote base always uses image: ...:latest. To pin both the manifests and the image to a specific release, create a local overlay (replace vX.Y.Z with the release tag you want):

mkdir coxswain-install && cd coxswain-install
# kustomization.yaml
resources:
  - github.com/coxswain-labs/coxswain//deploy/manifests?ref=vX.Y.Z

images:
  - name: ghcr.io/coxswain-labs/coxswain
    newTag: vX.Y.Z
kubectl apply -k .

Upgrade

Update the ?ref= and newTag: values in your overlay to the new version, then re-apply:

kubectl apply -k .

Uninstall

kubectl delete -k .

Warning

This removes the coxswain-system namespace and everything in it. Gateway API CRDs and any user-created Gateway/HTTPRoute/Ingress objects in other namespaces are not affected.