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 to validate Terraform IAM policies before applying. Automate permission testing with Terraform data sources and avoid AccessDenied errors.