Skip to main content

Running stardelt in production

stardelt is pre-alpha

It is not ready for regulated or business-critical workloads. There are no tagged releases and no upgrade guarantee. This page lists what you must provide, what the platform gives you, and what is missing.

Sizing​

Measured on a single node:

ComponentFootprintScales by
Trino coordinator and one workerabout 1.9 GB together, with the slim settingsadding workers; raise the heap and query.maxMemoryPerNode together
SeaweedFSabout 200 MB when idlemore volume servers and disks
CloudNativePG and one PostgreSQLabout 200 MBmore instances, more storage
Lakekeeperabout 200 MBmore replicas (stateless)
Novaabout 80 MBone replica only with sign-in on, because sessions live in memory

The core fits an 8 GB node. The whole platform needs about 16 GB, and Airflow is the largest consumer.

A single node is for trying things out. For anything real, run at least three nodes and use a StorageClass whose volumes can follow a pod to another node. local-path cannot.

What happens when something fails​

ComponentWhen it failsWhat to do
PostgreSQLOne instance by default: catalog writes stopRaise instances and keep backups working
OpenFGAPermission checks fail closed: reads of real tables answer 503 until it is backRun more than one replica and give it room; it depends on its own PostgreSQL
SeaweedFS volumeOne volume server holds the data: losing its disk loses the filesMore volume servers with replication, or your own S3
Trino coordinatorQueries stop, and nothing is lostIt reschedules; run two workers so one can drain
LakekeeperEngines cannot resolve tablesMore replicas and a PodDisruptionBudget
NovaWith sign-in on, a restart signs everyone outKeep one replica
A whole nodeEverything on itThree or more nodes, anti-affinity, a tested restore

The charts do not set these up by default. The settings are in Install on your own cluster.

Upgrades​

git -C stardelt-platform pull
make upgrade # moves pins, runs migrations, runs the verify targets

With the umbrella chart, run helm upgrade --install stardelt chart -n stardelt -f my-values.yaml.

  • Running it twice is safe. make platform-idempotence proves that for your cluster.
  • Helm does not upgrade CRDs. Apply chart/crds/ from the operator repository yourself.
  • Put digests in your values. A moving tag can serve an old image.

There is no migration guide or compatibility promise before the first tagged release, so try each upgrade on a copy first.

Security​

Read the security model, and its known limits in particular.

  • Turn sign-in on. Without it there is no access control, so never expose such an install.
  • Images: mirror ghcr.io/stardelt/* into your own registry and pin digests.
  • Secrets: generated at install as Kubernetes Secrets, so encrypt etcd. OpenBao is optional and holds connection secrets. See Rotating secrets.
  • Network: add NetworkPolicies for your own cluster, because only some components have one.

What to watch​

stardelt has no bundled monitoring. Watch these with your own tools. See Checks to run for read-only verification after upgrades and on a schedule:

SignalWhy it matters
Pods not Running or CompletedCatches most breakage
make verify-backups-allA backup that stopped looks exactly like one that works
make verify-imagesA pin can name a digest the registry stopped serving, or a package your pull credential cannot read
Failed queries and memory pressure in TrinoThe first sign of undersized heaps
Node disk and memorySeaweedFS and Trino are the main consumers; a full disk fails writes
Certificate expiry (kubectl get certificates -A)An expired certificate is a silent outage
The audit target in Nova's log (RUST_LOG=audit=info)One line per changing request and per refusal, with the caller
helm list -AShows a release stuck in pending-upgrade

Not available yet​

Do not count on these today: high-availability defaults, NetworkPolicies for every component, a monitoring and alerting stack, an upgrade and migration framework, or strict isolation between tenants.