Files
hips/HIPs/hip-0401-datastore-crd.md
zeekayandHanzo Dev 7a9dcac628 What each runtime implements of the Hanzo corpus
An audit read the code and found the proposal that specifies it. Go reaches
all 122 capability proposals and 64 of the 121 other Standards Track ones;
Rust has 35, mostly the operator and the CLI; C++ has three, because the
complete original C++ in the estate is a ZAP handler, a bot nothing specifies,
and authored kernels inside forked CUDA and Metal crates.

    | | shipped | partial | none | not assessed |
    | Go   | 146 | 33 | 1 |  80 |
    | C++  |   1 |  2 | 0 | 257 |
    | Rust |  10 | 25 | 1 | 224 |

The large "not assessed" columns are the point rather than a gap. The model and
training specs are Python, the frontend and design-system proposals are
TypeScript, and recording `none` against those would read as a search that
came up empty when the honest statement is that the runtime was never the
question. Governance, Meta and Process are not graded at all.

Six proposals are Final with nothing found in Go and are left unwritten rather
than demoted: 0065, 0089, 0098, 0103, 0521 and 0902. HIP-0521 answers itself,
its own section reading "Not yet implemented". Three of the others name a
canonical Go file in consensus/protocol/auth that nobody wrote, in a package
where the four neighbouring proposals' files all exist with tests beside them.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-05 19:18:13 -07:00

2.6 KiB

hip, title, author, type, category, status, implementation-rust, created
hip title author type category status implementation-rust created
0401 Datastore CRD Hanzo Platform Team Standards Track Operator Final shipped 2026-05-19

HIP-0401: Datastore CRD

Abstract

The Datastore CRD models a stateful workload with persistent storage. It is the canonical primitive backing Hanzo Datastore (hanzoai/datastore). Type-routed siblings — SQL, KV, DocDB, S3 — are thin facades that delegate to the same reconciler with a spec.type discriminator. The operator materializes a StatefulSet, headless and ClusterIP Services, PersistentVolumeClaim templates, and KMSSecret references.

Specification

Group + version

hanzo.ai/v1 (group configurable).

Spec fields

Field Type Description
type string datastore, postgresql, valkey, docdb, minio
image ImageSpec repository, tag, pullPolicy
replicas int StatefulSet replica count
storage StorageSpec storageClassName, size, retentionPolicy
resources ResourceRequirements requests/limits
env, envFrom []EnvVar / []EnvFromSource environment
volumes, volumeMounts array extra volumes beyond storage
credentialsSecret string secret holding root creds
kmsSecrets []KMSSecretRef KMS-managed secrets
backup BackupSpec schedule, s3 target, retention
serviceAliases []string extra DNS aliases for ClusterIP
ports []ServicePort exposed ports
networkPolicy NetworkPolicySpec optional
serviceMonitor ServiceMonitorSpec optional Prometheus scrape
command, args []string container entrypoint

Example CR

apiVersion: hanzo.ai/v1
kind: Datastore
metadata:
  name: datastore
  namespace: hanzo
spec:
  type: datastore
  image:
    repository: ghcr.io/hanzoai/datastore
    tag: "26"
  replicas: 1
  storage:
    storageClassName: do-block-storage
    size: 50Gi
    retentionPolicy: Retain
  credentialsSecret: datastore-credentials

Generated K8s resources

  • StatefulSet (one Pod per replica, stable hostnames)
  • Headless Service (for replica discovery)
  • ClusterIP Service (for client traffic; aliases via serviceAliases)
  • PersistentVolumeClaim per replica (from volumeClaimTemplates)
  • NetworkPolicy (if requested)
  • KMSSecret references (if kmsSecrets)

Operator reconciler

  • Rust: ~/work/hanzo/operator/src/controllers/datastore.rs

Status

Implemented in hanzoai/operator v0.3.0+. Backs all stateful workloads in do-sfo3-hanzo-k8s.