Instance Metadata Service
GPCORE provides an Instance Metadata Service (IMDS) that is accessible from within every node at the link-local address http://169.254.169.254/. It is compatible with the OpenStack IMDS specification and allows running software on a node to query information about itself — such as its hostname, instance ID, injected SSH keys, network configuration, and any user data provided at creation time. The metadata service is only reachable from within the node and is not accessible from the public internet.
Open Source
Since we are not using OpenStack — only Ironic as standalone — we created a dedicated metadata service. It is open source and available on GitHub.
Endpoints
All endpoints are available under the /openstack/latest/ path prefix. A versioned alias
(/openstack/2012-08-10/) is also supported.
Instance Metadata
Returns general information about the node such as its hostname, instance ID, and injected SSH public keys.
Example response:
{
"uuid": "a8f1c2d3-4e5f-6789-abcd-ef0123456789",
"hostname": "my-node",
"name": "my-node",
"public_keys": {
"my-ssh-key": "ssh-ed25519 AAAAC3Nza... user@host"
}
}
User Data
Returns the user-data script or cloud-config that was provided when the node was created.
Returns HTTP 404 if no user-data was set.
Network Data
Returns network interface configuration for the node, including IP addresses, MAC addresses, and routes.
Example response:
{
"links": [
{
"id": "eth0",
"type": "phy",
"ethernet_mac_address": "00:11:22:33:44:55",
"mtu": 1500
}
],
"networks": [
{
"id": "network0",
"type": "ipv4",
"link": "eth0",
"ip_address": "1.2.3.4",
"netmask": "255.255.255.0",
"routes": [
{
"network": "0.0.0.0",
"netmask": "0.0.0.0",
"gateway": "1.2.3.1"
}
]
}
],
"services": [
{
"type": "dns",
"address": "8.8.8.8"
}
]
}