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. Helm pulls the chart 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.4.1-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