UpCloud API<\/a>. The initial deployment of Cloud Servers using new public templates which require SSH-key only need to have Metadata service enabled.<\/p>\r\n\r\n\r\n\r\nCloud Servers deployed without the Metadata service can enable it at any point without the need to restart the server. This can be done either via the UpCloud Control Panel in the server Optional settings or by using the UpCloud API.<\/p>\r\n\r\n\r\n\r\n
The toggle for the Metadata service can be found in the Cloud Server settings under the Optional settings.<\/p>\r\n\r\n\r\n\r\n
Alternatively, metadata service can be enabled with the following API request by replacing the server-UUID with the UUID of the user\u2019s Cloud Server.<\/p>\r\n\r\n\r\n\r\n
PUT \/1.3\/server\/server-UUID\/\r\n{\r\n\u00a0\u00a0\u00a0\"server\": {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"metadata\": \"yes\"\r\n\u00a0\u00a0\u00a0\u00a0}\r\n}<\/pre>\r\n\r\n\r\n\r\nQuerying metadata<\/h3>\r\n\r\n\r\n\r\n
The Metadata is available as a cloud-init compatible JSON and via a filesystem-like traversable API. Both can be queried on any of the user\u2019s Cloud Servers using any HTTP client such as curl or wget.<\/p>\r\n\r\n\r\n\r\n
Metadata is available to be queried through all networks: public, utility and SDN private networks.<\/p>\r\n\r\n\r\n\r\n
Metadata endpoint<\/h4>\r\n\r\n\r\n\r\nhttp:\/\/169.254.169.254\/metadata\/v1.json<\/pre>\r\n\r\n\r\n\r\nMetadata allows users to find specific information about resources which can include multiples of the same type, for example, storage and networks.<\/p>\r\n\r\n\r\n\r\n
Below is a list of all currently available fields provided by the Metadata service.<\/p>\r\n\r\n\r\n\r\n
Cloud name<\/h4>\r\n\r\n\r\n\r\n\"cloud_name\": \"upcloud\"<\/pre>\r\n\r\n\r\n\r\nThe name of the cloud provider for inter compatibility<\/p>\r\n\r\n\r\n\r\n
Instance ID<\/h4>\r\n\r\n\r\n\r\n\"instance_id\": \"00bf9504-a4cb-4839-88ff-124a2c95e169\"<\/pre>\r\n\r\n\r\n\r\nThe UUID is generated at deployment<\/p>\r\n\r\n\r\n\r\n
Hostname<\/h4>\r\n\r\n\r\n\r\n\"hostname\": \"metadata.example.com\"<\/pre>\r\n\r\n\r\n\r\nCloud Server’s hostname as defined by the user<\/p>\r\n\r\n\r\n\r\n
Platform<\/h4>\r\n\r\n\r\n\r\n\"platform\": \"servers\"<\/pre>\r\n\r\n\r\n\r\nThe type of platform in use<\/p>\r\n\r\n\r\n\r\n
Subplatform<\/h4>\r\n\r\n\r\n\r\n\"subplatform\": \"metadata (http:\/\/169.254.169.254)\"<\/pre>\r\n\r\n\r\n\r\nMetadata endpoint address<\/p>\r\n\r\n\r\n\r\n
Public keys<\/h4>\r\n\r\n\r\n\r\n\"public_keys\": [\r\n\u00a0\u00a0\"ssh-rsa AAAAB[...]ud1Cw== max@upcloud.com\"\r\n]<\/pre>\r\n\r\n\r\n\r\nSSH keys included by the user<\/p>\r\n\r\n\r\n\r\n
Region<\/h4>\r\n\r\n\r\n\r\n\"region\": \"de-fra1\"<\/pre>\r\n\r\n\r\n\r\nServer location<\/p>\r\n\r\n\r\n\r\n
Network<\/h4>\r\n\r\n\r\n\r\n\"network\": {\r\n\u00a0\u00a0\"interfaces\": [\r\n\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"index\": 1,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"ip_addresses\": [\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"address\": \"94.237.90.209\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"dhcp\": true,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"dns\": [\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"94.237.127.9\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"94.237.40.9\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"family\": \"IPv4\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"floating\": false,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"gateway\": \"94.237.90.1\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"network\": \"94.237.90.0\/24\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"mac\": \"de:ad:be:ef:3f:c5\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"network_id\": \"03030473-8e9d-4f4f-bcfe-b2c300391a07\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"type\": \"public\"\r\n\u00a0\u00a0 },\r\n\u00a0\u00a0]\r\n\u00a0\u00a0\"dns\": [\r\n\u00a0\u00a0\u00a0\u00a0\"94.237.127.9\",\r\n\u00a0\u00a0\u00a0\u00a0\"94.237.40.9\"\r\n\u00a0\u00a0]\r\n}<\/pre>\r\n\r\n\r\n\r\nNetwork interfaces and DNS addresses configured to the server<\/p>\r\n\r\n\r\n\r\n
Storage<\/h4>\r\n\r\n\r\n\r\n\"storage\": {\r\n\u00a0\u00a0\"disks\": [\r\n\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"id\": \"0187b8c5-7220-4c90-9026-047dff8be0b3\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"serial\": \"0187b8c572204c909026\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"size\": 25,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"type\": \"disk\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"tier\": \"maxiops\"\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0]\r\n}<\/pre>\r\n\r\n\r\n\r\nAll storage devices attached to the server<\/p>\r\n\r\n\r\n\r\n
Tags<\/h4>\r\n\r\n\r\n\r\n\"tags\": [\r\n\u00a0\u00a0\"dev\",\r\n\u00a0\u00a0\"metadata\"\r\n]<\/pre>\r\n\r\n\r\n\r\nUser-defined tags assigned to the Cloud Server<\/p>\r\n\r\n\r\n\r\n
User data<\/h4>\r\n\r\n\r\n\r\n\"user_data\": \"apt-get update && apt-get -y upgrade\"<\/pre>\r\n\r\n\r\n\r\nDeployment script or script URL<\/p>\r\n\r\n\r\n\r\n
Vendor data<\/h4>\r\n\r\n\r\n\r\n\"vendor_data\": \"\"<\/pre>\r\n\r\n\r\n\r\nAny specific data field can be queried using the filesystem-like traversable API. For example, the following query can be used to get the IP address of the first network interfaces.<\/p>\r\n\r\n\r\n\r\n
http:\/\/169.254.169.254\/metadata\/v1\/network\/interfaces\/1\/ip_addresses\/0\/address<\/pre>\r\n\r\n\r\n\r\nThe Metadata service will then return the value of the queried field omitting the key. Meaning the output can be used directly without additional formatting.<\/p>\r\n\r\n\r\n\r\n
94.237.90.209<\/pre>\r\n\r\n\r\n\r\nThe main advantage of Metadata allows it to be used to configure applications and services which require server-specific information that is not known before deployment.<\/p>\r\n\r\n\r\n\r\n
Data centres<\/h2>\r\n\r\n\r\n\r\n
UpCloud runs data centres around the world to provide our users with a wide variety of regions and locations.<\/p>\r\n\r\n\r\n\r\n
Our data centres are run in trusted enterprise-grade data centres that provide the state-of-art facilities needed to operate our services. We use our own hardware in every location.<\/p>\r\n\r\n\r\n\r\n
Available locations<\/h3>\r\n\r\n\r\n\r\n
We currently offer data centres in the following locations:<\/p>\r\n\r\n\r\n\r\n
Europe<\/p>\r\n\r\n\r\n\r\n