Skip to content

Documentation: The reset and reconfiguration procedure is unclear about where it pulls the ignition file from. #1984

@PackElend

Description

@PackElend

Hello,
Before I go into details, I will explain the background.
I started to familiarise myself with Flatcar Provisioning by setting up a simple instance on bare metal using the installer script, as described in Installing Flatcar Container Linux to disk | Flatcar Container Linux.

My configuration file is quite simple:

variant: flatcar
version: 1.1.0

passwd:
  users:
    - name: admin
      password_hash: "$6$rounds=4096$1s..."
      ssh_authorized_keys:
        - "ssh-ed25519 AAAA..."
      groups: ["sudo"]

As I read in the documentation about Customizing Flatcar | Flatcar Container Linux, I thought I could easily adapt the configuration by adapting the Ignition file and rebooting. This way, I wouldn't need to consider what I might need for future use cases.
(In addition, I thought Docker Compose was preinstalled.)

Going deeper with flatcar I noted it is not that simple:

From that, I gathered that there is an option to add Docker Compose, but it is quite a long script. At first glance, I understood that I could extend a running instance. This is particularly due to the 'How do I use sysexts?' section of the Overview | sysext-bakery, which explains how to add scripts to a running instance. However, I cannot find any information about 'systemd-sysupdate' in the Flatcar Container Linux | Flatcar Container Linux. Therefore, I concluded that the only option to avoid losing my Docker Volumes when Installing Flatcar Container Linux to disk | Flatcar Container Linux again is to reprovision.


This leads me to the following questions:

  1. is the only option to extend a running instance to reprovision?
  2. if 1. is wrong, how to extend a life system?
  3. in addtion to 2.: using System Extensions for Flatcar?
  4. Where is the ignition file used for reprovisioning?
    I could only find indirect information on that: that there might be something in /usr/share/oem/. I came across this information in the Notes for distributors | Flatcar Container Linux and simply browsed /usr/share/oem/` to find the file /usr/share/oem/config.ign by coincidence.
    Finding the same full path of this file in Booting Flatcar Container Linux via PXE | Flatcar Container Linux and flatcar-install script gives me confidence that this is the file I'm looking for.
    Further conformation is given by
    1. iPXE - open source boot firmware [howto:flatcar]
    2. Installing Flatcar Container Linux on Linode | Scott's Blog
    3. and somehow Immutable_Infrastructure_with_Flatcar_Container_Linux.pdf
  5. can I modify it?
    It is located in /usr what is read-only according to Adding disk space to your Flatcar Container Linux machine | Flatcar Container Linux
    1. are the side-effects as described in Technical Details for Manual Ignition Re-runs prevented if I do e.g.
    sudo flatcar-reset --keep-machine-id --keep-paths '/etc/ssh/ssh_host_.*' /var/log
    sudo systemctl reboot
    

I'm willing to contribute to the documention by doing a PR as happening in flatcar/flatcar-website#489 (review)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    📝 Needs Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions