{"id":17654936,"url":"https://github.com/aabouzaid/terraform-external-data-source-saltstack-pillar","last_synced_at":"2026-05-09T00:35:19.171Z","repository":{"id":80895881,"uuid":"143400076","full_name":"aabouzaid/terraform-external-data-source-saltstack-pillar","owner":"aabouzaid","description":"Python script to read from SaltStack Pillar, and return the value in Terraform as external data source.","archived":false,"fork":false,"pushed_at":"2018-08-22T19:14:16.000Z","size":5,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-05T11:36:39.094Z","etag":null,"topics":["pillar","saltstack","terraform","terraform-external-data"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aabouzaid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-03T08:24:38.000Z","updated_at":"2018-11-28T19:48:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"d624a6f7-7b96-45b2-9949-76b4a19dee48","html_url":"https://github.com/aabouzaid/terraform-external-data-source-saltstack-pillar","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aabouzaid%2Fterraform-external-data-source-saltstack-pillar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aabouzaid%2Fterraform-external-data-source-saltstack-pillar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aabouzaid%2Fterraform-external-data-source-saltstack-pillar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aabouzaid%2Fterraform-external-data-source-saltstack-pillar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aabouzaid","download_url":"https://codeload.github.com/aabouzaid/terraform-external-data-source-saltstack-pillar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246299158,"owners_count":20755114,"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":["pillar","saltstack","terraform","terraform-external-data"],"created_at":"2024-10-23T12:40:22.799Z","updated_at":"2026-05-09T00:35:14.114Z","avatar_url":"https://github.com/aabouzaid.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terraform external data source script for SaltStack Pillar.\n\n# Why?\n**SaltStack** is more than configuration management tool, and in some environment it's [Pillar](https://docs.saltstack.com/en/latest/topics/tutorials/pillar.html) has a lot of data which could be needed somewhere else, e.g. Terraform!\n\n\nSo this Python script works as external data source and reads from SaltStack Pillar, and returns the value in Terraform as external data source.\n\n# How to use\nYou can query any Pillar key from SaltStack and get the value in Terraform:\n\n```\ndata \"external\" \"pillar\" {\n  program = [\"python\", \"${path.module}/pillar_reader.py\"]\n  query = {\n    pillar = \"foo:bar\"\n  }\n}\n```\n\nA full example available in [pillar_reader.tf](pillar_reader.tf).\n\n# Access and limitations\nActually it's not necessary to just have a single key, but also if that key has other keys under it you still can access them too, **as long as they are strings**!\n\nSo for example, if the Pillar has the following:\n\n```\nfoo:\n  bar:\n    key01: \"value01\"\n    key02: \"value02\"\n    key03: \"value03\"\n```\n\nAnd based on previous external data source example if you query `foo:bar`, you can also access the keys under it:\n```\n${data.external.pillar.result.key01}\n${data.external.pillar.result.key02}\n${data.external.pillar.result.key03}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faabouzaid%2Fterraform-external-data-source-saltstack-pillar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faabouzaid%2Fterraform-external-data-source-saltstack-pillar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faabouzaid%2Fterraform-external-data-source-saltstack-pillar/lists"}