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 foovariant: flatcar
version: 1.1.0
passwd:
users:
- name: core
ssh_authorized_keys:
- ssh-key fooDefine 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