{"id":13702492,"url":"https://github.com/hegerdes/terraform-hcloud-hetzner-node-pool","last_synced_at":"2025-04-15T05:31:56.700Z","repository":{"id":231343255,"uuid":"781385681","full_name":"hegerdes/terraform-hcloud-hetzner-node-pool","owner":"hegerdes","description":"A terraform module to quicly generate multiple hetzner hcloud vm servers and supporting services 🚀 ","archived":false,"fork":false,"pushed_at":"2024-11-12T21:35:49.000Z","size":66,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T16:43:53.640Z","etag":null,"topics":["hcl","hcloud","hetzner","iac","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/hegerdes/hetzner-node-pool/hcloud/latest","language":"HCL","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/hegerdes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","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":"2024-04-03T09:29:35.000Z","updated_at":"2025-02-21T07:49:42.000Z","dependencies_parsed_at":"2024-04-07T14:37:04.992Z","dependency_job_id":"fae10036-ab01-444c-8538-3d3fbc51580a","html_url":"https://github.com/hegerdes/terraform-hcloud-hetzner-node-pool","commit_stats":null,"previous_names":["hegerdes/terraform-hcloud-node-pool","hegerdes/terraform-hcloud-hetzner-node-pool"],"tags_count":12,"template":false,"template_full_name":"clowdhaus/terraform-aws-module-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hegerdes%2Fterraform-hcloud-hetzner-node-pool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hegerdes%2Fterraform-hcloud-hetzner-node-pool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hegerdes%2Fterraform-hcloud-hetzner-node-pool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hegerdes%2Fterraform-hcloud-hetzner-node-pool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hegerdes","download_url":"https://codeload.github.com/hegerdes/terraform-hcloud-hetzner-node-pool/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249015385,"owners_count":21198795,"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":["hcl","hcloud","hetzner","iac","terraform","terraform-module"],"created_at":"2024-08-02T21:00:36.507Z","updated_at":"2025-04-15T05:31:56.438Z","avatar_url":"https://github.com/hegerdes.png","language":"HCL","funding_links":[],"categories":["Libraries"],"sub_categories":["HCL"],"readme":"# terraform-hcloud-hetzner-node-pool terraform module\n\nTerraform module which creates terraform-hcloud-hetzner-node-pool resources. The module can be found on the [terraform.io registry](https://registry.terraform.io/modules/hegerdes/hetzner-node-pool/hcloud/latest) or on [github](https://github.com/hegerdes/terraform-hcloud-hetzner-node-pool).\n\n## Usage\n\nSee [`examples`](https://github.com/hegerdes/terraform-hcloud-hetzner-node-pool/tree/main/examples) directory for working examples to reference:\n\n```hcl\nmodule \"hetzner_node_pool\" {\n  source = \"hegerdes/terraform-hcloud-hetzner-node-pool/\"\n\n  size     = 1\n  name     = \"example\"\n  location = \"fsn1\"\n  tags     = {cloud = \"true\"}\n}\n```\n*NOTE:* Due to an [issue](https://github.com/hetznercloud/terraform-provider-hcloud/issues/911) in the hetzner terraform provider, it is currently not possible to set firewall ids via labels and via the `firewall_ids` input. Users have to decide for one of these methods.\n\n## Examples\n\nExamples codified under the [`examples`](https://github.com/hegerdes/terraform-hcloud-hetzner-node-pool/tree/main/examples) are intended to give users references for how to use the module(s) as well as testing/validating changes to the source code of the module. If contributing to the project, please be sure to make any appropriate updates to the relevant examples to allow maintainers to test your changes and to keep the examples up to date for users. Thank you!\n\n- [Complete](https://github.com/hegerdes/terraform-hcloud-hetzner-node-pool/tree/main/examples/complete)\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= 1.5 |\n| \u003ca name=\"requirement_hcloud\"\u003e\u003c/a\u003e [hcloud](#requirement\\_hcloud) | \u003e=1.40 |\n| \u003ca name=\"requirement_random\"\u003e\u003c/a\u003e [random](#requirement\\_random) | \u003e=3.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_hcloud\"\u003e\u003c/a\u003e [hcloud](#provider\\_hcloud) | \u003e=1.40 |\n| \u003ca name=\"provider_random\"\u003e\u003c/a\u003e [random](#provider\\_random) | \u003e=3.0 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [hcloud_placement_group.this](https://registry.terraform.io/providers/hetznercloud/hcloud/latest/docs/resources/placement_group) | resource |\n| [hcloud_server.this](https://registry.terraform.io/providers/hetznercloud/hcloud/latest/docs/resources/server) | resource |\n| [hcloud_ssh_key.this](https://registry.terraform.io/providers/hetznercloud/hcloud/latest/docs/resources/ssh_key) | resource |\n| [hcloud_volume.this](https://registry.terraform.io/providers/hetznercloud/hcloud/latest/docs/resources/volume) | resource |\n| [random_string.this](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/string) | resource |\n| [hcloud_image.this](https://registry.terraform.io/providers/hetznercloud/hcloud/latest/docs/data-sources/image) | data source |\n| [hcloud_network.this](https://registry.terraform.io/providers/hetznercloud/hcloud/latest/docs/data-sources/network) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_backups\"\u003e\u003c/a\u003e [backups](#input\\_backups) | Backups enabled | `bool` | `false` | no |\n| \u003ca name=\"input_create_ssh_keys\"\u003e\u003c/a\u003e [create\\_ssh\\_keys](#input\\_create\\_ssh\\_keys) | Hetzner allows create a ssh key only once. By default you have to create them before. If you set this flag the module will create them. | `bool` | `false` | no |\n| \u003ca name=\"input_firewall_ids\"\u003e\u003c/a\u003e [firewall\\_ids](#input\\_firewall\\_ids) | Ids of firewall attacted to the server | `list(string)` | `null` | no |\n| \u003ca name=\"input_fixed_disk_size\"\u003e\u003c/a\u003e [fixed\\_disk\\_size](#input\\_fixed\\_disk\\_size) | Whether the disk size should also be upgraded when scaling up. If true, downgrades may not be possible anymore. | `bool` | `false` | no |\n| \u003ca name=\"input_image\"\u003e\u003c/a\u003e [image](#input\\_image) | Node image name. | `string` | `\"debian-12\"` | no |\n| \u003ca name=\"input_instance_type\"\u003e\u003c/a\u003e [instance\\_type](#input\\_instance\\_type) | Node instance type. | `string` | `\"cx22\"` | no |\n| \u003ca name=\"input_location\"\u003e\u003c/a\u003e [location](#input\\_location) | Node location. | `string` | n/a | yes |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | Node name prefix. | `string` | n/a | yes |\n| \u003ca name=\"input_network_name\"\u003e\u003c/a\u003e [network\\_name](#input\\_network\\_name) | Node network name | `string` | `null` | no |\n| \u003ca name=\"input_private_ip_addresses\"\u003e\u003c/a\u003e [private\\_ip\\_addresses](#input\\_private\\_ip\\_addresses) | Node private ips. Network name must be set for this. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_public_ipv4\"\u003e\u003c/a\u003e [public\\_ipv4](#input\\_public\\_ipv4) | Node public ipv4 ip | `bool` | `true` | no |\n| \u003ca name=\"input_public_ipv6\"\u003e\u003c/a\u003e [public\\_ipv6](#input\\_public\\_ipv6) | Node public ipv6 ip | `bool` | `true` | no |\n| \u003ca name=\"input_shutdown_before_deletion\"\u003e\u003c/a\u003e [shutdown\\_before\\_deletion](#input\\_shutdown\\_before\\_deletion) | Will issue a shutdown command before deleting the server. | `bool` | `false` | no |\n| \u003ca name=\"input_size\"\u003e\u003c/a\u003e [size](#input\\_size) | Number of nodes to create. Will only be used if vm\\_names is empty. | `number` | `1` | no |\n| \u003ca name=\"input_snapshot_image\"\u003e\u003c/a\u003e [snapshot\\_image](#input\\_snapshot\\_image) | Node image is snapshot | `bool` | `false` | no |\n| \u003ca name=\"input_ssh_keys\"\u003e\u003c/a\u003e [ssh\\_keys](#input\\_ssh\\_keys) | Nodes public ssh keys ids or names or the key itself. If its the key you have to set create\\_ssh\\_keys. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | Node tags/labels | `any` | `{}` | no |\n| \u003ca name=\"input_user_data\"\u003e\u003c/a\u003e [user\\_data](#input\\_user\\_data) | Node user data (cloud-init) | `string` | `null` | no |\n| \u003ca name=\"input_vm_names\"\u003e\u003c/a\u003e [vm\\_names](#input\\_vm\\_names) | List of names for the VMs. to create | `list(string)` | `[]` | no |\n| \u003ca name=\"input_volumes\"\u003e\u003c/a\u003e [volumes](#input\\_volumes) | Extra Hetzer volumes added to each server. | \u003cpre\u003elist(object({\u003cbr\u003e    name   = string\u003cbr\u003e    size   = number\u003cbr\u003e    format = optional(string, \"ext4\")\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_name\"\u003e\u003c/a\u003e [name](#output\\_name) | The name of the node pool. |\n| \u003ca name=\"output_vm_ids\"\u003e\u003c/a\u003e [vm\\_ids](#output\\_vm\\_ids) | List of all ids for every created server. |\n| \u003ca name=\"output_vm_ips\"\u003e\u003c/a\u003e [vm\\_ips](#output\\_vm\\_ips) | List of all public ips of every created server. Includes IPv4 \u0026 IPv6. |\n| \u003ca name=\"output_vm_names\"\u003e\u003c/a\u003e [vm\\_names](#output\\_vm\\_names) | List of all names for every created server. |\n| \u003ca name=\"output_vm_volumes\"\u003e\u003c/a\u003e [vm\\_volumes](#output\\_vm\\_volumes) | List of all additional disks for every created server. |\n| \u003ca name=\"output_vms\"\u003e\u003c/a\u003e [vms](#output\\_vms) | Object of vm data based on name. |\n| \u003ca name=\"output_vms_raw\"\u003e\u003c/a\u003e [vms\\_raw](#output\\_vms\\_raw) | Raw object of hcloud server objects. |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n## License\n\nApache-2.0 Licensed. See [LICENSE](https://github.com/hegerdes/terraform-hcloud-hetzner-node-poolblob/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhegerdes%2Fterraform-hcloud-hetzner-node-pool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhegerdes%2Fterraform-hcloud-hetzner-node-pool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhegerdes%2Fterraform-hcloud-hetzner-node-pool/lists"}