clean
Clean up Kurtosis enclaves and artifacts. Remove stopped enclaves, running enclaves with -a…
Build, push, and deploy Kurtosis dev images to a Kubernetes cluster without creating a release. Rebuilds engine, core, and files-artifacts-expander as multi-arch Docker images with a unique tag, pushes to the logged-in user's Docker Hub, and restarts the engine. Use when testing
$ npx -y skills add kurtosis-tech/kurtosis --skill k8s-dev-deploy --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/k8s-dev-deployContext preview
The summary Claude sees to decide when to auto-load this skill.
Build, push, and deploy Kurtosis dev images to a Kubernetes cluster without creating a release. Rebuilds engine, core, and files-artifacts-expander as multi-arch Docker images with a unique tag, pushes to the logged-in user's Docker Hub, and restarts the engine. Use when testing
name: k8s-dev-deploy description: Build, push, and deploy Kurtosis dev images to a Kubernetes cluster without creating a release. Rebuilds engine, core, and files-artifacts-expander as multi-arch Docker images with a unique tag, pushes to the logged-in user's Docker Hub, and restarts the engine. Use when testing local code changes on a k8s cluster. compatibility: Requires docker buildx, go, kubectl, and Docker Hub login. metadata: author: ethpandaops version: "1.0"
Build and deploy Kurtosis from source to a Kubernetes cluster for testing without making a release.
Three container images must be built and pushed:
The CLI binary is also rebuilt locally.
All images share the same tag, which is set in `kurtosis_version/kurtosis_version.go` as `KurtosisVersion`. This version is compiled into the engine binary and used at runtime to pull the core and files-artifacts-expander images.
DOCKER_USER=$(docker info 2>/dev/null | grep Username | awk '{print $2}')
TAG="$(git rev-parse --short HEAD)-$(date +%s)"Edit these three constants to replace `kurtosistech` with `$DOCKER_USER`:
| File | Constant | Default Value | |------|----------|--------------| | `engine/launcher/engine_server_launcher/engine_server_launcher.go` | `containerImage` | `kurtosistech/engine` | | `core/launcher/api_container_launcher/api_container_launcher.go` | `containerImage` | `kurtosistech/core` | | `core/server/api_container/server/startosis_engine/kurtosis_types/service_config/service_config.go` | `filesArtifactsExpanderImage` | `kurtosistech/files-artifacts-expander` |
Edit `kurtosis_version/kurtosis_version.go` and set `KurtosisVersion` to the generated `$TAG`.
**IMPORTANT**: Always use a unique tag (include a timestamp) to avoid Kubernetes node image caching issues. Nodes with `imagePullPolicy: IfNotPresent` won't re-pull an image with the same tag.
# Engine CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o engine/server/build/kurtosis-engine.arm64 engine/server/engine/main.go CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o engine/server/build/kurtosis-engine.amd64 engine/server/engine/main.go # Core (APIC) CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o core/server/build/api-container.arm64 core/server/api_container/main.go CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o core/server/build/api-container.amd64 core/server/api_container/main.go # Files Artifacts Expander CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o core/files_artifacts_expander/build/files-artifacts-expander.arm64 core/files_artifacts_expander/main.go CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o core/files_artifacts_expander/build/files-artifacts-expander.amd64 core/files_artifacts_expander/main.go # CLI (local use) go build -o /tmp/kurtosis ./cli/cli/
Ensure a buildx builder exists (create with `docker buildx create --name kurtosis-builder --use` if needed).
docker buildx build --platform linux/amd64,linux/arm64 --builder kurtosis-builder --no-cache -t $DOCKER_USER/engine:$TAG --push engine/server/ docker buildx build --platform linux/amd64,linux/arm64 --builder kurtosis-builder --no-cache -t $DOCKER_USER/core:$TAG --push core/server/ docker buildx build --platform linux/amd64,linux/arm64 --builder kurtosis-builder --no-cache -t $DOCKER_USER/files-artifacts-expander:$TAG --push core/files_artifacts_expander/
**IMPORTANT**: Always use `--no-cache` to prevent buildx from caching old binaries.
/tmp/kurtosis engine stop
# Clean any leftover namespaces
kubectl get ns | grep kurtosis | awk '{print $1}' | xargs -r kubectl delete ns
/tmp/kurtosis engine start/tmp/kurtosis gateway & /tmp/kurtosis run github.com/ethpandaops/ethereum-package /tmp/kurtosis clean -a
When making further code changes, repeat from step 3 with a **new unique tag** each time. Never reuse a tag — k8s nodes cache images and won't pull updates under the same tag.
A platform for packaging and launching blockchain infra. Think docker compose for blockchain
Repo: kurtosis-tech/kurtosis
Clean up Kurtosis enclaves and artifacts. Remove stopped enclaves, running enclaves with -a…
Build and test the Kurtosis CLI from source. Compile the CLI binary locally, run it against…
Manage Kurtosis cluster settings. Switch between Docker and Kubernetes backends, list…
Manage Kurtosis contexts for connecting to different Kurtosis instances. Add, list, switch,…
Debug Kurtosis running on local Docker. Inspect engine, API container, and service logs.…
Build and test Kurtosis from source on local Docker. Compiles all components (engine, core,…