rail-kubernetes/INTENT.md

56 lines
2 KiB
Markdown
Raw Permalink Normal View History

# 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-openbao` attach 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-cluster` explicit 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