2 KiB
INTENT
Why This Repo Exists
rail-kubernetes exists so Railiance has a first-class home for the default
execution rail used by platform services and managed workloads.
Before this repo, generic workload lifecycle semantics, workload declarations,
and Kubernetes rollout helpers were mixed into railiance-cluster. That was
pragmatic while Railiance had only one runtime path, but it is the wrong steady
state once Railiance starts introducing multiple rails.
This repo establishes the durable answer to:
- how a Railiance-managed workload targets Kubernetes as a rail
- which workload lifecycle semantics are generic to Kubernetes-managed workloads
- which substrate guarantees the rail expects from S2
- where future packages such as
rapp-openbaoattach when they run on the default rail
What This Repo Must Protect
This repo must keep the wave-1 Kubernetes rail narrow and reusable.
That means:
- protect the distinction between rail semantics and cluster ownership
- protect the distinction between rail semantics and workload packaging
- keep the compatibility path from
railiance-clusterexplicit while the extraction is incomplete - avoid encoding assumptions that only work for one workload or one substrate
What This Repo Is Not
This repo is not:
- the ownership home for the Kubernetes substrate
- the ownership home for OpenBao, Forgejo, or any other single workload
- the ownership home for one specific server or cluster substrate
- the place to normalize workload-specific operator commands
Initial Operating Context
Wave 1 is intentionally centered on Kubernetes.
Railiance should treat this repo as the default rail path until a later
workload presents a strong enough reason to justify a different rail such as
rail-knative.
The first version of this repo therefore prioritizes:
- a clean boundary with
railiance-cluster - a stable attachment point for future
rapp-*repos - compatibility with the currently published S2 substrate profile