{"id":26355078,"url":"https://github.com/a7d-corp/terraform-module-proxmox-cloudinit-template","last_synced_at":"2026-04-01T17:19:08.041Z","repository":{"id":43668011,"uuid":"381449875","full_name":"a7d-corp/terraform-module-proxmox-cloudinit-template","owner":"a7d-corp","description":"Terraform module to template out cloudinit files to Proxmox hosts","archived":false,"fork":false,"pushed_at":"2025-07-18T19:59:04.000Z","size":29,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-19T00:27:34.721Z","etag":null,"topics":["cloud-init","proxmox","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","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/a7d-corp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-29T17:45:03.000Z","updated_at":"2025-07-18T19:59:09.000Z","dependencies_parsed_at":"2025-03-16T16:00:35.652Z","dependency_job_id":null,"html_url":"https://github.com/a7d-corp/terraform-module-proxmox-cloudinit-template","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/a7d-corp/terraform-module-proxmox-cloudinit-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a7d-corp%2Fterraform-module-proxmox-cloudinit-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a7d-corp%2Fterraform-module-proxmox-cloudinit-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a7d-corp%2Fterraform-module-proxmox-cloudinit-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a7d-corp%2Fterraform-module-proxmox-cloudinit-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/a7d-corp","download_url":"https://codeload.github.com/a7d-corp/terraform-module-proxmox-cloudinit-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a7d-corp%2Fterraform-module-proxmox-cloudinit-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31018543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T03:51:26.850Z","status":"ssl_error","status_checked_at":"2026-03-27T03:51:09.693Z","response_time":164,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","proxmox","terraform"],"created_at":"2025-03-16T12:42:06.093Z","updated_at":"2026-03-27T04:02:01.550Z","avatar_url":"https://github.com/a7d-corp.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-module-proxmox-cloudinit-template\n\nTerraform module to template out cloudinit files to Proxmox hosts.\n\n\n## Limitations\n\nThis module can only template cloudinit config files out to a single host. To get around this I use an NFS mount on all hosts with `snippets` enabled. That way you can template out to a single host in your cluster irrespective on the host you want to land the instance on.\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| terraform | \u003e= 0.14.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| null | n/a |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [null_resource.cloudinit_network](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource |\n| [null_resource.cloudinit_userdata](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource |\n\n## Inputs\n\n| Name | Description | Type | Required |\n|------|-------------|------|:--------:|\n| conn_ssh_key | String containing a base64 encoded SSH private key. | `string` | yes |\n| conn_target | Connection host for the file provisioner. | `string` | yes |\n| conn_type | Connection type for the file provisioner. | `string` | yes |\n| conn_user | Connection user for the file provisioner. | `string` | yes |\n| dns_servers | List of DNS servers. | `list(string)` | yes |\n| instance_name | Name of the instance (will be used as part of the snippet file name. | `string` | yes |\n| primary_network | Configuration for the primary network interface (required). | \u003cpre\u003eobject({\u003cbr\u003e    gateway = string\u003cbr\u003e    ip      = string\u003cbr\u003e    macaddr = string\u003cbr\u003e    name    = string\u003cbr\u003e    netmask = number\u003cbr\u003e  })\u003c/pre\u003e | yes |\n| search_domains | List of search domains. | `list(string)` | yes |\n| snippet_file_base | Starting stub of the snippet file name. | `string` | yes |\n| extra_networks | Configuration of additional network interfaces. | `any` | no |\n| snippet_dir | n/a | `string` | no |\n| snippet_root_dir | Location of the snippet directory. | `string` | no |\n| user_data_blob | Userdata blob, must be valid YAML. | `any` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| primary_ip | The primary IP of the server. |\n\u003c!-- END_TF_DOCS --\u003e\n\n## Sample config\n\n```hcl\nmodule \"cloudinit_template\" {\n  source = \"github.com/glitchcrab/terraform-module-proxmox-cloudinit-template\"\n\n  conn_type         = \"ssh\"\n  conn_user         = \"root\"\n  conn_target       = \"proxmox-host.domain.com\"\n  snippet_dir       = \"/var/lib/vz\"\n  snippet_file_base = \"my-instance\"\n\n  instance_name   = \"my-instance\"\n\n  primary_network = {\n    gateway = \"172.16.0.1\"\n    ip      = \"172.16.0.100\"\n    macaddr = \"00:00:00:00:00:00\"\n    name    = \"eth0\"\n    netmask = 24\n  }\n\n  extra_networks = [{\n    ips     = [\"192.16.1.100\"]\n    macaddr = \"00:00:00:00:00:11\"\n    name    = \"eth1\"\n    netmask = 24\n  }, {\n    ips     = [\"10.1.1.100\", \"10.1.1.200\"]\n    macaddr = \"00:00:00:00:00:22\"\n    name    = \"eth2\"\n    netmask = 20\n  }]\n\n  search_domains = [\"domain.com\"]\n  dns_servers    = [\"1.1.1.1\"]\n\n  user_data_blob = {\n    hostname: \"my-instance.domain.com\"\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa7d-corp%2Fterraform-module-proxmox-cloudinit-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa7d-corp%2Fterraform-module-proxmox-cloudinit-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa7d-corp%2Fterraform-module-proxmox-cloudinit-template/lists"}