Skip to content

This provider allows Terraform to validate a Butane configuration and transpile it to an Ignition configuration.

License

Notifications You must be signed in to change notification settings

e-breuninger/terraform-provider-ignition

Repository files navigation

terraform-provider-ignition

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.

Usage

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

Requirements

Credits

This provider is a fork of the terraform provider poseidon/ct

About

This provider allows Terraform to validate a Butane configuration and transpile it to an Ignition configuration.

Resources

License

Stars

Watchers

Forks

Packages

No packages published