Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions enterprise/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@

* [Overview](kubernetes/README.md)
* [User Guide](kubernetes/user-guide.md)
* [Bring-Your-Own-Cluster (BYOC)](kubernetes/byoc.md)
* [SpicepodSet](kubernetes/spicepodset.md)
* [SpicepodCluster](kubernetes/spicepodcluster.md)
* [Operator Metrics](kubernetes/metrics.md)
Expand Down
44 changes: 43 additions & 1 deletion enterprise/kubernetes/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ The Spice.ai Kubernetes Operator automates the deployment, scaling, and lifecycl

For a step-by-step walkthrough, see the [User Guide](user-guide.md). For exhaustive field references, see [SpicepodSet](spicepodset.md) and [SpicepodCluster](spicepodcluster.md).

The operator can also connect a cluster in your own cloud account to Spice.ai Cloud for centralized deployment and observability — see [Bring-Your-Own-Cluster (BYOC)](byoc.md).

## Installation

### Prerequisites
Expand Down Expand Up @@ -66,6 +68,23 @@ Multi-architecture (`linux/amd64` and `linux/arm64`) operator images are also pu
| `namespaces` / `denyNamespaces` | Scope the operator to / away from specific namespaces (mutually exclusive) | (all namespaces) |
| `telemetry.otlp.*` | Push operator metrics to an OTLP collector (see [Operator Metrics](metrics.md)) | disabled |
| `telemetryProperties` | Key/value pairs forwarded to the Spice runtime as telemetry properties | `{}` |
| `spice.managedMode.enabled` | Connect the operator to Spice.ai Cloud ([BYOC managed mode](byoc.md)) | `false` |
| `spice.managedMode.enrollmentToken` | Single-use `spice-enroll-…` token from the Spice.ai Cloud portal (chart stores it in a Secret; persisted in Helm history — prefer `enrollmentTokenSecret` in production) | — |
| `spice.managedMode.enrollmentTokenSecret` | Existing Secret holding the enrollment token under the `token` data key | — |
| `spice.managedMode.enrollUrl` | Enrollment API base URL (empty = Spice.ai Cloud, `https://api.spice.ai/v1/cloud-connect`) | — |
| `spice.managedMode.endpoint` | Gateway address override — required only with a pre-provisioned identity | — |
| `spice.managedMode.identitySecret` | Secret the operator **creates** to persist its enrolled identity (do not pre-create) | `spice-byoc-operator-identity` |
| `spice.managedMode.secretNamespace` | Namespace for managed-mode Secrets (empty = operator namespace) | — |
| `spice.managedMode.instanceId` | Instance ID — required only with a pre-provisioned identity | — |
| `spice.managedMode.mtlsSecret` / `.caSecret` | Pre-provisioned client identity + CA bundle (set together; skips enrollment) | — |
| `spice.managedMode.serverCaSecret` | Extra serving-CA trust anchor for a private/self-hosted control plane | — |
| `spice.managedMode.heartbeatIntervalSeconds` | Heartbeat cadence | `30` |
| `spice.managedMode.telemetryIntervalSeconds` | Telemetry roll-up cadence | `60` |
| `spice.managedMode.metricsIntervalSeconds` | Managed-instance metrics collection cadence | `30` |
| `spice.managedMode.kubeletCaSecret` | Secret with the CA that signs kubelet serving certificates (mutually exclusive with `kubeletInsecureTls`) | — |
| `spice.managedMode.kubeletInsecureTls` | Skip kubelet certificate verification for container resource metrics (mutually exclusive with `kubeletCaSecret`) | `false` |

See [Bring-Your-Own-Cluster (BYOC)](byoc.md) for the full managed-mode setup guide, security model, and troubleshooting.

## Managed Resources

Expand Down Expand Up @@ -185,6 +204,28 @@ spiceai-operator crd --output FILE
| `--telemetry-properties KEY=VALUE` | — | Key/value pairs forwarded to the Spice runtime |
| `--verbose` | `false` | Enable debug-level logging |

#### Managed mode (BYOC) flags

These flags configure [Bring-Your-Own-Cluster (BYOC) managed mode](byoc.md). Each flag also reads a matching `SPICEAI_MANAGED_MODE_*` environment variable (for example, `--managed-mode-enabled` reads `SPICEAI_MANAGED_MODE_ENABLED`).

| Flag | Default | Description |
| ---------------------------------------------- | --------------------------------------- | --------------------------------------------------------------------- |
| `--managed-mode-enabled` | `false` | Enable managed mode (outbound mTLS stream to Spice.ai Cloud) |
| `--managed-mode-enroll-url` | `https://api.spice.ai/v1/cloud-connect` | Enrollment API base URL |
| `--managed-mode-enrollment-token-secret` | — | Secret holding the single-use enrollment token (data key `token`) |
| `--managed-mode-endpoint` | — | Gateway address — required only with a pre-provisioned identity |
| `--managed-mode-identity-secret` | `spice-byoc-operator-identity` | Secret the operator creates to persist its enrolled identity |
| `--managed-mode-secret-namespace` | (operator namespace) | Namespace for managed-mode Secrets |
| `--managed-mode-instance-id` | — | Instance ID — required only with a pre-provisioned identity |
| `--managed-mode-mtls-secret` | — | Pre-provisioned client identity Secret (`tls.crt`/`tls.key`) |
| `--managed-mode-ca-secret` | — | Pre-provisioned CA bundle Secret (`ca.crt`; set with `mtls-secret`) |
| `--managed-mode-server-ca-path` | — | Path to an extra serving-CA PEM for a private control plane |
| `--managed-mode-heartbeat-interval-seconds` | `30` | Heartbeat cadence |
| `--managed-mode-telemetry-interval-seconds` | `60` | Telemetry roll-up cadence |
| `--managed-mode-metrics-interval-seconds` | `30` | Managed-instance metrics collection cadence |
| `--managed-mode-kubelet-certificate-authority` | — | Path to the CA that signs kubelet serving certificates |
| `--managed-mode-kubelet-insecure-tls` | `false` | Skip kubelet certificate verification (mutually exclusive with the CA) |

### `json-schema` — Output the OpenAPI v3 JSON schema for the `SpicepodSet` CRD

```bash
Expand Down Expand Up @@ -236,4 +277,5 @@ Capabilities in active development and planned for the operator include:
- **Auto-scaling** via `HorizontalPodAutoscaler` and Spiced-specific metrics.
- **Backup & restore** of stateful volumes via `VolumeSnapshot`.
- **Secret rotation** with automatic rolling restarts.
- **Spice Cloud Platform integration** for centralized fleet management and observability.

Spice.ai Cloud integration for centralized fleet management and observability has shipped as [Bring-Your-Own-Cluster (BYOC) managed mode](byoc.md).
Loading