01
Before you begin
Confirm that your current Kubernetes context points at the cluster where Kavrynt should run. Docker and Kind are only needed for local testing.
kubectl version --client
kubectl config current-context
kubectl get nodes
# Local testing only
docker version
kind version
02
Set trial image inputs
Use the registry and tag provided with your Kavrynt trial access.
export KAVRYNT_IMAGE_REGISTRY=docker.io/kavrynt
export KAVRYNT_TRIAL_TAG=0.1.0-beta
03
Use a cluster
Use your existing cloud or self-managed Kubernetes cluster. Create Kind only when you want a local cluster you can delete after testing.
# Existing cluster
kubectl config current-context
kubectl get nodes
# Local test cluster
kind create cluster --name kavrynt-dev
kubectl cluster-info --context kind-kavrynt-dev
04
Pull trial images
Developers pull only the trial images. Source access is not required.
docker pull "$KAVRYNT_IMAGE_REGISTRY/registry:$KAVRYNT_TRIAL_TAG"
docker pull "$KAVRYNT_IMAGE_REGISTRY/gateway:$KAVRYNT_TRIAL_TAG"
docker pull "$KAVRYNT_IMAGE_REGISTRY/k8s-operator:$KAVRYNT_TRIAL_TAG"
05
Deploy Registry and Gateway
Create the trial namespace and deploy the runtime images into the cluster.
kubectl create namespace kavrynt-system
kubectl create deployment kavrynt-registry \
--namespace kavrynt-system \
--image "$KAVRYNT_IMAGE_REGISTRY/registry:$KAVRYNT_TRIAL_TAG" \
--port 8080
kubectl set env deployment/kavrynt-registry \
--namespace kavrynt-system \
KAVRYNT_REGISTRY_DATA=/tmp/registry.json
kubectl expose deployment kavrynt-registry \
--namespace kavrynt-system \
--port 8080 \
--target-port 8080
kubectl create deployment kavrynt-gateway \
--namespace kavrynt-system \
--image "$KAVRYNT_IMAGE_REGISTRY/gateway:$KAVRYNT_TRIAL_TAG" \
--port 8080
kubectl set env deployment/kavrynt-gateway \
--namespace kavrynt-system \
KAVRYNT_REGISTRY_URL=http://kavrynt-registry.kavrynt-system.svc.cluster.local:8080
kubectl expose deployment kavrynt-gateway \
--namespace kavrynt-system \
--port 8080 \
--target-port 8080
06
Verify the install
Wait for the control-plane workloads and confirm that pods and services exist.
kubectl rollout status deployment/kavrynt-registry -n kavrynt-system --timeout=120s
kubectl rollout status deployment/kavrynt-gateway -n kavrynt-system --timeout=120s
kubectl get pods -n kavrynt-system
kubectl get svc -n kavrynt-system
07
Register a sample server
Deploy a temporary HTTP endpoint, then register it in Kavrynt Registry.
kubectl create deployment example-mcp-server \
--image=hashicorp/http-echo:1.0 \
-- -listen=:8080 -text='{"mock":true,"service":"example-mcp-server"}'
kubectl expose deployment example-mcp-server --port=8080 --target-port=8080
kubectl port-forward -n kavrynt-system svc/kavrynt-registry 18081:8080 >/tmp/kavrynt-registry-pf.log 2>&1 &
registry_pf=$!
sleep 3
curl -fsS -X POST http://127.0.0.1:18081/v1/servers \
-H 'Content-Type: application/json' \
--data '{"apiVersion":"kavrynt.io/v1alpha1","kind":"MCPServer","metadata":{"name":"example-mcp-server"},"spec":{"version":"0.1.0","transport":"http","endpoint":"http://example-mcp-server.default.svc.cluster.local:8080"}}'
kill "$registry_pf"