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+
kubectlconfigured 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.comThe 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-helmVerify the operator is running:
kubectl get pods -l spice.ai/app=spiceai-operatorConfirm the CRDs are installed:
kubectl get crd spicepodsets.spice.ai
kubectl get crd spicepodclusters.spice.aiStep 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: v1Apply it:
kubectl apply -f spicepodset.yamlStep 3: Verify
kubectl get pods -l spice.ai/app=my-spicepod
kubectl get svc -l spice.ai/app=my-spicepodThe operator creates a ClusterIP service exposing:
| Port | Protocol | Description |
|---|---|---|
8090 | HTTP | HTTP/SQL API |
50051 | gRPC | Apache Arrow Flight |
9090 | HTTP | Prometheus metrics |
Step 4: Query
Port-forward to the service and run a query:
kubectl port-forward svc/spicepod-my-spicepod 8090:8090curl http://localhost:8090/v1/sql \
-H "Content-Type: application/json" \
-d '{"query": "SELECT 1"}'Next Steps
- Configure the Helm chart for production use.
- Add authentication with OIDC or API keys.
- Deploy a distributed cluster with
SpicepodCluster. - Configure AWS IRSA for data source access.