{"id":19508856,"url":"https://github.com/rhythmictech/terraform-aws-imagebuilder-recipe","last_synced_at":"2025-04-26T03:31:47.020Z","repository":{"id":55951319,"uuid":"267647018","full_name":"rhythmictech/terraform-aws-imagebuilder-recipe","owner":"rhythmictech","description":"Create an EC2 Image Builder Recipe with Cloudformation","archived":false,"fork":false,"pushed_at":"2024-11-27T16:45:40.000Z","size":69,"stargazers_count":5,"open_issues_count":2,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-04T07:11:15.537Z","etag":null,"topics":["cloudformation","ec2","imagebuilder","imagebuilder-recipe","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/rhythmictech/imagebuilder-recipe/aws","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rhythmictech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-28T17:00:21.000Z","updated_at":"2023-09-26T02:16:59.000Z","dependencies_parsed_at":"2023-02-11T17:10:15.684Z","dependency_job_id":null,"html_url":"https://github.com/rhythmictech/terraform-aws-imagebuilder-recipe","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhythmictech%2Fterraform-aws-imagebuilder-recipe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhythmictech%2Fterraform-aws-imagebuilder-recipe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhythmictech%2Fterraform-aws-imagebuilder-recipe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhythmictech%2Fterraform-aws-imagebuilder-recipe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhythmictech","download_url":"https://codeload.github.com/rhythmictech/terraform-aws-imagebuilder-recipe/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250926815,"owners_count":21509041,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudformation","ec2","imagebuilder","imagebuilder-recipe","terraform","terraform-module"],"created_at":"2024-11-10T23:10:07.179Z","updated_at":"2025-04-26T03:31:46.763Z","avatar_url":"https://github.com/rhythmictech.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-aws-imagebuilder-recipe [![](https://github.com/rhythmictech/terraform-aws-imagebuilder-recipe/workflows/pre-commit-check/badge.svg)](https://github.com/rhythmictech/terraform-aws-imagebuilder-recipe/actions) \u003ca href=\"https://twitter.com/intent/follow?screen_name=RhythmicTech\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/RhythmicTech?style=social\u0026logo=RhythmicTech\" alt=\"follow on Twitter\"\u003e\u003c/a\u003e\nCreates EC2 Image Builder recipes\n\n## Example\nHere's what using the module will look like\n```hcl\nmodule \"test_recipe\" {\n  source  = \"rhythmictech/imagebuilder-recipe/aws\"\n  version = \"~\u003e 0.2.0\"\n\n  description    = \"Testing recipe\"\n  name           = \"test-recipe\"\n  parent_image   = \"arn:aws:imagebuilder:us-east-1:aws:image/amazon-linux-2-x86/x.x.x\"\n  recipe_version = \"1.0.0\"\n  tags           = local.tags\n  update         = true\n\n  component_arns = [\n    module.test_component.component_arn,\n    \"arn:aws:imagebuilder:us-east-1:aws:component/simple-boot-test-linux/1.0.0/1\",\n    \"arn:aws:imagebuilder:us-east-1:aws:component/reboot-test-linux/1.0.0/1\"\n  ]\n}\n```\n\n## About\nCreates EC2 Image Builder recipes\n\n## Component Parameters (experimental)\nIn our experience we haven't needed to provide parameters to the components we include in an Image Builder recipe, so the easiest use case has been to simply include a list of ARNs (component_arns variable).  If you need to provide parameters, you can use the separate component_parameters map, e.g.\n```hcl\n  component_arns = [\n    module.test_component.component_arn,\n    \"arn:aws:imagebuilder:us-east-1:aws:component/simple-boot-test-linux/1.0.0/1\",\n    \"arn:aws:imagebuilder:us-east-1:aws:component/reboot-test-linux/1.0.0/1\"\n  ]\n\n  component_parameters = [\n    { \n      module.test_component.component_arn = [\n        { \"param1\" = \"value1\"},\n        { \"param2\" = \"value2\"}\n      ],\n    },\n    { \n      \"arn:aws:imagebuilder:us-east-1:aws:component/simple-boot-test-linux/1.0.0/1\" = [\n        { \"param1\" = \"value1\"}\n      ],\n    }\n  ]\n\n```\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 0.12.2 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 2.44 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | 4.49.0 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_imagebuilder_image_recipe.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/imagebuilder_image_recipe) | resource |\n| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_block_device_mappings\"\u003e\u003c/a\u003e [block\\_device\\_mappings](#input\\_block\\_device\\_mappings) | [List of Maps of EBS volumes to mount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html) See examples for further usage tips. | `list(any)` | `null` | no |\n| \u003ca name=\"input_cloudformation_timeout\"\u003e\u003c/a\u003e [cloudformation\\_timeout](#input\\_cloudformation\\_timeout) | How long to wait (in minutes) for CFN to apply before giving up | `number` | `10` | no |\n| \u003ca name=\"input_component_arns\"\u003e\u003c/a\u003e [component\\_arns](#input\\_component\\_arns) | List of component ARNs to use in recipe. Order matters | `list(string)` | n/a | yes |\n| \u003ca name=\"input_component_parameters\"\u003e\u003c/a\u003e [component\\_parameters](#input\\_component\\_parameters) | A map of component arns (as specified in component\\_arns) that contains a list of maps of parameters (each parameter contains a name and a value) to apply to the component | `map(list(map(string)))` | `{}` | no |\n| \u003ca name=\"input_description\"\u003e\u003c/a\u003e [description](#input\\_description) | description of component | `string` | `null` | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | name to use for component | `string` | n/a | yes |\n| \u003ca name=\"input_parent_image\"\u003e\u003c/a\u003e [parent\\_image](#input\\_parent\\_image) | Image that the recipe should start with. SemVers is ok (and encouraged) | `string` | n/a | yes |\n| \u003ca name=\"input_platform\"\u003e\u003c/a\u003e [platform](#input\\_platform) | Platform of Recipe (`Linux` or `Windows`) | `string` | `\"Linux\"` | no |\n| \u003ca name=\"input_recipe_version\"\u003e\u003c/a\u003e [recipe\\_version](#input\\_recipe\\_version) | Version of the recipe | `string` | n/a | yes |\n| \u003ca name=\"input_systems_manager_agent_uninstall_after_build\"\u003e\u003c/a\u003e [systems\\_manager\\_agent\\_uninstall\\_after\\_build](#input\\_systems\\_manager\\_agent\\_uninstall\\_after\\_build) | Boolean value for whether or not the systems manager agent should be uninstall from the image after it is built | `bool` | `false` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | Map of tags to use for CFN stack and component | `map(string)` | `{}` | no |\n| \u003ca name=\"input_update\"\u003e\u003c/a\u003e [update](#input\\_update) | Whether recipe should include the `update-$platform` recipe before running other components | `bool` | `true` | no |\n| \u003ca name=\"input_user_data_base64\"\u003e\u003c/a\u003e [user\\_data\\_base64](#input\\_user\\_data\\_base64) | Base64 Encoded user-data to provide when spinning up the build instance. | `string` | `null` | no |\n| \u003ca name=\"input_working_directory\"\u003e\u003c/a\u003e [working\\_directory](#input\\_working\\_directory) | Working directory to use in the build instance. ImageBuilder uses /tmp by default on Linux, which can be an issue when working with CIS-hardened images. | `string` | `null` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_latest_image_arn\"\u003e\u003c/a\u003e [latest\\_image\\_arn](#output\\_latest\\_image\\_arn) | ARN of the wildcard representing the latest EC2 Image Builder Image |\n| \u003ca name=\"output_recipe_arn\"\u003e\u003c/a\u003e [recipe\\_arn](#output\\_recipe\\_arn) | ARN of the EC2 Image Builder Recipe |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n## The Giants underneath this module\n- pre-commit.com/\n- terraform.io/\n- github.com/tfutils/tfenv\n- github.com/segmentio/terraform-docs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhythmictech%2Fterraform-aws-imagebuilder-recipe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhythmictech%2Fterraform-aws-imagebuilder-recipe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhythmictech%2Fterraform-aws-imagebuilder-recipe/lists"}