IMDS.Providers.Scaleway (imds v1.0.0)

Copy Markdown

Scaleway instance metadata service.

The service answers on the link-local address 169.254.42.42, at the path /conf?format=json. No request needs an authentication header. The answer is one JSON document. The documented IPv6 address fd00:42::42 is available through the :base_url option.

The document reports the zone, for example fr-par-1. The identity derives the region from the zone, for example fr-par. The document reports the commercial type as the machine size and the organization as the owner scope.

Detection needs the Scaleway address 169.254.42.42 and a JSON document with the keys id and commercial_type.

The user data paths of Scaleway demand a source port below 1024. The default transport cannot use a privileged port, so user data is out of scope.

Summary

Functions

Return the metadata path of the JSON document.

Derive the region from a Scaleway zone name.

Functions

path()

@spec path() :: binary()

Return the metadata path of the JSON document.

region_from_zone(zone)

@spec region_from_zone(binary() | nil) :: binary() | nil

Derive the region from a Scaleway zone name.

A zone name carries a trailing numeric segment, for example fr-par-1. The region is the part before that segment. A name of another shape has no known region.

Examples

iex> IMDS.Providers.Scaleway.region_from_zone("fr-par-1")
"fr-par"

iex> IMDS.Providers.Scaleway.region_from_zone("nl-ams-3")
"nl-ams"

iex> IMDS.Providers.Scaleway.region_from_zone("par1")
nil

iex> IMDS.Providers.Scaleway.region_from_zone(nil)
nil