feat: allow provider-delegated reefs with no rail
Object-storage reefs omit primary_rail and hosted_rails. Scaleway operates S3; reef-storage only names the boundary. Finish RMASTER-WP-0022.
This commit is contained in:
parent
82b7b7295d
commit
654bbe891b
8 changed files with 67 additions and 32 deletions
|
|
@ -10,12 +10,16 @@ boundary.
|
|||
A reef is the place where:
|
||||
|
||||
- infrastructure becomes a named operational reality,
|
||||
- rails are installed or made available,
|
||||
- managed workloads are bound,
|
||||
- rails may be installed or made available,
|
||||
- managed workloads may be bound,
|
||||
- a provider-delegated capability may be named as a substrate,
|
||||
- and operators interact with a concrete environment.
|
||||
|
||||
More concretely, a reef represents **compute resources organized for a defined
|
||||
purpose**.
|
||||
A reef is **one durable operational boundary organized for a defined
|
||||
purpose**. That purpose is often compute. It can also be a
|
||||
provider-operated capability we consume as a unit — for example S3
|
||||
object storage at Scaleway (`reef-storage`). In that case there is **no
|
||||
rail**: we do not take care of how the capability is provided.
|
||||
|
||||
The substrate may be:
|
||||
|
||||
|
|
@ -24,10 +28,11 @@ The substrate may be:
|
|||
- a workstation,
|
||||
- an edge site,
|
||||
- a lab substrate,
|
||||
- or a small fleet treated as one unit.
|
||||
- a small fleet treated as one unit,
|
||||
- or a provider-delegated service boundary (object storage, later others).
|
||||
|
||||
The important point is not the shape of the hardware. The important point is
|
||||
that the compute resources form one recognizable operational boundary.
|
||||
that the boundary is one recognizable operational reality.
|
||||
|
||||
## Why `reef-*` Instead Of `host-*`
|
||||
|
||||
|
|
@ -41,8 +46,9 @@ Railiance substrates are not always just hosts. They may also be:
|
|||
- grouped node fleets,
|
||||
- or mixed environments with both machines and control surfaces.
|
||||
|
||||
`reef-*` is useful because it names the substrate reality that rails attach to,
|
||||
not merely the hardware object underneath it.
|
||||
`reef-*` is useful because it names the substrate reality — the place
|
||||
rails may attach, or the place a delegated capability is consumed — not
|
||||
merely the hardware object underneath it.
|
||||
|
||||
## Core Responsibility Of A Reef
|
||||
|
||||
|
|
@ -51,8 +57,10 @@ A reef repo should answer:
|
|||
- What is this substrate called?
|
||||
- What components belong to it?
|
||||
- What access paths and operator assumptions apply?
|
||||
- Which rails exist here?
|
||||
- Which `rapp`s are allowed or deployed here?
|
||||
- Which rails exist here, if any?
|
||||
- Which `rapp`s are allowed or deployed here, if any?
|
||||
- For a provider-delegated reef: which provider, region, and non-secret
|
||||
attributes (endpoint, bucket, …) define the boundary?
|
||||
- Which overlays, exceptions, and evidence are specific to this substrate?
|
||||
|
||||
It should also make the substrate purpose explicit, so the existence of the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue