- Smarty 100%
| components | ||
| environments | ||
| files | ||
| services | ||
| users | ||
| LICENSE | ||
| README.md | ||
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.