From k8s
Provides Tiltfile, Makefile, and Kustomize templates for Kubernetes operator dev loops with kind clusters, live updates, and controller-gen.
How this skill is triggered — by the user, by Claude, or both
Slash command
/k8s:k8s-templatesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Starter templates for the dev loop. Adapt paths and names to your project.
Starter templates for the dev loop. Adapt paths and names to your project.
.PHONY: dev kind deploy verify prereqs generate manifests
# Start Tilt dev loop
dev:
tilt up
# Create kind cluster
kind:
./scripts/setup-kind.sh
# Deploy dev overlay
deploy:
./scripts/deploy-dev.sh
# Verify deployment
verify:
./scripts/verify-dev.sh
# Check prerequisites
prereqs:
./scripts/prereqs.sh
# Generate deepcopy
generate:
go generate ./...
# Generate CRD manifests
manifests:
controller-gen rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases
config/dev/kustomization.yamlapiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../default
patchesStrategicMerge:
- manager_dev_patch.yaml
config/dev/manager_dev_patch.yamlapiVersion: apps/v1
kind: Deployment
metadata:
name: controller-manager
namespace: system
spec:
replicas: 1
template:
spec:
containers:
- name: manager
image: local/dev-manager:dev
args:
- --leader-elect=false
Key dev overlay settings:
# Safety: only allow kind clusters
allow_k8s_contexts('kind-kind')
# Apply kustomize manifests
k8s_yaml(kustomize('config/dev'))
# Local compile step
local_resource(
'build-manager',
'go build -o bin/manager ./cmd',
deps=['cmd', 'api', 'internal', 'pkg'],
)
# Image with live update to sync binary
docker_build(
'local/dev-manager',
'.',
only=['bin/manager'],
live_update=[
sync('bin/manager', '/manager'),
run('pkill -f /manager || true'),
],
)
# Associate image with k8s resource
k8s_resource('controller-manager', image='local/dev-manager', deps=['build-manager'])
allow_k8s_contexts enforces the kind-only safety guardrail.'./cmd' to match your project's main package path./manager as PID 1, pkill causes a restart.deps arrays to match your project structure.FROM gcr.io/distroless/static:nonroot
WORKDIR /
COPY bin/manager /manager
USER 65532:65532
ENTRYPOINT ["/manager"]
This Dockerfile is only used for the initial image build. After that, Tilt live-updates the binary directly.
npx claudepluginhub sagart-cactus/claude-k8s-plugin --plugin k8sScaffolds Kubernetes operators: CRDs, Go controllers, webhooks via Kubebuilder; sets up Tilt dev loop, Kind clusters, Kustomize for fast iteration and validation.
Writes and debugs Tiltfiles, manages Tilt resources (image builds, k8s deploys, local commands), and controls the Tilt dev loop (up/down/trigger/logs) for local Kubernetes development.
Customizes Kubernetes configurations without templates using Kustomize bases, overlays, patches, generators for configmaps/secrets, labels, images, and replicas. Includes build/apply commands and best practices.