terraform-provider-ignition
allows Terraform to validate a Butane configuration and transpile it to an Ignition configuration.
The Butane configuration is transpiled to the corresponding ignition version according to the Butane specification.
The Butane version is taken from the content
attribute.
The Ignition versions 3.0.0
, 3.1.0
, 3.2.0
, 3.3.0
and 3.4.0
are supported.
Configure the config transpiler provider (e.g. providers.tf
).
provider "ignition" {}
terraform {
required_providers {
ignition = {
source = "e-breuninger/ignition"
version = "1.0.6"
}
}
}
Define a Butane config for Fedora CoreOS or Flatcar Linux:
variant: fcos
version: 1.5.0
passwd:
users:
- name: core
ssh_authorized_keys:
- ssh-key foo
variant: flatcar
version: 1.1.0
passwd:
users:
- name: core
ssh_authorized_keys:
- ssh-key foo
Define a ignition_config
data source with strict validation.
data "ignition_config" "worker" {
content = file("worker.yaml")
strict = true
pretty_print = false
snippets = [
file("units.yaml"),
file("storage.yaml"),
]
}
Optionally, template the content
.
data "ignition_config" "worker" {
content = templatefile("worker.yaml", {
ssh_authorized_key = "ssh-ed25519 AAAA...",
})
strict = true
}
Render the ignition_config
as Ignition for use by machine instances.
resource "aws_instance" "worker" {
user_data = data.ignition_config.worker.rendered
}
Run terraform init
to ensure plugin version requirements are met.
$ terraform init
- Terraform v0.13+ installed
This provider is a fork of the terraform provider poseidon/ct