1.9 KiB
1.9 KiB
Wave-1 Kubernetes Rail Contract
Purpose
Summarize the initial contract rail-kubernetes owns in wave 1.
This repo starts from already-reviewed source documents rather than inventing a new runtime model:
railiance-master/docs/rail-kubernetes-boundary.mdrailiance-cluster/docs/rail-kubernetes-extraction-map.mdrailiance-cluster/docs/rail-kubernetes-substrate-profile.md
What rail-kubernetes Owns
Wave 1 assigns these concerns to the rail:
- the generic workload-on-Kubernetes execution contract
- the generic
railiance/app.tomlworkload declaration surface - generic stage 1 / stage 2 / stage 3 lifecycle semantics
- generic canary, observe, promote, and rollback behavior
- generic wrapper and overlay guidance for workloads that still use the current overlay pattern during migration
What Stays In railiance-cluster
Wave 1 keeps these concerns in the S2 ownership repo:
- k3s bootstrap and host-to-cluster installation
- cluster backup, restore, smoke, and preflight operations
- operator ownership for ingress, TLS, and other cluster-level components
- cluster access delivery and kubeconfig handling
- substrate-level safety rails
Published Substrate Assumptions
Wave 1 rail-kubernetes may assume:
- a Kubernetes API backed by k3s
- Helm-based apply paths
- operator-driven kubeconfig access
- isolated canary exposure as the safe default
- namespace creation during workload rollout
Wave 1 rail-kubernetes must not assume:
- guaranteed weighted routing
- a generic workload RBAC model
- a generic persistent-storage contract
- a secret-delivery contract at the S2 layer
Migration Constraint
Until the extraction is complete, railiance-cluster remains the compatibility
surface for current operators.
rail-kubernetes should become the durable home of the contract first. Only
then should commands, docs, schemas, and helpers move here in a migration-safe
sequence.