TRIAL IMAGES

Run Kavrynt
on Kubernetes.

Use approved alpha or beta images on EKS, AKS, GKE, OpenShift, self-managed clusters, or Kind. Kind is only the disposable local test option.

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"
EXPECTED RESULT

A working MCP route
through Gateway.

kubectl port-forward -n kavrynt-system svc/kavrynt-registry 18081:8080 >/tmp/kavrynt-registry-pf.log 2>&1 &
registry_pf=$!
kubectl port-forward -n kavrynt-system svc/kavrynt-gateway 18080:8080 >/tmp/kavrynt-gateway-pf.log 2>&1 &
gateway_pf=$!
sleep 12

curl -fsS http://127.0.0.1:18081/v1/servers/example-mcp-server
curl -fsS http://127.0.0.1:18080/v1/routes
curl -fsS -X POST http://127.0.0.1:18080/mcp/example-mcp-server \
  -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

kill "$registry_pf" "$gateway_pf"

Expected proxy response in the MVP demo: {"mock":true,"service":"example-mcp-server"}

TRIAL IMAGE POLICY

Container images
for evaluation.

$KAVRYNT_IMAGE_REGISTRY/registry:$KAVRYNT_TRIAL_TAG
$KAVRYNT_IMAGE_REGISTRY/gateway:$KAVRYNT_TRIAL_TAG
$KAVRYNT_IMAGE_REGISTRY/k8s-operator:$KAVRYNT_TRIAL_TAG

Trial images are for approved developer evaluation. Kavrynt source remains private and commercial.

CLEANUP

Remove Kavrynt
when finished.

kubectl delete service example-mcp-server
kubectl delete deployment example-mcp-server
kubectl delete namespace kavrynt-system
kind delete cluster --name kavrynt-dev

Only delete the Kind cluster if you created it for local testing. Do not delete a shared cloud cluster.