Quickstart

Deploy Spice.ai Enterprise on Kubernetes in minutes.

This guide walks through deploying Spice.ai Enterprise on Kubernetes using the Spice Kubernetes Operator and Helm.

Prerequisites

  • Kubernetes 1.33.0+
  • Helm 3.19.0+
  • kubectl configured with cluster access
  • AWS CLI (aws) installed and configured with credentials for the account subscribed to the AWS Marketplace listing

Step 1: Install the Spice Kubernetes Operator

The operator is distributed via the AWS Marketplace Spice.ai Enterprise listing. Subscribe to the listing, then authenticate Helm against the Marketplace ECR registry — the chart is pulled over OCI from that private registry:

aws ecr get-login-password --region us-east-1 \
  | helm registry login --username AWS --password-stdin 709825985650.dkr.ecr.us-east-1.amazonaws.com

The login is valid for 12 hours; re-run it when the token expires.

Install the operator:

helm install spiceai-operator \
  oci://709825985650.dkr.ecr.us-east-1.amazonaws.com/spice-ai/spiceai-enterprise-plan \
  --version 1.0.0-operator-helm

Verify the operator is running:

kubectl get pods -l spice.ai/app=spiceai-operator

Confirm the CRDs are installed:

kubectl get crd spicepodsets.spice.ai
kubectl get crd spicepodclusters.spice.ai

Step 2: Deploy a SpicepodSet

Create a spicepodset.yaml:

apiVersion: spice.ai/v1
kind: SpicepodSet
metadata:
  name: my-spicepod
  namespace: default
spec:
  replicas: 1
  spiceai_image_registry: 709825985650.dkr.ecr.us-east-1.amazonaws.com
  spiceai_image_name: spice-ai/spiceai-enterprise-byol
  spiceai_image_tag: 2.3.2-enterprise-models
  spicepod: |
    name: my-spicepod
    kind: Spicepod
    version: v1

Apply it:

kubectl apply -f spicepodset.yaml

Step 3: Verify

kubectl get pods -l spice.ai/app=my-spicepod
kubectl get svc -l spice.ai/app=my-spicepod

The operator creates a ClusterIP service exposing:

PortProtocolDescription
8090HTTPHTTP/SQL API
50051gRPCApache Arrow Flight
9090HTTPPrometheus metrics

Step 4: Query

Port-forward to the service and run a query:

kubectl port-forward svc/spicepod-my-spicepod 8090:8090
curl http://localhost:8090/v1/sql \
  -H "Content-Type: application/json" \
  -d '{"query": "SELECT 1"}'

Next Steps