Migrating from Fedora Atomic Host (FAH) to Fedora CoreOS (FCOS)

Overview

Fedora Atomic Host was a system to deploy applications in containers. Existing FAH users are encouraged to migrate to FCOS, as the project has reached its end-of-life.

FAH used cloud-init for provisioning, which required users to provide a cloud-config file as userdata for configuration of the instance. Since FCOS Ignition and cloud-init are different and have overlapping feature sets, it is not trivial to convert cloud-init files to Ignition. Currently, there is no tool for this conversion, so you must manually convert cloud-init configs to Fedora CoreOS configs. Refer to FCCT Specification for an explanation of the available configuration options.

Converting cloud-init and cloud-config userdata

The following examples show the difference between FAH userdata and user configuration with FCC.

Example of FAH userdata file:
#cloud-config
password: atomic
ssh_pwauth: True
chpasswd: { expire: False }

ssh_authorized_keys:
  - ssh-rsa ...

This can be manually translated into a passwd node within the FCC file:

Example of users:
passwd:
  users:
    - name: core
      password_hash: "$6$5s2u6/jR$un0AvWnqilcgaNB3Mkxd5yYv6mTlWfOoCYHZmfi3LDKVltj.E8XNKEcwWm..."
      ssh_authorized_keys:
        - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGdByTgSVHq......."
      groups: [ sudo, docker ]

Converting storage definitions

With FAH, you could configure additional storage for the system with either cloud-init or docker-storage-setup via the /etc/sysconfig/docker-storage-setup file. With FCOS, you should configure additional storage at provisioning time via Ignition in the storage node of the FCC file.