Repurpose as the Railiance bootstrap path
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

This repo carried a copied declaration identifying it as the S2 cluster runtime
layer - byte-similar to railiance-cluster, with which it shares no git history
but nearly all of its content. It was one of four repos (bootstrap, cluster,
hosts, infra) created by copying working trees as the S1/S2 layering idea
emerged, and the INTENT was copied along with everything else.

Its own QUICKSTART.md - set up your very first Railiance host - describes what
the repo is actually for. INTENT.md and SCOPE.md now declare that: turning a
single bare virtual machine into a working Railiance, then handing off to the
ordinary layers.

Inherited S2-era content in ansible/, helm/, docs/ and wiki/ is not yet sorted;
SCOPE records that restructuring is in progress rather than claiming it is done.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-08-11 22:41:29 +02:00
parent 607f3960cf
commit 0814ed3a19
2 changed files with 148 additions and 132 deletions

144
INTENT.md
View file

@ -9,25 +9,31 @@
## One-liner
**The cluster runtime layer — turning hardened servers into a healthy, ready-to-use orchestration platform for workloads.**
**The bootstrap path — turning a single bare virtual machine into a working Railiance, so that standing up a new Railiance is a repeatable procedure rather than an act of memory.**
---
## Why This Exists
A hardened set of servers is not yet somewhere workloads can run.
Something must install and configure the **orchestration runtime** — its
scheduler, networking, ingress, admission controls, and the operators that
extend it — and then **prove the cluster is healthy**.
Railiance's layers each describe how to operate a system that **already
exists**. S1 converges a substrate, S2 runs a cluster on it, S3 provides shared
services, and so on. Every one of them assumes the thing beneath it is already
there.
Without a disciplined runtime layer:
Nothing owns the first step: *you have one virtual machine and an intention —
now what?*
* cluster configuration drifts between environments,
* extension and addon boundaries blur,
* and higher layers deploy onto an unproven runtime.
Without a bootstrap path:
This layer exists to provide that runtime **consistently and verifiably**,
so the layers above can deploy onto a known-good cluster.
* standing up a new Railiance depends on the memory of whoever did it last,
* the ordering between substrate, cluster, secrets, and forge is rediscovered
each time,
* the chicken-and-egg problems (secrets needed to fetch the code that manages
secrets) are solved ad hoc and differently each time,
* and "Railiance is easy to adopt" stays an aspiration nobody can test.
This repo exists so that a new Railiance can be **initiated from nothing**, by
someone who was not present when the first one was built.
---
@ -35,75 +41,78 @@ so the layers above can deploy onto a known-good cluster.
> *Where we are going.*
To become the **canonical home for the cluster runtime** — installation
and baseline configuration of the orchestrator, its networking and
ingress, admission controls, cluster-level operators and addons, and
runtime access — operated to a **verified-healthy** standard.
To become the **canonical entry point into Railiance** — the one repository a
newcomer clones to turn a bare machine into a Railiance that can then manage
itself through the ordinary layers.
This means:
* The runtime is configured to a **consistent baseline** every time
* Cluster health is **proven by tests**, not assumed
* Capabilities are extended through **operators and addons** behind clear
boundaries
* Runtime **access is managed and rotatable**
* The path from **one VM to a working Railiance** is a documented, runnable
sequence
* **Ordering and prerequisites** between layers are explicit, not folklore
* Bootstrap **chicken-and-egg problems** are named and solved deliberately
* The procedure is **testable** — a new Railiance can be raised from scratch to
prove the path still works
* Once bootstrapped, the system **hands off** to the ordinary layers and this
repo steps out of the way
---
## Core Principles
### 1. Runtime, Not Workloads
### 1. From Nothing, Repeatably
Provide the place where things run. Do not own the things that run there.
The path assumes no pre-existing Railiance, no prepared secrets, and no
institutional memory. If a step depends on something that already exists, that
dependency is stated.
### 2. Healthy by Verification
### 2. Hand Off, Do Not Hold
Cluster health is demonstrated by smoke tests and checks, never assumed.
This repo raises a Railiance and then yields. Ongoing operation belongs to S1S5.
Anything this repo keeps operating is a boundary violation.
### 3. Consistent Baseline
### 3. The Path Is Tested by Walking It
The runtime is brought up the same way every time, so environments stay
comparable and predictable.
A bootstrap procedure that has not been run from scratch recently is a
hypothesis. Proving it means raising a new Railiance, not reviewing the
document.
### 4. Built on a Verified Substrate
### 4. Honest About Manual Steps
Assumes a converged, hardened foundation beneath it; it does not reach
down and reconfigure that foundation.
Some bootstrap steps genuinely require a human — provisioning a machine,
entering a root credential. These are named as such rather than hidden behind
automation that pretends otherwise.
### 5. Extensible by Operators
### 5. Adoption Is the Point
Cluster capabilities are added through operators and addons within clear
boundaries, not by ad-hoc mutation.
### 6. Managed Access
Access to the runtime is controlled, auditable, and rotatable.
Ease of initiation is a Railiance goal, not a convenience. A Railiance that only
its author can stand up is not a framework.
---
## What This Is (Conceptually)
This layer is:
The **ignition sequence** for a Railiance:
* a **cluster runtime** layer
* an **orchestrator installation and configuration**
* a **networking, ingress, and admission** baseline
* a host for **cluster-level operators and addons**
* a **health-verification gate**
* **runtime access** management
* the newcomer quickstart and its prerequisites
* the ordering contract between substrate, cluster, secrets, and forge
* bootstrap secret material handling, and how it is replaced by the real custody
path once one exists
* the handoff point where the ordinary layers take over
* a test that the whole path still works
---
## What This Is Not
This layer is not:
* the infrastructure substrate beneath it
* a provider of shared, stateful platform services
* an application or business-capability provider
* an owner of the workloads it runs
It is the **runtime an entire landscape's workloads depend on**.
* **Not the cluster runtime.** k3s, Helm, ingress, CNI, operators and kubeconfig
management belong to `railiance-cluster` (S2). This repo previously declared
itself S2 — that was a copied declaration, not an intent.
* **Not the infrastructure substrate.** OS provisioning, hardening and baseline
belong to `railiance-infra` (S1).
* **Not a second home for layer content.** It sequences the layers; it does not
duplicate what they own.
* **Not an ongoing operations repo.** After handoff, it has no running role.
---
@ -111,14 +120,33 @@ It is the **runtime an entire landscape's workloads depend on**.
This layer is expected to evolve toward:
* Stronger, continuous **health verification**
* Smoother, safer **runtime upgrades**
* Clearer **operator and addon** boundaries
* More robust **access rotation**
* Self-evidencing, **auditable** runtime state
* A **single documented path** from bare VM to working Railiance
* Explicit **prerequisite and ordering** contracts with S1 and S2
* Deliberate handling of **bootstrap secret material** and its retirement
* A **rehearsable** bootstrap — proven by raising a fresh Railiance, not by review
* Reduced manual steps over time, with the remaining ones **named honestly**
* Eventually, bootstrapping onto **substrates other than the current one**
without changing the model
---
## History
This repository previously carried a copied declaration identifying it as the
S2 cluster runtime layer — identical in intent to `railiance-cluster`, with
which it shares no git history but nearly all of its content. It was one of four
repos (`bootstrap`, `cluster`, `hosts`, `infra`) created by copying working
trees as the S1/S2 layering idea emerged.
That declaration was wrong. The repository's own `QUICKSTART.md` — *"set up your
very first Railiance host"* — describes what this repo is actually for, and this
INTENT now states it.
See `railiance-platform/ArchitectureBlueprint.md` §4 for the full lineage and
`history/2026-08-11-railiance-architecture-in-aspiration.md` for the assessment.
---
## Guiding Question
> **How can the runtime an entire landscape's workloads depend on be made consistently healthy, upgradable, and trustworthy?**
> *Could someone who was not there raise a new Railiance from this?*