diff --git a/custom/templates/base.tf.jinja b/custom/templates/base.tf.jinja new file mode 100644 index 0000000..9a85bbb --- /dev/null +++ b/custom/templates/base.tf.jinja @@ -0,0 +1,279 @@ +{% from "macros.tf.jinja" import argument %} + +terraform { + {% block required_providers %} + required_providers { + spacelift = { + source = "spacelift-io/spacelift" + version = "{% block spacelift_provider_version %}~> 1.0{% endblock %}" + } + {% block required_providers_extra %}{% endblock %} + } + {% endblock %} +} + +{% block header_extra %}{% endblock %} + +{% block spaces %} +{% for space in spaces %} +resource "spacelift_space" "{{ space._migration_id }}" { + {{ argument("description", space.description) }} + {{ argument("inherit_entities", True, default=False) }} + {{ argument("name", space.name, required=True) }} + {{ argument("parent_space_id", "root", required=True) }} + {% block space_arguments_extra scoped %}{% endblock %} +} + +{% if space.requires_terraform_workflow_tool %} +resource "spacelift_context" "{{ space._migration_id }}_terraform_workflow_tool" { + {{ argument("description", "Allows to use custom versions of Terraform. Make sure to provide the Terraform binary in the custom runner image for the stack.") }} + {{ argument("name", "Terraform Workflow Tool", required=True) }} +} + +resource "spacelift_mounted_file" "workflow" { + {{ argument("context_id", "spacelift_context." ~ space._migration_id ~ "_terraform_workflow_tool.id", required=True, serialize=False) }} + {{ argument("relative_path", ".spacelift/workflow.yml", required=True) }} + {% raw %} + content = base64encode( +<