Skip to content

Draft: add Fog substrate positioning note#5

Merged
mdheller merged 2 commits into
mainfrom
docs/fog-substrate-position
Apr 16, 2026
Merged

Draft: add Fog substrate positioning note#5
mdheller merged 2 commits into
mainfrom
docs/fog-substrate-position

Conversation

@mdheller
Copy link
Copy Markdown
Member

Summary

This PR captures the SourceOS-side substrate role for the Fog layer.

It adds docs/FOG_SUBSTRATE.md to make the OS-layer responsibility explicit:

  • local storage substrate prerequisites
  • canonical /srv/fog/* directory contract
  • container-host baseline expectations
  • TopoLVM readiness as substrate/infrastructure, not distributed semantics

Why this belongs here

SourceOS is the immutable local-first substrate for workstation + edge lanes. The Fog layer depends on this repo for machine invariants, not for topic replication logic or compute marketplace semantics.

Intentionally not included

This PR does not add:

  • ignition units
  • disk bootstrap scripts
  • container runtime configs
  • distributed topic semantics
  • compute settlement logic

Those belong in downstream repos after the contract surface is stabilized.

Follow-up

Subsequent PRs should land:

  1. substrate-level mount and storage conventions
  2. first-boot realization in socios-ignition
  3. workstation/CI conformance checks in workstation-contracts

@mdheller mdheller requested a review from Copilot April 16, 2026 21:05
@mdheller mdheller marked this pull request as ready for review April 16, 2026 21:05
@mdheller
Copy link
Copy Markdown
Member Author

@copilot fix failed checks

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds documentation clarifying the OS-substrate responsibilities that SourceOS provides to support the Fog layer, focusing on stable local storage + filesystem contracts and clear layering boundaries.

Changes:

  • Introduces a new doc describing what Fog-related substrate concerns belong in SourceOS (and what explicitly does not).
  • Defines a canonical /srv/fog/* directory contract and expectations for container-host posture.
  • Documents TopoLVM readiness as an infrastructure prerequisite rather than distributed semantics.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/FOG_SUBSTRATE.md
Comment on lines +37 to +41

SourceOS should define the default local execution posture for fog-capable nodes/workstations:

- Linux-first container host defaults
- rootless-friendly execution where possible
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The list under SourceOS should define the default local execution posture...: starts without a blank line. With markdownlint enabled in CI, this will trigger MD032. Insert a blank line before the list items.

Copilot uses AI. Check for mistakes.
Comment thread docs/FOG_SUBSTRATE.md

### 4. TopoLVM readiness

When a node participates in Kubernetes lanes, the substrate should provide the prerequisites needed for a local CSI/LVM stack such as TopoLVM.
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The list after Important layering rule: is missing a blank line before the list items. This is flagged by markdownlint (MD032) and can fail CI. Add a blank line between the label line and the list.

Suggested change
When a node participates in Kubernetes lanes, the substrate should provide the prerequisites needed for a local CSI/LVM stack such as TopoLVM.
Important layering rule:

Copilot uses AI. Check for mistakes.
Comment thread docs/FOG_SUBSTRATE.md
Comment on lines +13 to +17
This includes:

- LVM2 availability
- volume group and thin-pool conventions
- safe disk targeting rules
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The list starting immediately after This includes: is not separated by a blank line. This violates markdownlint's default MD032 (lists should be surrounded by blank lines) and will fail the CI markdownlint step. Add a blank line between the paragraph and the list.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 16, 2026

@copilot fix failed checks

Fixed in commit 35f348f. I resolved the failing CI checks by fixing markdownlint MD032 spacing violations in docs/FOG_SUBSTRATE.md; this is a docs-only change with no UI impact, so no screenshot applies.

@mdheller mdheller merged commit 4e512eb into main Apr 16, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants