Terraform module for creating a Storj Node using Fedora CoreOS, Podman and Libvirt.
The following are the dependencies to create the VM with this module:
- Steps 1 to 5 from storj node setup, including storj node identity to then pass the correspondeing certificates and keys to the module variables.
| Name | Version |
|---|---|
| terraform | >= 1.2.0 |
| ct | 0.11.0 |
| libvirt | ~> 0.7 |
| Name | Version |
|---|---|
| template | n/a |
| Name | Source | Version |
|---|---|---|
| fcos | krestomatio/fcos/libvirt | 0.0.9 |
| Name | Type |
|---|---|
| template_file.butane_snippet_install_storj_node | data source |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| address | Storj address/public ip | string |
n/a | yes |
| autostart | Autostart with libvirt host | bool |
null |
no |
| cidr_ip_address | CIDR IP Address. Ex: 192.168.1.101/24 | string |
null |
no |
| cpu_mode | Libvirt default cpu mode for VMs | string |
null |
no |
| data_volume_pool | Node default data volume pool | string |
null |
no |
| data_volume_size | Node default data volume size in bytes | number |
null |
no |
| Operator's email | string |
n/a | yes | |
| etc_hosts | /etc/host list | list( |
null |
no |
| etc_hosts_extra | /etc/host extra block | string |
null |
no |
| extra_parameters | List of extra paramenters appending when running storagenode container | list(string) |
[] |
no |
| fqdn | Node FQDN | string |
n/a | yes |
| identity_key | Identity key. It should be previously generated following docs | string |
n/a | yes |
| ignition_pool | Default ignition files pool | string |
null |
no |
| keymap | Keymap | string |
null |
no |
| log_level | Operator's wallet | string |
null |
no |
| log_volume_pool | Node default log volume pool | string |
null |
no |
| log_volume_size | Node default log volume size in bytes | number |
null |
no |
| mac | Mac address | string |
null |
no |
| memory | Node default memory in MiB | number |
512 |
no |
| nameservers | List of nameservers for VMs | list(string) |
[ |
no |
| network_bridge | Libvirt default network bridge name for VMs | string |
null |
no |
| network_id | Libvirt default network id for VMs | string |
null |
no |
| network_name | Libvirt default network name for VMs | string |
null |
no |
| port | Storj node port | number |
28967 |
no |
| rollout_wariness | Wariness to update, 1.0 (very cautious) to 0.0 (very eager) | string |
null |
no |
| root_base_volume_name | Node default base root volume name | string |
n/a | yes |
| root_base_volume_pool | Node default base root volume pool | string |
null |
no |
| root_volume_pool | Node default root volume pool | string |
null |
no |
| root_volume_size | Node default root volume size in bytes | number |
null |
no |
| signed_ca_cert | Signed ca certificate. It should be previously generated following docs | string |
n/a | yes |
| signed_identity_cert | Signed identity certificate. It should be previously generated following docs | string |
n/a | yes |
| ssh_authorized_key | Authorized ssh key for core user | string |
n/a | yes |
| storage | Allocated disk space | string |
n/a | yes |
| timezone | Timezone for VMs as listed by timedatectl list-timezones |
string |
null |
no |
| updates_periodic_window | Only reboot for updates during certain timeframes { days = ["Sat", "Sun"], start_time = "22:30", length_minutes = "60" } |
object({ |
null |
no |
| vcpu | Node default vcpu count | number |
null |
no |
| wait_for_lease | Wait for network lease | bool |
null |
no |
| wallet | Operator's wallet | string |
n/a | yes |
No outputs.
| Name | Version |
|---|---|
| terraform | >= 1.2.0 |
| ct | 0.11.0 |
| libvirt | ~> 0.7 |
| Name | Version |
|---|---|
| template | 2.2.0 |
| Name | Source | Version |
|---|---|---|
| fcos | krestomatio/fcos/libvirt | 0.0.24 |
| Name | Type |
|---|---|
| template_file.butane_snippet_install_storj_node | data source |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| address | Storj address/public ip | string |
n/a | yes |
| autostart | Autostart with libvirt host | bool |
null |
no |
| cidr_ip_address | CIDR IP Address. Ex: 192.168.1.101/24 | string |
null |
no |
| cpu_mode | Libvirt default cpu mode for VMs | string |
null |
no |
| data_volume_pool | Node default data volume pool | string |
null |
no |
| data_volume_size | Node default data volume size in bytes | number |
null |
no |
| Operator's email | string |
n/a | yes | |
| etc_hosts | /etc/host list | list( |
null |
no |
| etc_hosts_extra | /etc/host extra block | string |
null |
no |
| extra_parameters | List of extra paramenters appending when running storagenode container | list(string) |
[] |
no |
| fqdn | Node FQDN | string |
n/a | yes |
| identity_key | Identity key. It should be previously generated following docs | string |
n/a | yes |
| ignition_pool | Default ignition files pool | string |
null |
no |
| image | /etc/host list | object( |
{ |
no |
| keymap | Keymap | string |
null |
no |
| log_level | Operator's wallet | string |
null |
no |
| log_volume_pool | Node default log volume pool | string |
null |
no |
| log_volume_size | Node default log volume size in bytes | number |
null |
no |
| mac | Mac address | string |
null |
no |
| memory | Node default memory in MiB | number |
512 |
no |
| nameservers | List of nameservers for VMs | list(string) |
[ |
no |
| network_bridge | Libvirt default network bridge name for VMs | string |
null |
no |
| network_id | Libvirt default network id for VMs | string |
null |
no |
| network_name | Libvirt default network name for VMs | string |
null |
no |
| periodic_updates | Only reboot for updates during certain timeframes { time_zone = "localtime" windows = [ { days = ["Sat"], start_time = "23:30", length_minutes = "60" }, { days = ["Sun"], start_time = "00:30", length_minutes = "60" } ] } |
object( |
null |
no |
| port | Storj node port | number |
28967 |
no |
| rollout_wariness | Wariness to update, 1.0 (very cautious) to 0.0 (very eager) | string |
null |
no |
| root_base_volume_name | Node default base root volume name | string |
n/a | yes |
| root_base_volume_pool | Node default base root volume pool | string |
null |
no |
| root_volume_pool | Node default root volume pool | string |
null |
no |
| root_volume_size | Node default root volume size in bytes | number |
null |
no |
| signed_ca_cert | Signed ca certificate. It should be previously generated following docs | string |
n/a | yes |
| signed_identity_cert | Signed identity certificate. It should be previously generated following docs | string |
n/a | yes |
| ssh_authorized_key | Authorized ssh key for core user | string |
n/a | yes |
| storage | Allocated disk space | string |
n/a | yes |
| timezone | Timezone for VMs as listed by timedatectl list-timezones |
string |
null |
no |
| vcpu | Node default vcpu count | number |
null |
no |
| wait_for_lease | Wait for network lease | bool |
null |
no |
| wallet | Operator's wallet | string |
n/a | yes |
No outputs.