{"id":13505826,"url":"https://github.com/cisco-open/stacks","last_synced_at":"2025-04-09T05:12:35.136Z","repository":{"id":162690772,"uuid":"614556206","full_name":"cisco-open/stacks","owner":"cisco-open","description":"Stacks, the Terraform code pre-processor","archived":false,"fork":false,"pushed_at":"2025-04-01T13:15:58.000Z","size":256,"stargazers_count":178,"open_issues_count":0,"forks_count":6,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-02T04:05:12.940Z","etag":null,"topics":["terraform"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cisco-open.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-15T20:40:01.000Z","updated_at":"2025-04-01T13:16:02.000Z","dependencies_parsed_at":"2023-11-29T20:23:52.643Z","dependency_job_id":"634b38b1-c93c-4234-ae14-ed897976b0da","html_url":"https://github.com/cisco-open/stacks","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/cisco-open%2Fstacks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cisco-open%2Fstacks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cisco-open%2Fstacks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cisco-open%2Fstacks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cisco-open","download_url":"https://codeload.github.com/cisco-open/stacks/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247980844,"owners_count":21027808,"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":["terraform"],"created_at":"2024-08-01T00:01:14.777Z","updated_at":"2025-04-09T05:12:35.090Z","avatar_url":"https://github.com/cisco-open.png","language":"Python","funding_links":[],"categories":["Tools","Python"],"sub_categories":["Community providers"],"readme":"\u003cdiv align=\"center\"\u003e\n\t\u003cp\u003e\u003cimg src=\".github/logo.png\" width=\"200px\"\u003e\u003c/p\u003e\n\t\u003ch1\u003eStacks for Terraform\u003c/h1\u003e\n\t\u003cp\u003eThe \u003ca href=\"https://www.terraform.io/\"\u003eTerraform\u003c/a\u003e code pre-processor\u003c/p\u003e\n\u003c/div\u003e\n\n\n## What is Stacks?\n\n**Stacks** is a [Terraform](https://www.terraform.io/) code pre-processor.\nIts primary goal is to minimize your total Terraform codebase without giving up on coverage. To do more with less.\n\nAs a code pre-processor, Stacks receives your \"input code\" and returns \"output code\" for Terraform to consume.\n\nStacks was originally developed and continues to be maintained by the Infrastructure SRE team at [Cisco ThousandEyes](https://www.thousandeyes.com/).\nIt was initially presented and open-sourced at [SREcon23 Americas](https://www.usenix.org/conference/srecon23americas/presentation/bejarano).\n\nYou can read \"Terraform\" and \"OpenTofu\" interchangeably, Stacks works with both but we've chosen to go with \"Terraform\" for readability.\n\nThe [\"I am starting from scratch\" quick-start guide](\u003c2.2. I am starting from scratch.md\u003e) is a good introduction to Stacks and what it does.\n\n\n## Documentation\n\n1. About\n    1. [Considerations before using](\u003cdocs/1.1. Considerations before using.md\u003e)\n    2. [Stacks vs. its alternatives](\u003cdocs/1.2. Stacks vs its alternatives.md\u003e)\n\n2. Quick-start guide\n    1. [Installation instructions](\u003cdocs/2.1. Installation instructions.md\u003e)\n    2. [I am starting from scratch](\u003cdocs/2.2. I am starting from scratch.md\u003e)\n    3. [I am collaborating to an existing stack](\u003cdocs/2.3. I am collaborating to an existing stack.md\u003e)\n    4. [I am collaborating to Stacks itself](\u003cdocs/2.4. I am collaborating to Stacks itself.md\u003e)\n\n3. Reference\n    1. Native features\n        1. [Global Terraform code](\u003cdocs/3.1.1. Global Terraform code.md\u003e)\n        2. [Reusable root modules](\u003cdocs/3.1.2. Reusable root modules.md\u003e)\n        3. [Jinja templating for Terraform](\u003cdocs/3.1.3. Jinja templating for Terraform.md\u003e)\n        4. [Jinja templating for variables](\u003cdocs/3.1.4. Jinja templating for variables.md\u003e)\n        5. [Custom Jinja functions](\u003cdocs/3.1.5. Custom Jinja functions.md\u003e)\n        6. [Inline secret encryption](\u003cdocs/3.1.6. Inline secret encryption.md\u003e)\n        7. [Automatic variable initialization](\u003cdocs/3.1.7. Automatic variable initialization.md\u003e)\n    2. Features you can build with Stacks\n        1. [Terraform state backend configuration](\u003cdocs/3.2.1. Terraform state backend configuration.md\u003e)\n        2. [Terraform provider generation](\u003cdocs/3.2.2. Terraform provider generation.md\u003e)\n        3. [Input validation](\u003cdocs/3.2.3. Input validation.md\u003e)\n    3. Command-line interface\n        1. [`stacks render`](\u003cdocs/3.3.1. stacks render.md\u003e)\n        2. [`stacks terraform`](\u003cdocs/3.3.2. stacks terraform.md\u003e)\n        3. [`stacks diff`](\u003cdocs/3.3.3. stacks diff.md\u003e)\n        4. [`stacks encrypt`](\u003cdocs/3.3.4. stacks encrypt.md\u003e)\n        5. [`stacks decrypt`](\u003cdocs/3.3.5. stacks decrypt.md\u003e)\n        6. [`stacks surgery list`](\u003cdocs/3.3.6. stacks surgery list.md\u003e)\n        7. [`stacks surgery import`](\u003cdocs/3.3.7. stacks surgery import.md\u003e)\n        8. [`stacks surgery remove`](\u003cdocs/3.3.8. stacks surgery remove.md\u003e)\n        9. [`stacks surgery rename`](\u003cdocs/3.3.9. stacks surgery rename.md\u003e)\n        10. [`stacks surgery move`](\u003cdocs/3.3.10. stacks surgery move.md\u003e)\n        11. [`stacks surgery edit`](\u003cdocs/3.3.11. stacks surgery edit.md\u003e)\n        12. [`stacks version`](\u003cdocs/3.3.12. stacks version.md\u003e)\n    4. [Directory structure](\u003cdocs/3.4. Directory structure.md\u003e)\n    5. [Special variables](\u003cdocs/3.5. Special variables.md\u003e)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcisco-open%2Fstacks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcisco-open%2Fstacks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcisco-open%2Fstacks/lists"}