Quick start on k3s
No full cluster? A lightweight distribution works too. k3s is a CNCF-certified, single-binary Kubernetes that stands up a working cluster in one command — enough to host the Novacula Operator and an Igra node.Install a single-node k3s cluster
local-path storage class, which the Operator’s PVCs can use. It stores data on the node’s own disk, so size that disk for Igra’s volumes (see Resource defaults below). This is fine for a test or galleon-testnet node; for a production mainnet node use a real CSI storage class instead.Install Helm
The Operator ships as a Helm chart, so you need Helm:
Point your shell at the cluster
root with 600 permissions. If you aren’t running as root, either use sudo, or install k3s with --write-kubeconfig-mode 644 (append it to the install command above) so kubectl and helm can read the file.Install the Operator
Copy the exact Then confirm the Operator rolled out:The executor row in the UI flips to
helm upgrade --install from the Connect Executor screen in the UI — it comes pre-filled with your Hub URL and executor key, so you don’t fill those in by hand:online within seconds. See Connect an executor and the full Provision on Kubernetes walkthrough.Deploy Igra
Open the Deploy Node wizard, pick Igra and a network, and deploy. See Deploy a node.
Networks
| Network | Underlying Kaspa | Use |
|---|---|---|
mainnet | Kaspa mainnet | Production. |
galleon-testnet | Kaspa testnet | Testing. |
Clients
| Role | Client | Versions |
|---|---|---|
| Kaspa node | kaspad | 2.3 |
| Execution layer | igra-reth (reth fork) | 2.3 |
Resource defaults
The wizard pre-fills these per network; you can raise them before deploying.| Network | Role | CPU | Memory | Storage |
|---|---|---|---|---|
mainnet | kaspad | 4 | 24Gi | 1500Gi |
mainnet | igra-reth | 4 | 16Gi | 1000Gi |
galleon-testnet | kaspad | 2 | 24Gi | 200Gi |
galleon-testnet | igra-reth | 2 | 8Gi | 100Gi |
Ports
The Ethereum JSON-RPC is served on:8545 (HTTP) and :8546 (WebSocket). Point your apps at these.
Configuration
Igra runs with a fixed, upstream-pinned configuration per network — there are no client config overrides to set when you deploy. The product picks the correct ports, chain identity, and bootstrap for the network you chose.Sync
- The execution layer receives blocks from kaspad over the internal Engine API; the L2 itself has no peer-to-peer chain-tip discovery.
- Block Height and Sync Progress are derived by comparing the node’s local height against the public Igra explorer’s tip on each reporting cycle. This requires outbound HTTPS from the executor to the public explorer (
explorer.igralabs.com). If your network blocks that egress, Sync Progress will report stale.
Monitoring
Open a node and select the Monitoring tab to read the common per-node metrics — Block Height, Peers, Sync Progress, plus EL Finalized Block and EL Safe Block extras — as charts. Kaspad-side health is surfaced too: Kaspad DAA Score (the kaspad chain height) and Kaspad Sync progress. See Node monitoring.Common patterns
- RPC endpoint — accept the defaults and expose
:8545(HTTP) and:8546(WebSocket) to your apps. Check egress to the public Igra explorer is open, or Sync Progress won’t track.