Installation¶
This page walks you through installing Purko on a Kubernetes cluster, from prerequisites to a running operator with the CLI tool purkoctl.
Prerequisites¶
| Tool | Version | Purpose |
|---|---|---|
| kubectl | >= 1.26 | Cluster interaction |
| Kubernetes | >= 1.26 | Target cluster |
| Helm | >= 3 | Install the Purko chart |
| Go | >= 1.21 | Build purkoctl (optional if you use pre-built binaries) |
For local development, minikube is the recommended cluster. The Purko operator works best with at least 4 CPUs and 8 GB of RAM allocated.
Minikube quick start
Start a local cluster with enough resources:
If you use the podman driver, you will also need to enable hostNetwork for the operator (covered below).
Step 1 — Install the CRDs¶
The CRDs are installed separately from the chart so their lifecycle is
explicit (Helm does not upgrade CRDs on helm upgrade):
Or, from a clone: kubectl apply -f crds/.
Step 2 — Install the Helm chart¶
Option A — OCI registry (no clone needed):
The OCI chart bundles the CRDs from v0.2.1 onward (Helm installs a
chart's crds/ on first install, but never upgrades them — Step 1 remains
the way to upgrade CRDs).
Option B — from source:
git clone https://github.com/purko-io/purko.git
cd purko
helm install purko deploy/helm/ --create-namespace --namespace purko-system
The chart installs:
- The Purko operator Deployment in
purko-system - RBAC (ServiceAccount, ClusterRole, ClusterRoleBinding)
- A dashboard Service on port 8082
- The starter agent library and the
ai-agentsnamespace for your Agent and Workflow resources - The execution history PVC (
operator.history.enabled)
Key values¶
The chart is configured through deploy/helm/values.yaml. The most commonly changed values:
| Value | Default | Description |
|---|---|---|
llm.provider |
"" (auto-detect) |
LLM provider: anthropic, openai, vertex-ai, ollama |
llm.model |
claude-sonnet-4-6 |
Default model name |
operator.hostNetwork |
false |
Set true for minikube/podman |
dashboard.port |
8082 |
Dashboard and API port |
webhooks.enabled |
false |
Enable server-side webhook validation |
Override values at install time:
helm install purko deploy/helm/ \
--namespace purko-system \
--create-namespace \
--set llm.provider=anthropic \
--set llm.credentials.secretName=anthropic-api-key
minikube / podman networking
Pod-to-pod networking does not work correctly with the podman driver by default. Enable hostNetwork so the operator and MCP servers bind to the host network:
helm install purko deploy/helm/ \
--namespace purko-system \
--create-namespace \
--set operator.hostNetwork=true
When hostNetwork: true is set, MCP servers are also registered as localhost:<port> instead of their ClusterIP address.
Step 3 — Verify the operator is running¶
Expected output:
Check that the CRDs were installed:
Expected output:
agents.purko.io 2026-04-23T09:00:00Z
agentautonomypolicies.purko.io 2026-04-23T09:00:00Z
llmproviders.purko.io 2026-04-23T09:00:00Z
mcpservers.purko.io 2026-04-23T09:00:00Z
workflows.purko.io 2026-04-23T09:00:00Z
Check that the API resources are registered (note the short names):
agents ag purko.io/v1alpha1 true Agent
workflows wf purko.io/v1alpha1 true Workflow
mcpservers mcp purko.io/v1alpha1 true MCPServer
llmproviders llm purko.io/v1alpha1 true LLMProvider
The short names (ag, wf, mcp, llm) can be used anywhere you would type the full resource name.
The chart also installs the starter agent library — six archetype agents (task-router, project-planner, code-executor, code-reviewer, system-monitor, knowledge-retriever) so the dashboard has a working agent set immediately:
Their model provider/name come from starterAgents.provider and
starterAgents.model in the Helm values (the provider name resolves against
your LLMProvider resources, falling back to the one marked default: true).
Set starterAgents.enabled: false if you manage agents yourself.
Step 3 — Access the Dashboard (Pro)¶
The Purko dashboard is available in Purko Pro. It provides a UI for creating agents, monitoring workflows, and browsing MCP tool catalogs. Community edition users manage everything via purkoctl CLI and kubectl.
Then open http://localhost:8082 in your browser.
Tip
Keep the port-forward running in a separate terminal while you follow the rest of the Getting Started guide.
The dashboard also exposes a REST API at http://localhost:8082/api/. The CLI (purkoctl) uses this API internally.
Step 5 — Install purkoctl¶
purkoctl is a CLI for managing agents, workflows, and MCP servers from the terminal. Build it from source:
# From the repository root
go build \
-ldflags "-X main.version=$(git describe --tags --always)" \
-o bin/purkoctl \
./cmd/purkoctl/
Move the binary to a directory on your PATH:
Verify the installation:
Expected output:
Tip
purkoctl defaults to http://localhost:8082 as the API endpoint. If you change the dashboard port or run it on a remote cluster, set the PURKO_API environment variable:
Uninstall¶
Remove all agent and workflow resources before uninstalling, or their finalizers will block deletion:
kubectl delete agents,workflows --all -A
helm uninstall purko --namespace purko-system
kubectl delete namespace purko-system
To remove the CRDs as well (this deletes all stored Agent and Workflow data):
Next steps¶
- Your First Agent — deploy an AI agent in under five minutes
- Your First Workflow — wire agents together into a multi-step pipeline
- Connect MCP Servers — extend agents with GitHub, PagerDuty, and other integrations