_hcloud
sc_crawler.vendors._hcloud
#
Inventory of Hetzner Cloud via its API and manual data entry: servers, storages, traffic and IPv4 addresses, with their prices.
Functions:
| Name | Description |
|---|---|
inventory_compliance_frameworks |
Manual list of known compliance frameworks at Hetzner. |
inventory_regions |
List all regions via API call. |
inventory_zones |
List all regions as availability zones. |
inventory_servers |
List all server types from API and manual data entry from the Hetzner Cloud homepage. |
inventory_server_prices |
List all server prices in all regions via API call. |
inventory_server_prices_spot |
There are no spot instances at Hetzner. |
inventory_storages |
Block storage volume information collected manually. |
inventory_storage_prices |
Block storage volume pricing information collected manually. |
inventory_traffic_prices |
Traffic price collected manually. |
inventory_ipv4_prices |
IPv4 price collected manually. |
inventory_databases |
Hetzner Cloud does not offer managed PostgreSQL. |
inventory_compliance_frameworks
#
Manual list of known compliance frameworks at Hetzner.
Data collected from https://www.hetzner.com/unternehmen/zertifizierung.
Source code in sc_crawler/vendors/_hcloud.py
inventory_regions
#
List all regions via API call.
Hetzner Cloud uses integers for the region (virtual datacenter) id
that we convert into string. Best to use the unique name, which
can be also passed instead of the id in most hcloud API
endpoints via the id_or_name method.
Not taking the Hetzner unique name as id, as it's not
stated to be unique for other resources, and uniqueness
for servers might also change in the future.
All regions are powered by green energy as per https://www.hetzner.com/unternehmen/umweltschutz/.
Lon/lat coordinates were collected by searching for Hetzner locations in the Region's city.
Source code in sc_crawler/vendors/_hcloud.py
inventory_zones
#
List all regions as availability zones.
There is no concept of having multiple availability zones withing a region (virtual datacenter) at Hetzner Cloud, so creating 1-1 dummy Zones reusing the Region id and name.
Source code in sc_crawler/vendors/_hcloud.py
inventory_servers
#
List all server types from API and manual data entry from the Hetzner Cloud homepage.
CPU information is recorded from https://www.hetzner.com/cloud/ as not exposed via API.
Lifecycle (per-location server type fields): deprecation.unavailable_after in
past -> RETIRED, deprecation present -> PLANNED_FOR_RETIREMENT,
available is False or empty locations -> INACTIVE, otherwise ACTIVE.
See _hcloud_server_status.
Source code in sc_crawler/vendors/_hcloud.py
inventory_server_prices
#
List all server prices in all regions via API call.
Hetzner Cloud charges hourly up to a monthly cap, described as tiered prices.
Source code in sc_crawler/vendors/_hcloud.py
inventory_server_prices_spot
#
inventory_storages
#
Block storage volume information collected manually.
There is not information shared vie the API, so information was collected manually from:
Source code in sc_crawler/vendors/_hcloud.py
inventory_storage_prices
#
Block storage volume pricing information collected manually.
Source: https://www.hetzner.com/cloud/block-storage/
Source code in sc_crawler/vendors/_hcloud.py
inventory_traffic_prices
#
Traffic price collected manually.
Source: https://docs.hetzner.com/robot/general/traffic/
Source code in sc_crawler/vendors/_hcloud.py
inventory_ipv4_prices
#
IPv4 price collected manually.
Source: https://docs.hetzner.com/cloud/servers/overview#network-options