Skip to content

os: Manage OS scripts and config files using Forklift #349

@ethanjli

Description

@ethanjli

Motivation

Currently, various files are copied into place by the distro setup scripts:

  • systemd unit files
  • shell scripts executed by systemd services
  • /etc config files
  • /boot/config.txt (and/or snippets of it)
  • $HOME/.local/etc config files
  • local static binaries such as machine-name

This makes them hard to develop (because the develop/test iteration loop involves re-running the distro setup scripts on a fresh SD card image each time), and it also makes them hard to upgrade with integrity (because the SD card must be re-flashed to apply new changes). If we could manage such files with Forklift, then it would be easier iterate on these things, and to deploy them.

Goals

Steps

  • Manage shell scripts in Forklift
  • Mount /etc and /usr as overlay filesystems, each with an intermediate layer managed by Forklift (so that Forklift can deliver arbitrary files into /etc and /usr at startup, and change which files it delivers in an atomic way)
  • Manage new systemd units and overrides with Forklift
  • Manage overrides for existing systemd services with Forklift
  • Manage arbitrary files in /etc and /usr with Forklift
  • Manage static binaries with Forklift

Unresolved Questions

Implementation History

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions