GitHunt
JM

jmacdonagh/flatcar-init

Flatcar boot files to accommodate the systemd boot

System Initialization for Flatcar Container Linux

Flatcar uses systemd for init and process management. This repo is
divided into three collections of files:

  • configs: Customized daemon configuration files, usually installed into
    /etc but really the sky is the limit there.
  • scripts: Helper scripts for init and service startup. These are generally to
    be used as systemd oneshot services and installed into /usr/lib/flatcar.
  • systemd: Unit files for mount points, our helper scripts, or other services
    that don't install their own unit files.

The coreos-base/coreos-init ebuild handles the install process.

Important Steps

A few notes on things that must happen which are unique to Flatcar.

  • resize btrfs: Support easy VM growth by checking if there is unused space at
    the end of the disk and expanding the filesystem to use it.
  • mount /: This directory can be completely empty.
  • initialize /: The / partition can be completely formatted by the
    user. Run systemd-tmpfiles to set everything up into a known state.
  • mount /usr: The entire distro lives in this directory.
  • mount /oem: If an OEM is available on disk make sure it gets mounted here.
  • generate ssh keys: The stock sshd units do not handle this so we need to.

Languages

Shell72.0%Go22.8%Python3.5%Makefile1.6%
BSD 3-Clause "New" or "Revised" License
Created January 19, 2025
Updated January 19, 2025
jmacdonagh/flatcar-init | GitHunt