_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 server prices per location from the server types API. |
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.
Using the unique location name (e.g. fsn1) as the region id
instead of the numeric location id, as the numeric ids were
renumbered when the datacenters endpoint got deprecated, while
the names are stable and are also used to reference locations in
the server type prices, and can be passed instead of the id in
most hcloud API endpoints via the id_or_name method.
Former datacenter region ids are kept in aliases via
_LEGACY_DATACENTER_REGION_IDS (not the current location API ids).
All regions are powered by green energy as per https://www.hetzner.com/unternehmen/umweltschutz/.
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 within a location 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 server prices per location from the server types API.
prices[].location and locations[].location.name are both the
location name, which is also used as our Region id.
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:
- https://www.hetzner.com/cloud/
- https://docs.hetzner.cloud/#volumes-create-a-volume
- https://docs.hetzner.com/cloud/volumes/overview/
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