Skip to content

jhulndev/terraform-talos-image-factory

Repository files navigation

Talos Image Factory Terraform module

Terraform module to generate Talos Image Factory URLs.

This will effectively replicate creating the schematic ids and version urls that can be created through https://factory.talos.dev/, allowing for the full provisioning of Talos VMs in virtualized or cloud environments without having to pull these urls separately.

This module will also provide some flexibiliy in how Talos versions can be pulled (see Version Selection), and will check that selected versions and overlays are valid.

Examples

Requirements

Name Version
terraform >= 1.6
talos >= 0.7

Providers

Name Version
talos >= 0.7

Modules

No modules.

Resources

Name Type
talos_image_factory_schematic.this resource
talos_image_factory_extensions_versions.this data source
talos_image_factory_overlays_versions.this data source
talos_image_factory_urls.this data source
talos_image_factory_versions.this data source

Inputs

Name Description Type Default Required
talos_version_spec A specification to describe what Talos version number to pull. One, and only
one of number or pattern must be provided.

* number: An exact version number to use. Must match an existing Talos version
number exactly. May be a pre-release version number if stable_only
is false.
* pattern: A regex pattern that will be matched against to find eligible
Talos versions. The latest matching version will be used.
* stable_only: When true, only stable versions will be considered.
object({
number = optional(string)
pattern = optional(string)
stable_only = optional(bool, true)
})
{
"pattern": ".*"
}
no
find_extensions List of extension names that will be used to search the extension list. list(string) [] no
extensions List of extensions that will be added as-is to the schematic
configuration of officialExtensions.
list(string) [] no
overlay The overlay and options to apply.
object({
name = string
options = optional(any)
})
null no
extra_kernel_args List of extra kernel arguments that will be added as-is to the schematic
configuration of extraKernelArgs.
list(string) [] no
meta Allows to set initial Talos META
list(object({
key = string
value = string
}))
[] no
secureboot The secureboot configuration, only applies to SecureBoot images. any null no
architecture The platform architecture for which the URLs are generated. string "amd64" no
platform The platform for which the URLs are generated.
One of platform or sbc must be provided.
See the provider for options: talos_image_factory_urls
string null no
sbc The SBC's (Single Board Computers) for which the URLs are generated.
One of platform or sbc must be provided.
See the provider for options: [talos_image_factory_urls](https://registry.terraform.io/providers/siderolabs/talos/latest/docs/data-sources/image_factory_urls#sbc-1
string null no

Outputs

Name Description
talos_version The final Talos version that was used.
schematic The schematic that was generated for the configuration.
urls The urls to download artifacts.

About

Terraform module to generate Talos Image Factory URLs

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages