Running Flatcar Container Linux on AWS EC2

    The current AMIs for all Flatcar Container Linux channels and EC2 regions are listed below and updated frequently. Using CloudFormation is the easiest way to launch a cluster, but it is also possible to follow the manual steps at the end of the article. Questions can be directed to the Flatcar Container Linux IRC channel or user mailing list .

    Release retention time

    After publishing, releases will remain available as public AMIs on AWS for 9 months. AMIs older than 9 months will be un-published in regular garbage collection sweeps. Please note that this will not impact existing AWS instances that use those releases. However, deploying new instances (e.g. in autoscaling groups pinned to a specific AMI) will not be possible after the AMI was un-published.

    Choosing a channel

    Flatcar Container Linux is designed to be updated automatically with different schedules per channel. You can disable this feature , although we don’t recommend it. Read the release notes for specific features and bug fixes.

    The Alpha channel closely tracks master and is released frequently. The newest versions of system libraries and utilities will be available for testing. The current version is Flatcar Container Linux 3066.0.0.

    View as json feed: amd64 arm64
    EC2 Region AMI Type AMI ID CloudFormation
    ap-east-1 HVM (amd64) ami-07f9dd656bbe8c852 Launch Stack
    HVM (arm64) ami-05606c3dac5ea8c72 Launch Stack
    ap-northeast-1 HVM (amd64) ami-059d7128bc98a7c28 Launch Stack
    HVM (arm64) ami-0ccb4713cf158f7e1 Launch Stack
    ap-northeast-2 HVM (amd64) ami-013460974618c0ae8 Launch Stack
    HVM (arm64) ami-087c7cad534e122c4 Launch Stack
    ap-south-1 HVM (amd64) ami-0d01528c6df1f07fb Launch Stack
    HVM (arm64) ami-0857ac14fa2e47e6e Launch Stack
    ap-southeast-1 HVM (amd64) ami-0ab5e3d5deb145049 Launch Stack
    HVM (arm64) ami-0d080015f52cd5611 Launch Stack
    ap-southeast-2 HVM (amd64) ami-0666121366b78c9d8 Launch Stack
    HVM (arm64) ami-01568593029c96d83 Launch Stack
    ca-central-1 HVM (amd64) ami-00278f6be15a32c12 Launch Stack
    HVM (arm64) ami-0004f120bc755b78e Launch Stack
    eu-central-1 HVM (amd64) ami-0edbcebd04e271621 Launch Stack
    HVM (arm64) ami-06c6aec44523a79a5 Launch Stack
    eu-north-1 HVM (amd64) ami-08e4346857f25bb8f Launch Stack
    HVM (arm64) ami-0a32181420c1b5bbb Launch Stack
    eu-west-1 HVM (amd64) ami-0db7895b18b21ecee Launch Stack
    HVM (arm64) ami-01c53a75c727d7f35 Launch Stack
    eu-west-2 HVM (amd64) ami-0bf0ed2984b93ac07 Launch Stack
    HVM (arm64) ami-063d9b852dde5fe9f Launch Stack
    eu-west-3 HVM (amd64) ami-0f0bb95d1b104d5b3 Launch Stack
    HVM (arm64) ami-0b142ba8ddbb7888e Launch Stack
    me-south-1 HVM (amd64) ami-0006b907332b1830c Launch Stack
    HVM (arm64) ami-0569ef3a473c3f6b5 Launch Stack
    sa-east-1 HVM (amd64) ami-0e5e599a78505b9f9 Launch Stack
    HVM (arm64) ami-0b8ff2a52a287d01c Launch Stack
    us-east-1 HVM (amd64) ami-02d7e78122a000198 Launch Stack
    HVM (arm64) ami-04ad04eb3d7728997 Launch Stack
    us-east-2 HVM (amd64) ami-01ea840a361e4c076 Launch Stack
    HVM (arm64) ami-0f6da04bf3246b385 Launch Stack
    us-west-1 HVM (amd64) ami-036afa09a2276e4f0 Launch Stack
    HVM (arm64) ami-096a0c09833837388 Launch Stack
    us-west-2 HVM (amd64) ami-0d0ed8deae42d190f Launch Stack
    HVM (arm64) ami-07a27d1c7bfe954f3 Launch Stack

    The Beta channel consists of promoted Alpha releases. The current version is Flatcar Container Linux 3033.1.1.

    View as json feed: amd64 arm64
    EC2 Region AMI Type AMI ID CloudFormation
    ap-east-1 HVM (amd64) ami-0d5cd2c76e30ab381 Launch Stack
    HVM (arm64) ami-0d37ba367edd08b30 Launch Stack
    ap-northeast-1 HVM (amd64) ami-0177b7c73dc7b4953 Launch Stack
    HVM (arm64) ami-0e41dbd6bd3ac4485 Launch Stack
    ap-northeast-2 HVM (amd64) ami-0f45620855abb8d3e Launch Stack
    HVM (arm64) ami-03ba86978d81801e8 Launch Stack
    ap-south-1 HVM (amd64) ami-0289a9b63efadd7a8 Launch Stack
    HVM (arm64) ami-098aca60ce6a990ee Launch Stack
    ap-southeast-1 HVM (amd64) ami-0cdf587f902eb8201 Launch Stack
    HVM (arm64) ami-041671dfaeefdbdb9 Launch Stack
    ap-southeast-2 HVM (amd64) ami-02edc0431324fcb97 Launch Stack
    HVM (arm64) ami-0ff19e937487f8989 Launch Stack
    ca-central-1 HVM (amd64) ami-09fd24cf0726df23c Launch Stack
    HVM (arm64) ami-0ed5f7520fc01641d Launch Stack
    eu-central-1 HVM (amd64) ami-0b77ae1a5bb82d9ba Launch Stack
    HVM (arm64) ami-0437dda06ba1f3fbe Launch Stack
    eu-north-1 HVM (amd64) ami-000496774c0c5c11d Launch Stack
    HVM (arm64) ami-0479ea22a5f458a18 Launch Stack
    eu-west-1 HVM (amd64) ami-0cc8574c3f509a449 Launch Stack
    HVM (arm64) ami-0dd85f655d37bc2ae Launch Stack
    eu-west-2 HVM (amd64) ami-00726d154f7c3c91c Launch Stack
    HVM (arm64) ami-0e963f0a44a36533c Launch Stack
    eu-west-3 HVM (amd64) ami-009d57c68b8cc0987 Launch Stack
    HVM (arm64) ami-0eaf9dea0e6e9d783 Launch Stack
    me-south-1 HVM (amd64) ami-0a5f6fcea555b919d Launch Stack
    HVM (arm64) ami-03921f042ffd5d5fa Launch Stack
    sa-east-1 HVM (amd64) ami-0a0c29ad5ec25dc9c Launch Stack
    HVM (arm64) ami-03b2eb1236e12adf8 Launch Stack
    us-east-1 HVM (amd64) ami-08e1b3121bc1c4131 Launch Stack
    HVM (arm64) ami-02d1e717f8bad38c6 Launch Stack
    us-east-2 HVM (amd64) ami-0aa59601fce078d23 Launch Stack
    HVM (arm64) ami-0c193f6c76906a723 Launch Stack
    us-west-1 HVM (amd64) ami-0c9117c6171f0de1b Launch Stack
    HVM (arm64) ami-0eaf8cc84c5feda42 Launch Stack
    us-west-2 HVM (amd64) ami-0fa0b2b0653f31f7a Launch Stack
    HVM (arm64) ami-0f74c7f5f9acb0f46 Launch Stack

    The Edge channel includes bleeding-edge features with the newest versions of the Linux kernel, systemd and other core packages. Can be highly unstable. The current version is Flatcar Container Linux 2466.99.0.

    EC2 Region AMI Type AMI ID CloudFormation
    ap-east-1 HVM (amd64) ami-0029ed2c00b284a95 Launch Stack
    HVM (arm64) ami-0cde7033fa6bcee17 Launch Stack
    ap-northeast-1 HVM (amd64) ami-03de4455102b2a92e Launch Stack
    HVM (arm64) ami-0a9ea66ee2b271587 Launch Stack
    ap-northeast-2 HVM (amd64) ami-0fa29269023d95001 Launch Stack
    HVM (arm64) ami-074cb3948a34017a0 Launch Stack
    ap-south-1 HVM (amd64) ami-0fb46b600f2aca4e1 Launch Stack
    HVM (arm64) ami-0ceaed7c9d0f87d45 Launch Stack
    ap-southeast-1 HVM (amd64) ami-0a6b32f389401c177 Launch Stack
    HVM (arm64) ami-0518d47f3b8b44d5b Launch Stack
    ap-southeast-2 HVM (amd64) ami-0412490cf5c6a15d3 Launch Stack
    HVM (arm64) ami-041e3a6cbb758958a Launch Stack
    ca-central-1 HVM (amd64) ami-076025e2f28c65607 Launch Stack
    HVM (arm64) ami-07fdb592799a132cf Launch Stack
    eu-central-1 HVM (amd64) ami-009f30f06e90a2962 Launch Stack
    HVM (arm64) ami-05fc26d5d73ca1f6b Launch Stack
    eu-north-1 HVM (amd64) ami-093a034857b0e19ae Launch Stack
    HVM (arm64) ami-0fd671b8a15ca5e0f Launch Stack
    eu-west-1 HVM (amd64) ami-0acd84e3d8e79c595 Launch Stack
    HVM (arm64) ami-00fca33bcd7f93826 Launch Stack
    eu-west-2 HVM (amd64) ami-0a844c6e6ed7e8591 Launch Stack
    HVM (arm64) ami-0ff13ff8623ef93f4 Launch Stack
    eu-west-3 HVM (amd64) ami-09bb22740c97e5fb0 Launch Stack
    HVM (arm64) ami-02b8b9c099f9868f9 Launch Stack
    me-south-1 HVM (amd64) ami-066ef9a0660b99958 Launch Stack
    HVM (arm64) ami-0d7a8f9f15c1e5234 Launch Stack
    sa-east-1 HVM (amd64) ami-0f1401074345667c6 Launch Stack
    HVM (arm64) ami-0de4279896aa46920 Launch Stack
    us-east-1 HVM (amd64) ami-0157dca117b3d3e5d Launch Stack
    HVM (arm64) ami-0422302ecc961671f Launch Stack
    us-east-2 HVM (amd64) ami-06f0a4868bcdfd485 Launch Stack
    HVM (arm64) ami-0a2b7312228a58f6c Launch Stack
    us-west-1 HVM (amd64) ami-081652cd66d10f632 Launch Stack
    HVM (arm64) ami-02bd3609d5a2b957a Launch Stack
    us-west-2 HVM (amd64) ami-053930c06131d49ad Launch Stack
    HVM (arm64) ami-0d8325578a3100869 Launch Stack

    The Stable channel should be used by production clusters. Versions of Flatcar Container Linux are battle-tested within the Beta and Alpha channels before being promoted. The current version is Flatcar Container Linux 2983.2.1.

    View as json feed: amd64
    EC2 Region AMI Type AMI ID CloudFormation
    ap-east-1 HVM (amd64) ami-0a48fa3bbf462f0ff Launch Stack
    ap-northeast-1 HVM (amd64) ami-050816ccedaaeb8a2 Launch Stack
    ap-northeast-2 HVM (amd64) ami-03af5432243e40991 Launch Stack
    ap-south-1 HVM (amd64) ami-08165d837cc8ef7f6 Launch Stack
    ap-southeast-1 HVM (amd64) ami-0b6edc73dc098ba7c Launch Stack
    ap-southeast-2 HVM (amd64) ami-0995cac81d6af43b9 Launch Stack
    ca-central-1 HVM (amd64) ami-08a4a5aad0d8df897 Launch Stack
    eu-central-1 HVM (amd64) ami-0aa389f6b6ee6a92f Launch Stack
    eu-north-1 HVM (amd64) ami-06ee80f195a37cd91 Launch Stack
    eu-west-1 HVM (amd64) ami-0f49bf244b066dcec Launch Stack
    eu-west-2 HVM (amd64) ami-016dfe6a2b22b09a4 Launch Stack
    eu-west-3 HVM (amd64) ami-004e44a5e5874fb47 Launch Stack
    me-south-1 HVM (amd64) ami-069603c7facb1ee7b Launch Stack
    sa-east-1 HVM (amd64) ami-059285bd1fce28373 Launch Stack
    us-east-1 HVM (amd64) ami-05ca28cd9e1fa05fc Launch Stack
    us-east-2 HVM (amd64) ami-02cf9dd33c947653a Launch Stack
    us-west-1 HVM (amd64) ami-0de6eeaadfc2b3e19 Launch Stack
    us-west-2 HVM (amd64) ami-02f37fad71fba6110 Launch Stack

    AWS China AMIs maintained by Giant Swarm

    The following AMIs are not part of the official Flatcar Container Linux release process and may lag behind (query version).

    View as json feed: amd64
    EC2 Region AMI Type AMI ID CloudFormation

    CloudFormation will launch a cluster of Flatcar Container Linux machines with a security and autoscaling group.

    Container Linux Configs

    Flatcar Container Linux allows you to configure machine parameters, configure networking, launch systemd units on startup, and more via Container Linux Configs. These configs are then transpiled into Ignition configs and given to booting machines. Head over to the docs to learn about the supported features .

    You can provide a raw Ignition config to Flatcar Container Linux via the Amazon web console or via the EC2 API .

    As an example, this Container Linux Config will configure and start etcd:

    etcd:
      # All options get passed as command line flags to etcd.
      # Any information inside curly braces comes from the machine at boot time.
    
      # multi_region and multi_cloud deployments need to use {PUBLIC_IPV4}
      advertise_client_urls:       "http://{PRIVATE_IPV4}:2379"
      initial_advertise_peer_urls: "http://{PRIVATE_IPV4}:2380"
      # listen on both the official ports and the legacy ports
      # legacy ports can be omitted if your application doesn't depend on them
      listen_client_urls:          "http://0.0.0.0:2379"
      listen_peer_urls:            "http://{PRIVATE_IPV4}:2380"
      # generate a new token for each unique cluster from https://discovery.etcd.io/new?size=3
      # specify the initial size of your cluster with ?size=X
      discovery:                   "https://discovery.etcd.io/<token>"
    

    Instance storage

    Ephemeral disks and additional EBS volumes attached to instances can be mounted with a .mount unit. Amazon’s block storage devices are attached differently depending on the instance type . Here’s the Container Linux Config to format and mount the first ephemeral disk, xvdb, on most instance types:

    storage:
      filesystems:
        - mount:
            device: /dev/xvdb
            format: ext4
            wipe_filesystem: true
    
    systemd:
      units:
        - name: media-ephemeral.mount
          enable: true
          contents: |
            [Mount]
            What=/dev/xvdb
            Where=/media/ephemeral
            Type=ext4
    
            [Install]
            RequiredBy=local-fs.target        
    

    For more information about mounting storage, Amazon’s own documentation is the best source. You can also read about mounting storage on Flatcar Container Linux .

    Adding more machines

    To add more instances to the cluster, just launch more with the same Container Linux Config, the appropriate security group and the AMI for that region. New instances will join the cluster regardless of region if the security groups are configured correctly.

    SSH to your instances

    Flatcar Container Linux is set up to be a little more secure than other cloud images. By default, it uses the core user instead of root and doesn’t use a password for authentication. You’ll need to add an SSH key(s) via the AWS console or add keys/passwords via your Container Linux Config in order to log in.

    To connect to an instance after it’s created, run:

    ssh [email protected]<ip address>
    

    Multiple clusters

    If you would like to create multiple clusters you will need to change the “Stack Name”. You can find the direct template file on S3 .

    Manual setup

    TL;DR: launch three instances of ami-02d7e78122a000198 (amd64) in us-east-1 with a security group that has open port 22, 2379, 2380, 4001, and 7001 and the same “User Data” of each host. SSH uses the core user and you have etcd and Docker to play with.

    Creating the security group

    You need open port 2379, 2380, 7001 and 4001 between servers in the etcd cluster. Step by step instructions below.

    Note: This step is only needed once

    First we need to create a security group to allow Flatcar Container Linux instances to communicate with one another.

    1. Go to the security group page in the EC2 console.
    2. Click “Create Security Group”
      • Name: flatcar-testing
      • Description: Flatcar Container Linux instances
      • VPC: No VPC
      • Click: “Yes, Create”
    3. In the details of the security group, click the Inbound tab
    4. First, create a security group rule for SSH
      • Create a new rule: SSH
      • Source: 0.0.0.0/0
      • Click: “Add Rule”
    5. Add two security group rules for etcd communication
      • Create a new rule: Custom TCP rule
      • Port range: 2379
      • Source: type “flatcar-testing” until your security group auto-completes. Should be something like “sg-8d4feabc”
      • Click: “Add Rule”
      • Repeat this process for port range 2380, 4001 and 7001 as well
    6. Click “Apply Rule Changes”

    Launching a test cluster

    We will be launching three instances, with a few parameters in the User Data, and selecting our security group.

    1. {% for region in site.data.alpha_channel.amis %} {% if region.name == 'us-east-1' %} Open the quick launch wizard to boot {{region.hvm}} (amd64). {% endif %} {% endfor %}
    2. On the second page of the wizard, launch 3 servers to test our clustering
      • Number of instances: 3
      • Click "Continue"
    3. Next, we need to specify a discovery URL, which contains a unique token that allows us to find other hosts in our cluster. If you're launching your first machine, generate one at https://discovery.etcd.io/new?size=3, configure the `?size=` to your initial cluster size and add it to the metadata. You should re-use this key for each machine in the cluster.
    4. Use ct to convert the following configuration into an Ignition config, and back in the EC2 dashboard, paste it into the "User Data" field. ```yaml etcd: # All options get passed as command line flags to etcd. # Any information inside curly braces comes from the machine at boot time.
              # multi_region and multi_cloud deployments need to use {PUBLIC_IPV4}
              advertise_client_urls:       "http://{PRIVATE_IPV4}:2379"
              initial_advertise_peer_urls: "http://{PRIVATE_IPV4}:2380"
              # listen on both the official ports and the legacy ports
              # legacy ports can be omitted if your application doesn't depend on them
              listen_client_urls:          "http://0.0.0.0:2379"
              listen_peer_urls:            "http://{PRIVATE_IPV4}:2380"
              # generate a new token for each unique cluster from https://discovery.etcd.io/new?size=3
              # specify the initial size of your cluster with ?size=X
              discovery:                   "https://discovery.etcd.io/<token>"
            ```
            <ul>
              <li>Paste configuration into "User Data"</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Storage Configuration
            <ul>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Tags
            <ul>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Create Key Pair
            <ul>
              <li>Choose a key of your choice, it will be added in addition to the one in the gist.</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Choose one or more of your existing Security Groups
            <ul>
              <li>"flatcar-testing" as above.</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Launch!
          </li>
        </ol>
      </div>
      <div class="tab-pane" id="beta-manual">
        <p>We will be launching three instances, with a few parameters in the User Data, and selecting our security group.</p>
        <ol>
          <li>
          {% for region in site.data.beta_channel.amis %}
            {% if region.name == 'us-east-1' %}
              Open the <a href="https://console.aws.amazon.com/ec2/home?region={{region.name}}#launchAmi={{region.hvm}}" target="_blank">quick launch wizard</a> to boot {{region.hvm}} (amd64).
            {% endif %}
          {% endfor %}
          </li>
          <li>
            On the second page of the wizard, launch 3 servers to test our clustering
            <ul>
              <li>Number of instances: 3</li>
              <li>Click "Continue"</li>
            </ul>
          </li>
          <li>
            Next, we need to specify a discovery URL, which contains a unique token that allows us to find other hosts in our cluster. If you're launching your first machine, generate one at <a href="https://discovery.etcd.io/new?size=3">https://discovery.etcd.io/new?size=3</a>, configure the `?size=` to your initial cluster size and add it to the metadata. You should re-use this key for each machine in the cluster.
          </li>
          <li>
            Use <a href="provisioning">ct</a> to convert the following configuration into an Ignition config, and back in the EC2 dashboard, paste it into the "User Data" field.
            ```yaml
            etcd:
              # All options get passed as command line flags to etcd.
              # Any information inside curly braces comes from the machine at boot time.
      
              # multi_region and multi_cloud deployments need to use {PUBLIC_IPV4}
              advertise_client_urls:       "http://{PRIVATE_IPV4}:2379"
              initial_advertise_peer_urls: "http://{PRIVATE_IPV4}:2380"
              # listen on both the official ports and the legacy ports
              # legacy ports can be omitted if your application doesn't depend on them
              listen_client_urls:          "http://0.0.0.0:2379"
              listen_peer_urls:            "http://{PRIVATE_IPV4}:2380"
              # generate a new token for each unique cluster from https://discovery.etcd.io/new?size=3
              # specify the initial size of your cluster with ?size=X
              discovery:                   "https://discovery.etcd.io/<token>"
            ```
            <ul>
              <li>Paste configuration into "User Data"</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Storage Configuration
            <ul>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Tags
            <ul>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Create Key Pair
            <ul>
              <li>Choose a key of your choice, it will be added in addition to the one in the gist.</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Choose one or more of your existing Security Groups
            <ul>
              <li>"flatcar-testing" as above.</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Launch!
          </li>
        </ol>
      </div>
      <div class="tab-pane active" id="stable-manual">
        <p>We will be launching three instances, with a few parameters in the User Data, and selecting our security group.</p>
        <ol>
          <li>
          {% for region in site.data.stable_channel.amis %}
            {% if region.name == 'us-east-1' %}
              Open the <a href="https://console.aws.amazon.com/ec2/home?region={{region.name}}#launchAmi={{region.hvm}}" target="_blank">quick launch wizard</a> to boot {{region.hvm}} (amd64).
            {% endif %}
          {% endfor %}
          </li>
          <li>
            On the second page of the wizard, launch 3 servers to test our clustering
            <ul>
              <li>Number of instances: 3</li>
              <li>Click "Continue"</li>
            </ul>
          </li>
          <li>
            Next, we need to specify a discovery URL, which contains a unique token that allows us to find other hosts in our cluster. If you're launching your first machine, generate one at <a href="https://discovery.etcd.io/new?size=3">https://discovery.etcd.io/new?size=3</a>, configure the `?size=` to your initial cluster size and add it to the metadata. You should re-use this key for each machine in the cluster.
          </li>
          <li>
            Use <a href="https://docs.flatcar-linux.org/os/provisioning/#config-transpiler">ct</a> to convert the following configuration into an Ignition config, and back in the EC2 dashboard, paste it into the "User Data" field.
            ```yaml
            etcd:
              # All options get passed as command line flags to etcd.
              # Any information inside curly braces comes from the machine at boot time.
      
              # multi_region and multi_cloud deployments need to use {PUBLIC_IPV4}
              advertise_client_urls:       "http://{PRIVATE_IPV4}:2379"
              initial_advertise_peer_urls: "http://{PRIVATE_IPV4}:2380"
              # listen on both the official ports and the legacy ports
              # legacy ports can be omitted if your application doesn't depend on them
              listen_client_urls:          "http://0.0.0.0:2379"
              listen_peer_urls:            "http://{PRIVATE_IPV4}:2380"
              # generate a new token for each unique cluster from https://discovery.etcd.io/new?size=3
              # specify the initial size of your cluster with ?size=X
              discovery:                   "https://discovery.etcd.io/<token>"
            ```
            <ul>
              <li>Paste configuration into "User Data"</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Storage Configuration
            <ul>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Tags
            <ul>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Create Key Pair
            <ul>
              <li>Choose a key of your choice, it will be added in addition to the one in the gist.</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Choose one or more of your existing Security Groups
            <ul>
              <li>"flatcar-testing" as above.</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Launch!
          </li>
        </ol>
      </div>
      

    Installation from a VMDK image

    One of the possible ways of installation is to import the generated VMDK Flatcar image as a snapshot. The image file will be in https://${CHANNEL}.release.flatcar-linux.net/${ARCH}-usr/${VERSION}/flatcar_production_ami_vmdk_image.vmdk.bz2. Make sure you download the signature (it’s available in https://${CHANNEL}.release.flatcar-linux.net/${ARCH}-usr/${VERSION}/flatcar_production_ami_vmdk_image.vmdk.bz2.sig) and check it before proceeding.

    $ wget https://alpha.release.flatcar-linux.net/amd64-usr/current/flatcar_production_ami_vmdk_image.vmdk.bz2
    $ wget https://alpha.release.flatcar-linux.net/amd64-usr/current/flatcar_production_ami_vmdk_image.vmdk.bz2.sig
    $ gpg --verify flatcar_production_ami_vmdk_image.vmdk.bz2.sig
    gpg: assuming signed data in 'flatcar_production_ami_vmdk_image.vmdk.bz2'
    gpg: Signature made Thu 15 Mar 2018 10:27:57 AM CET
    gpg:                using RSA key A621F1DA96C93C639506832D603443A1D0FC498C
    gpg: Good signature from "Flatcar Buildbot (Official Builds) <[email protected]>" [ultimate]
    

    Then, follow the instructions in Importing a Disk as a Snapshot Using VM Import/Export . You’ll need to upload the uncompressed vmdk file to S3.

    After the snapshot is imported, you can go to “Snapshots” in the EC2 dashboard, and generate an AMI image from it. To make it work, use /dev/sda2 as the “Root device name” and you probably want to select “Hardware-assisted virtualization” as “Virtualization type”.

    Using Flatcar Container Linux

    Now that you have a machine booted it is time to play around. Check out the Flatcar Container Linux Quickstart guide or dig into more specific topics .