No description
Find a file
2026-05-27 19:58:46 +02:00
components feat: remove mos_sysvol component, add hero_compute/hero_proc/my_hypervisor configs 2026-03-27 08:32:12 +01:00
environments feat: remove mos_sysvol component, add hero_compute/hero_proc/my_hypervisor configs 2026-03-27 08:32:12 +01:00
files feat: initial environment and component configs 2026-03-25 15:08:27 +01:00
services feat: remove mos_sysvol component, add hero_compute/hero_proc/my_hypervisor configs 2026-03-27 08:32:12 +01:00
users feat: initial environment and component configs 2026-03-25 15:08:27 +01:00
LICENSE chore: canonicalize LICENSE 2026-05-27 19:58:46 +02:00
README.md docs: restructure README with standard sections 2026-05-27 16:43:47 +02:00

mos_config

What this is

Environment-specific configuration repository for MyceliumOS runtime components. It defines which components are enabled, their versions (branch, tag, or commit), service templates, config file templates, and user access controls across four deployment environments: development, testing, canary, and production.

This repository is consumed by mos_runtimes to build environment-specific flists and provisioned images.

What this repository contains

mos_config/
├── environments/
│   ├── dev.conf              # Development environment config
│   ├── testing.conf          # Testing environment config
│   ├── canary.conf           # Canary environment config
│   └── production.conf       # Production environment config
├── components/
│   ├── mycelium.conf         # Overlay network daemon config
│   ├── my_hypervisor.conf    # Hypervisor config
│   ├── hero_compute.conf     # Compute service config
│   ├── hero_proc.conf        # Process supervisor config
│   └── youki.conf            # OCI container runtime config
├── users/
│   ├── dev.conf              # Dev environment user provisioning
│   ├── testing.conf          # Testing environment user provisioning
│   ├── canary.conf           # Canary environment user provisioning
│   └── production.conf       # Production environment user provisioning
├── files/
│   └── mycelium.conf         # Example: mycelium public peers config
└── services/
    └── mycelium.toml.tpl     # Example: my_init service template

Environments

Each environment config declares:

  • Component list — which components are enabled and their versions (NAME:ENABLED:VERSION:VERSION_TYPE)
  • Service overrides — per-component runtime settings (e.g., restart policy)

Components

Each component config declares:

  • Binary metadata — name, install path, flist prefix
  • Source — git repository URL or release artifact URL
  • Build instructions — build directory, extra files to include
  • Config mapping — config files and service templates to embed in the flist

Users

Per-environment user provisioning configs define:

  • SSH public keys and their sources
  • Sudo access rules (passwordless or restricted)
  • Account creation policies

Role in the stack

mos_config is the declarative configuration layer for MyceliumOS. It is consumed by mos_runtimes during the build process to produce versioned, environment-specific flists. These flists are fetched and unpacked post-boot by MyceliumOS nodes, enabling flexible runtime composition without baking all components into the initramfs.

The separation of config from build logic allows different environments (dev, testing, canary, production) to run different component versions and access policies from the same build toolchain.

Relation to ThreeFold

This technology is used within the ThreeFold ecosystem and was first deployed on the ThreeFold Grid. The component itself is designed as reusable infrastructure technology and should be understood by its technical function first, independent of any specific deployment.

Ownership

This repository is owned and maintained by TF-Tech NV, a Belgian company responsible for the development and maintenance of this technology.

License

This project is licensed under the Apache License 2.0 — see the LICENSE file for details.