{"id":13582489,"url":"https://github.com/hashicorp/terraform-provider-cloudinit","last_synced_at":"2025-04-12T16:40:19.100Z","repository":{"id":37899650,"uuid":"212889232","full_name":"hashicorp/terraform-provider-cloudinit","owner":"hashicorp","description":"Utility provider that exposes the cloudinit_config data source which renders a multipart MIME configuration for use with cloud-init (previously available as the template_cloudinit_config resource in the template provider)","archived":false,"fork":false,"pushed_at":"2025-03-31T06:09:33.000Z","size":7477,"stargazers_count":110,"open_issues_count":6,"forks_count":17,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-04-03T18:12:56.019Z","etag":null,"topics":["cloud-init","terraform","terraform-provider"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/providers/hashicorp/cloudinit/latest","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hashicorp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-04T19:34:11.000Z","updated_at":"2025-03-27T14:33:16.000Z","dependencies_parsed_at":"2023-10-13T05:55:47.172Z","dependency_job_id":"f197247d-24ce-4acd-bb69-b4702bc7da7a","html_url":"https://github.com/hashicorp/terraform-provider-cloudinit","commit_stats":{"total_commits":277,"total_committers":23,"mean_commits":"12.043478260869565","dds":0.5270758122743682,"last_synced_commit":"3ff7259cc737851ecefbf6d83755b3db8e54b194"},"previous_names":["kmoe/terraform-provider-cloudinit"],"tags_count":12,"template":false,"template_full_name":"hashicorp/terraform-provider-scaffolding","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Fterraform-provider-cloudinit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Fterraform-provider-cloudinit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Fterraform-provider-cloudinit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Fterraform-provider-cloudinit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hashicorp","download_url":"https://codeload.github.com/hashicorp/terraform-provider-cloudinit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248598342,"owners_count":21131080,"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":["cloud-init","terraform","terraform-provider"],"created_at":"2024-08-01T15:02:45.906Z","updated_at":"2025-04-12T16:40:19.076Z","avatar_url":"https://github.com/hashicorp.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Terraform Provider: cloud-init\n\nThe cloud-init provider supports rendering [cloud-init](https://cloudinit.readthedocs.io) configurations in a [MIME multi-part file](https://cloudinit.readthedocs.io/en/latest/explanation/format.html#mime-multi-part-archive).\n\n\u003e _This provider is intended to replace the [template provider](https://www.terraform.io/docs/providers/template/). General templating can now be achieved through the [`templatefile`](https://www.terraform.io/docs/configuration/functions/templatefile.html) function, without creating a separate data resource._ \n\u003e _This provider exposes the `cloudinit_config` data source and resource, previously available as the [`template_cloudinit_config`](https://www.terraform.io/docs/providers/template/d/cloudinit_config.html) in the template provider._\n\n## Documentation, questions and discussions\n\nOfficial documentation on how to use this provider can be found on the\n[Terraform Registry](https://registry.terraform.io/providers/hashicorp/cloudinit/latest/docs).\nIn case of specific questions or discussions, please use the\nHashiCorp [Terraform Providers Discuss forums](https://discuss.hashicorp.com/c/terraform-providers/31),\nin accordance with HashiCorp [Community Guidelines](https://www.hashicorp.com/community-guidelines).\n\nWe also provide:\n\n* [Support](.github/SUPPORT.md) page for help when using the provider\n* [Contributing](.github/CONTRIBUTING.md) guidelines in case you want to help this project\n* [Design](DESIGN.md) documentation to understand the scope and maintenance decisions\n\nThe remainder of this document will focus on the development aspects of the provider.\n\n\n## Requirements\n\n* [Terraform](https://www.terraform.io/downloads)\n* [Go](https://go.dev/doc/install) (1.23)\n* [GNU Make](https://www.gnu.org/software/make/)\n* [golangci-lint](https://golangci-lint.run/usage/install/#local-installation) (optional)\n\n## Development\n\n### Building\n\n1. `git clone` this repository and `cd` into its directory\n2. `make` will trigger the Golang build\n\nThe provided `GNUmakefile` defines additional commands generally useful during development,\nlike for running tests, generating documentation, code formatting and linting.\nTaking a look at it's content is recommended.\n\n### Testing\n\nIn order to test the provider, you can run\n\n* `make test` to run provider tests\n* `make testacc` to run provider acceptance tests\n\nIt's important to note that acceptance tests (`testacc`) will actually spawn\n`terraform` and the provider. Read more about they work on the\n[official page](https://www.terraform.io/plugin/sdkv2/testing/acceptance-tests).\n\n### Generating documentation\n\nThis provider uses [terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs/)\nto generate documentation and store it in the `docs/` directory.\nOnce a release is cut, the Terraform Registry will download the documentation from `docs/`\nand associate it with the release version. Read more about how this works on the\n[official page](https://www.terraform.io/registry/providers/docs).\n\nUse `make generate` to ensure the documentation is regenerated with any changes.\n\n### Using a development build\n\nIf [running tests and acceptance tests](#testing) isn't enough, it's possible to set up a local terraform configuration\nto use a development builds of the provider. This can be achieved by leveraging the Terraform CLI\n[configuration file development overrides](https://www.terraform.io/cli/config/config-file#development-overrides-for-provider-developers).\n\nFirst, use `make install` to place a fresh development build of the provider in your\n[`${GOBIN}`](https://pkg.go.dev/cmd/go#hdr-Compile_and_install_packages_and_dependencies)\n(defaults to `${GOPATH}/bin` or `${HOME}/go/bin` if `${GOPATH}` is not set). Repeat\nthis every time you make changes to the provider locally.\n\nThen, setup your environment following [these instructions](https://www.terraform.io/plugin/debugging#terraform-cli-development-overrides)\nto make your local terraform use your local build.\n\n### Testing GitHub Actions\n\nThis project uses [GitHub Actions](https://docs.github.com/en/actions/automating-builds-and-tests) to realize its CI.\n\nSometimes it might be helpful to locally reproduce the behaviour of those actions,\nand for this we use [act](https://github.com/nektos/act). Once installed, you can _simulate_ the actions executed\nwhen opening a PR with:\n\n```shell\n# List of workflows for the 'pull_request' action\n$ act -l pull_request\n\n# Execute the workflows associated with the `pull_request' action \n$ act pull_request\n```\n\n## Releasing\n\nThe release process is automated via GitHub Actions, and it's defined in the Workflow\n[release.yml](./.github/workflows/release.yml). To cut a release:\n\n- Go to the repository in Github and click on the `Actions` tab.\n- Select the `Release` workflow on the left-hand menu. \n- Click on the `Run workflow` button.\n- Select the branch to cut the release from (default is main).\n- Input the `Release version number` which is the Semantic Release number including the `v` prefix (i.e. `v1.4.0`) and click `Run workflow` to kickoff the release.\n\n## License\n\n[Mozilla Public License v2.0](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashicorp%2Fterraform-provider-cloudinit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhashicorp%2Fterraform-provider-cloudinit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashicorp%2Fterraform-provider-cloudinit/lists"}