This guide takes you from a fresh Kubernetes cluster to a registered, online Operator executor. End-state: a singleDocumentation Index
Fetch the complete documentation index at: https://docs.novacula.io/llms.txt
Use this file to discover all available pages before exploring further.
novacula-operator Deployment is running, the CRD blockchainnodes.validatoros.com is registered, the control plane sees the executor as online, and you can deploy nodes from the UI.
For the conceptual overview of what the Operator is, see Operator (Kubernetes).
Prerequisites
- Kubernetes — 1.27 or newer.
- Cluster-admin at install time (the operator auto-applies its CRD on first start).
- A storage class suitable for blockchain workloads — typically a CSI provider with
WaitForFirstConsumerbinding, fast NVMe-backed for chains like Sui. - Outbound HTTPS from the operator pod to the control plane URL.
- An API key of
kind = operator— see Connect an executor.
Steps
Add the chart repository
Create the namespace + secret
Secret keeps it out of values.yaml and out of any GitOps history that would store rendered manifests in plaintext.Install the chart
A minimal Install:The chart deploys:
values.yaml:- One
Deployment(single replica) for the operator pod. RBACfor the operator’sServiceAccount— namespace permissions forpods,services,configmaps,statefulsets,persistentvolumeclaims, plus cluster-scopedcustomresourcedefinitions(CRD apply needs this once).- A
Serviceexposing the operator’s health port (used by the chart’s liveness/readiness probes).
Confirm the CRD applied
Confirm online in the UI
executor registered, capabilities reported, and a probe of available StorageClass objects. The executor row in the UI flips to online within seconds.If it stays offline:- Check operator logs for auth errors.
- Confirm outbound HTTPS to the control plane URL.
- Verify the
Secret’saccessTokenkey matchessecretKeyinvalues.yaml.
What lives in the cluster
Static (chart-managed):novacula.com/node=<name> for easy kubectl get -l.
Operating
helm upgrade for chart-level changes (rbac, env vars, resource requests on the operator pod).
Hardening
- Keep the
Secretnamespaced, with RBAC limiting who in the cluster can read it. - Pin the operator image tag in
values.yamland let UI-driven self-updates manage it from there. - Restrict egress from
novacula-systemto the control plane URL (and any per-chain image registries) if you have a NetworkPolicy regime. - PodSecurity — the chart targets a
restricted-baseline-compatible pod spec.
Next steps
- Deploy a node onto your fresh executor.
- Apply executor upgrades — recovery if a self-update wedges the operator.
- Rotate executor API keys — rotate the
Secretvalue with no downtime.