Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions butane/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Butane source material

This directory holds Butane source fragments and profile inputs that feed installer customization or first-boot provisioning.

The intent is to keep SourceOS-specific, flavor-owned Butane source here while execution/rendering automation lives downstream.
12 changes: 12 additions & 0 deletions butane/workstation/base.bu
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
variant: fcos
version: 1.6.0
passwd:
users:
- name: sourceos
groups:
- wheel
ssh_authorized_keys: []
storage:
files: []
systemd:
units: []
11 changes: 11 additions & 0 deletions channels/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Release channels

This directory holds SourceOS release-channel declarations.

A channel defines the logical promotion lane for artifact families such as:
- dev
- qa
- prod
- customer or site-specific rings

Channel policy and promotion automation are executed downstream; this repo owns the declared channel truth.
13 changes: 13 additions & 0 deletions channels/dev.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: sourceos.ai/v0
kind: ReleaseChannel
metadata:
name: dev
spec:
description: Development and integration ring for pre-production SourceOS artifacts.
promotionTargets:
- qa
allowedFlavors:
- sourceos-workstation
defaultInstallerProfiles:
- live-usb-default
- pxe-default
10 changes: 10 additions & 0 deletions cosa/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# coreos-assembler / image composition source

This directory is the landing zone for FCOS/SourceOS image composition source material.

It should eventually contain:
- config-git inputs for coreos-assembler
- tree/manifests for thicker derivative lanes
- release-build metadata and helper notes

This directory is artifact truth only. Build orchestration belongs in `socios`.
45 changes: 45 additions & 0 deletions docs/ARTIFACT_TRUTH.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# SourceOS artifact truth

`SourceOS` is the immutable substrate and artifact-truth repository for the Linux-side stack.

This repo owns the definitions of **what** gets built and released, not the automation that stands builders up or the control plane that executes workflows.

## This repo owns

- flavor definitions
- coreos-assembler / image-composition source material
- Butane / Ignition source material
- installer profile definitions
- release channels
- artifact manifests and release metadata

## This repo does not own

- Foreman/Katello management host automation
- Tekton / Argo CD execution scaffolding
- workspace controller logic
- runner↔adapter protocol contracts
- generic execution control plane behavior

Those belong respectively in:
- `SociOS-Linux/socios`
- `SociOS-Linux/workstation-contracts`
- `SocioProphet/sociosphere`
- `SocioProphet/agentplane`
- `SourceOS-Linux/sourceos-spec`

## Directory intent

- `flavors/` — named SourceOS flavor definitions
- `cosa/` — coreos-assembler or build-source material
- `butane/` — Butane source fragments and rendered-input source material
- `installer/` — installer profile definitions for live ISO / PXE / recovery surfaces
- `channels/` — release-channel declarations
- `manifests/` — artifact manifests and release metadata

## Follow-on

Subsequent changes should:
- replace stubs with canonical flavor and installer schemas aligned to `sourceos-spec`
- bind artifact manifests to `ReleaseManifest` / `EvidenceBundle` families
- add FCOS-specific build-source structure under `cosa/`
14 changes: 14 additions & 0 deletions flavors/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# SourceOS flavors

This directory holds named SourceOS flavor definitions.

A flavor is the stable substrate family that downstream automation composes into install media, disk images, or promoted release artifacts.

## Intended contents

- base flavor descriptors
- flavor-specific package/image composition inputs
- flavor policy notes
- flavor-level metadata used by release channels

See `sourceos-workstation.example.yaml` for the initial stub.
21 changes: 21 additions & 0 deletions flavors/sourceos-workstation.example.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
apiVersion: sourceos.ai/v0
kind: Flavor
metadata:
name: sourceos-workstation
labels:
family: workstation
substrate: fcos
spec:
baseStream: stable
architecture:
- x86_64
buildMode: thin-personalization
releaseChannels:
- dev
- qa
- prod
installerProfiles:
- live-usb-default
- pxe-default
butaneRefs:
- butane/workstation/base.bu
8 changes: 8 additions & 0 deletions installer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Installer profiles

This directory holds installer profile definitions for SourceOS artifact surfaces such as:
- customized live USB / recovery media
- PXE / UEFI HTTP boot install surfaces
- other future install or recovery delivery modes

Profiles here are artifact-truth inputs. Media customization and publishing automation live in `socios`.
12 changes: 12 additions & 0 deletions installer/live-usb-default.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: sourceos.ai/v0
kind: InstallerProfile
metadata:
name: live-usb-default
labels:
surface: live-usb
spec:
baseArtifact: fcos-live-iso
ignitionMode: embed-live-and-dest
networkMode: optional-keyfiles
secureBoot: true
enrollmentProfileRef: urn:srcos:enrollment-profile:default-workstation
14 changes: 14 additions & 0 deletions installer/pxe-default.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
apiVersion: sourceos.ai/v0
kind: InstallerProfile
metadata:
name: pxe-default
labels:
surface: pxe
spec:
baseArtifact: fcos-live-pxe
transport: uefi-http-boot
ignitionMode: dest-only
kernelArgs:
- ignition.firstboot
- ignition.platform.id=metal
enrollmentProfileRef: urn:srcos:enrollment-profile:default-workstation
7 changes: 7 additions & 0 deletions manifests/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Artifact manifests

This directory holds release and artifact metadata emitted or curated as part of SourceOS artifact truth.

The long-term direction is to align these manifests with the shared `ReleaseManifest` and `EvidenceBundle` families in `sourceos-spec`.

Automation that generates, signs, publishes, and promotes these manifests lives downstream in `socios` and related execution/control surfaces.
22 changes: 22 additions & 0 deletions manifests/release-manifest.example.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"id": "urn:srcos:release:sourceos-workstation-dev-0001",
"type": "ReleaseManifest",
"specVersion": "2.0.0",
"sourceBuildRequestRef": "urn:srcos:build-request:sourceos-workstation-dev-0001",
"artifactRefs": [
"artifacts/sourceos-workstation-dev.iso"
],
"artifactHashes": [
"sha256:REPLACE_WITH_REAL_DIGEST"
],
"sbomRefs": [],
"evidenceRefs": [],
"labels": {
"flavor": "sourceos-workstation",
"channel": "dev",
"surface": "live-usb"
},
"channel": "dev",
"status": "draft",
"createdAt": "1970-01-01T00:00:00Z"
}
Loading