Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/e-breuninger/terraform-provider-ignition
This provider allows Terraform to validate a Butane configuration and transpile it to an Ignition configuration.
https://github.com/e-breuninger/terraform-provider-ignition
Last synced: 3 months ago
JSON representation
This provider allows Terraform to validate a Butane configuration and transpile it to an Ignition configuration.
- Host: GitHub
- URL: https://github.com/e-breuninger/terraform-provider-ignition
- Owner: e-breuninger
- License: apache-2.0
- Created: 2023-04-27T13:42:26.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-08-14T07:42:51.000Z (5 months ago)
- Last Synced: 2024-08-14T09:02:44.949Z (5 months ago)
- Language: Go
- Homepage:
- Size: 10.4 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# terraform-provider-ignition
`terraform-provider-ignition` allows Terraform to validate a [Butane configuration](https://coreos.github.io/butane/specs/) and transpile it to an [Ignition configuration](https://coreos.github.io/ignition/).
The Butane configuration is transpiled to the corresponding ignition version according to the [Butane specification](https://coreos.github.io/butane/specs/#butane-specifications-and-ignition-specifications).
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`).
```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:
```yaml
variant: fcos
version: 1.5.0
passwd:
users:
- name: core
ssh_authorized_keys:
- ssh-key foo
``````yaml
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.
```tf
data "ignition_config" "worker" {
content = file("worker.yaml")
strict = true
pretty_print = falsesnippets = [
file("units.yaml"),
file("storage.yaml"),
]
}
```Optionally, template the `content`.
```tf
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.
```tf
resource "aws_instance" "worker" {
user_data = data.ignition_config.worker.rendered
}
```Run `terraform init` to ensure plugin version requirements are met.
```
$ terraform init
```## Requirements
* Terraform v0.13+ [installed](https://www.terraform.io/downloads.html)
## Credits
This provider is a fork of the terraform provider [poseidon/ct](https://github.com/poseidon/terraform-provider-ct)