Terraform for Flatcar Container Linux on AWS and Azure
Provision Flatcar Container Linux nodes with Terraform: Ignition config, immutable updates, and Kubernetes worker pools on AWS, Azure, and bare metal.
DevOps
Provision Fedora CoreOS instances with Terraform: Butane / Ignition config, OSTree updates, and Kubernetes / Podman workloads.
Fedora CoreOS (FCOS) is the upstream-aligned, automatically-updating, container-focused Linux from Red Hat / Fedora. It's the foundation of OpenShift Container Platform and a fine standalone Podman host. Terraform deploys FCOS instances with Butane-generated Ignition configs.
data "aws_ami" "fcos" {
most_recent = true
owners = ["125523088429"] # Fedora
filter {
name = "name"
values = ["fedora-coreos-*-x86_64"]
}
}
resource "aws_instance" "fcos" {
ami = data.aws_ami.fcos.id
instance_type = "t3.medium"
user_data = data.ct_config.host.rendered
}data "ct_config" "host" {
content = <<-EOT
variant: fcos
version: 1.5.0
passwd:
users:
- name: core
ssh_authorized_keys:
- ${chomp(file("~/.ssh/id_ed25519.pub"))}
storage:
files:
- path: /etc/zincati/config.d/55-updates.toml
mode: 0644
contents:
inline: |
[updates]
strategy = "periodic"
[updates.periodic]
time_zone = "UTC"
[[updates.periodic.window]]
days = ["Sat", "Sun"]
start_time = "03:00"
length_minutes = 60
systemd:
units:
- name: podman.socket
enabled: true
EOT
}core user passwordless — only key-based SSH.rpm-ostree usroverlay sparingly; remember the layer disappears on reboot.Provision Flatcar Container Linux nodes with Terraform: Ignition config, immutable updates, and Kubernetes worker pools on AWS, Azure, and bare metal.
Install Terraform on Linux, macOS, Windows, or BSD. Quick apt, dnf, and brew commands plus step-by-step guides for Ubuntu, Debian, RHEL, Fedora, Arch, and 50+ platforms.
Compare Terraform with OpenTofu, Pulumi, Ansible, AWS CDK and CloudFormation, plus core concept guides like for_each vs count and plan vs apply.
Use the AWS IAM Policy Simulator — also known as an IAM policy tester — to validate Terraform policies before apply and catch AccessDenied errors.