HIP-407: Base CRD. Status Active. Hanzo's own standard — read this before implementing against it.
The Base CRD (renamed from BaseApp in v0.3.0) models a Hanzo Base distribution app: a stateful, writer-elected, single-leader workload backed by hanzoai/base. Base is the embedded-SQLite-with-replication runtime that powers the Hanzo Base PaaS (HIP-038). Each Base CR runs as a StatefulSet with a Quasar consensus writer election; the gateway proxies writes to the current leader and serves reads from any replica.
hanzo.ai/v1, plural bases, shortname bapp.
| Field | Type | Description | |---|---|---| | image | ImageSpec | Base distribution image | | replicas | int | StatefulSet replicas (odd, typically 3 or 5) | | port | int | HTTP port | | consensus | string | quasar (default) | | schema | string | optional initial schema URL or inline DDL | | storage | StorageSpec | per-replica PVC | | env, envFrom | array | environment | | gateway | BaseGatewaySpec | gateway route + leader poll interval + read-your-writes TTL | | iamApp | string | IAM application client_id | | kmsSecrets | []KMSSecretRef | KMS-sourced secrets | | networkPolicy | NetworkPolicySpec | optional | | serviceMonitor | ServiceMonitorSpec | optional |
apiVersion: hanzo.ai/v1
kind: Base
metadata:
name: my-app
namespace: hanzo
spec:
image:
repository: ghcr.io/hanzoai/base
tag: v1.2.3
replicas: 3
port: 8090
consensus: quasar
storage:
storageClassName: do-block-storage
size: 10Gi
retentionPolicy: Retain
gateway:
route: /v1/my-app
gatewayName: gateway
gatewayNamespace: hanzo
leaderPollInterval: 2s
readYourWritesTTL: 5s
iamApp: app-my-app
~/work/hanzo/operator/src/controllers/baseapp.rs (controller file retains historical name).
Implemented in hanzoai/operator v0.3.0+. Kind renamed from BaseApp to Base in the v0.3.0 schema cleanup.