Metadata attributes

Afterburn can consume cloud-specific metadata and serialize instance attributes into an environment file (e.g. /run/metadata/afterburn), which can then be consumed by systemd service units via EnvironmentFile=.

Usually, OS vendors which ship Afterburn do not enable it by default. Therefore, any service which wants to make use of Afterburn metadata must explicitly pull it in using e.g. Requires=afterburn.service and After=afterburn.service.

Cloud providers with supported metadata endpoints and their respective attributes are listed below.

  • akamai
    • AFTERBURN_AKAMAI_INSTANCE_HOST_UUID
    • AFTERBURN_AKAMAI_INSTANCE_ID
    • AFTERBURN_AKAMAI_INSTANCE_LABEL
    • AFTERBURN_AKAMAI_INSTANCE_REGION
    • AFTERBURN_AKAMAI_INSTANCE_TAGS
    • AFTERBURN_AKAMAI_INSTANCE_TYPE
    • AFTERBURN_AKAMAI_IPV6_LINK_LOCAL
    • AFTERBURN_AKAMAI_IPV6_RANGE_0
    • AFTERBURN_AKAMAI_IPV6_SHARED_RANGE_0
    • AFTERBURN_AKAMAI_IPV6_SLAAC
    • AFTERBURN_AKAMAI_PRIVATE_IPV4_0
    • AFTERBURN_AKAMAI_PUBLIC_IPV4_0
    • AFTERBURN_AKAMAI_SHARED_IPV4_0
  • aliyun
    • AFTERBURN_ALIYUN_EIPV4
    • AFTERBURN_ALIYUN_HOSTNAME
    • AFTERBURN_ALIYUN_IMAGE_ID
    • AFTERBURN_ALIYUN_INSTANCE_ID
    • AFTERBURN_ALIYUN_INSTANCE_TYPE
    • AFTERBURN_ALIYUN_IPV4_PRIVATE
    • AFTERBURN_ALIYUN_IPV4_PUBLIC
    • AFTERBURN_ALIYUN_REGION_ID
    • AFTERBURN_ALIYUN_VPC_ID
    • AFTERBURN_ALIYUN_ZONE_ID
  • aws
    • AFTERBURN_AWS_HOSTNAME
    • AFTERBURN_AWS_PUBLIC_HOSTNAME
    • AFTERBURN_AWS_IPV4_LOCAL
    • AFTERBURN_AWS_IPV4_PUBLIC
    • AFTERBURN_AWS_IPV6
    • AFTERBURN_AWS_AVAILABILITY_ZONE
    • AFTERBURN_AWS_INSTANCE_ID
    • AFTERBURN_AWS_INSTANCE_TYPE
    • AFTERBURN_AWS_REGION
  • azure
    • AFTERBURN_AZURE_IPV4_DYNAMIC
    • AFTERBURN_AZURE_IPV4_VIRTUAL
    • AFTERBURN_AZURE_VMSIZE
  • cloudstack-configdrive
    • AFTERBURN_CLOUDSTACK_AVAILABILITY_ZONE
    • AFTERBURN_CLOUDSTACK_INSTANCE_ID
    • AFTERBURN_CLOUDSTACK_SERVICE_OFFERING
    • AFTERBURN_CLOUDSTACK_CLOUD_IDENTIFIER
    • AFTERBURN_CLOUDSTACK_LOCAL_HOSTNAME
    • AFTERBURN_CLOUDSTACK_VM_ID
  • cloudstack-metadata
    • AFTERBURN_CLOUDSTACK_AVAILABILITY_ZONE
    • AFTERBURN_CLOUDSTACK_CLOUD_IDENTIFIER
    • AFTERBURN_CLOUDSTACK_HOSTNAME
    • AFTERBURN_CLOUDSTACK_INSTANCE_ID
    • AFTERBURN_CLOUDSTACK_IPV4_LOCAL
    • AFTERBURN_CLOUDSTACK_IPV4_PUBLIC
    • AFTERBURN_CLOUDSTACK_LOCAL_HOSTNAME
    • AFTERBURN_CLOUDSTACK_PUBLIC_HOSTNAME
    • AFTERBURN_CLOUDSTACK_SERVICE_OFFERING
    • AFTERBURN_CLOUDSTACK_VM_ID
  • digitalocean
    • AFTERBURN_DIGITALOCEAN_HOSTNAME
    • AFTERBURN_DIGITALOCEAN_IPV4_ANCHOR_0
    • AFTERBURN_DIGITALOCEAN_IPV4_PUBLIC_0
    • AFTERBURN_DIGITALOCEAN_IPV4_PRIVATE_0
    • AFTERBURN_DIGITALOCEAN_IPV6_PUBLIC_0
    • AFTERBURN_DIGITALOCEAN_IPV6_PRIVATE_0
    • AFTERBURN_DIGITALOCEAN_REGION
  • exoscale
    • AFTERBURN_EXOSCALE_AVAILABILITY_ZONE
    • AFTERBURN_EXOSCALE_CLOUD_IDENTIFIER
    • AFTERBURN_EXOSCALE_INSTANCE_ID
    • AFTERBURN_EXOSCALE_LOCAL_IPV4
    • AFTERBURN_EXOSCALE_PUBLIC_IPV4
    • AFTERBURN_EXOSCALE_LOCAL_HOSTNAME
    • AFTERBURN_EXOSCALE_PUBLIC_HOSTNAME
    • AFTERBURN_EXOSCALE_SERVICE_OFFERING
    • AFTERBURN_EXOSCALE_VM_ID
  • gcp
    • AFTERBURN_GCP_HOSTNAME
    • AFTERBURN_GCP_IP_EXTERNAL_0
    • AFTERBURN_GCP_IP_LOCAL_0
    • AFTERBURN_GCP_MACHINE_TYPE
  • hetzner
    • AFTERBURN_HETZNER_AVAILABILITY_ZONE
    • AFTERBURN_HETZNER_HOSTNAME
    • AFTERBURN_HETZNER_INSTANCE_ID
    • AFTERBURN_HETZNER_PUBLIC_IPV4
    • AFTERBURN_HETZNER_PRIVATE_IPV4_0
    • AFTERBURN_HETZNER_REGION
  • ibmcloud
    • AFTERBURN_IBMCLOUD_INSTANCE_ID
    • AFTERBURN_IBMCLOUD_LOCAL_HOSTNAME
  • ibmcloud-classic
    • AFTERBURN_IBMCLOUD_CLASSIC_INSTANCE_ID
    • AFTERBURN_IBMCLOUD_CLASSIC_LOCAL_HOSTNAME
  • kubevirt
    • AFTERBURN_KUBEVIRT_HOSTNAME
    • AFTERBURN_KUBEVIRT_INSTANCE_ID
    • AFTERBURN_KUBEVIRT_INSTANCE_TYPE
  • openstack
    • AFTERBURN_OPENSTACK_HOSTNAME
    • AFTERBURN_OPENSTACK_IPV4_LOCAL
    • AFTERBURN_OPENSTACK_IPV4_PUBLIC
    • AFTERBURN_OPENSTACK_INSTANCE_ID — EC2-style instance ID, not used in OpenStack API
    • AFTERBURN_OPENSTACK_INSTANCE_UUID — OpenStack instance UUID (Afterburn ≥ 5.5.0)
    • AFTERBURN_OPENSTACK_INSTANCE_TYPE
  • openstack-metadata
    • AFTERBURN_OPENSTACK_HOSTNAME
    • AFTERBURN_OPENSTACK_IPV4_LOCAL
    • AFTERBURN_OPENSTACK_IPV4_PUBLIC
    • AFTERBURN_OPENSTACK_INSTANCE_ID — EC2-style instance ID, not used in OpenStack API
    • AFTERBURN_OPENSTACK_INSTANCE_UUID — OpenStack instance UUID (Afterburn ≥ 5.5.0)
    • AFTERBURN_OPENSTACK_INSTANCE_TYPE
  • packet
    • AFTERBURN_PACKET_HOSTNAME
    • AFTERBURN_PACKET_PLAN
    • AFTERBURN_PACKET_IPV4_PUBLIC_0
    • AFTERBURN_PACKET_IPV4_PUBLIC_GATEWAY_0
    • AFTERBURN_PACKET_IPV4_PRIVATE_0
    • AFTERBURN_PACKET_IPV4_PRIVATE_GATEWAY_0
    • AFTERBURN_PACKET_IPV6_PUBLIC_0
    • AFTERBURN_PACKET_IPV6_PUBLIC_GATEWAY_0
  • powervs
    • AFTERBURN_POWERVS_INSTANCE_ID
    • AFTERBURN_POWERVS_LOCAL_HOSTNAME
  • proxmoxve
    • AFTERBURN_PROXMOXVE_HOSTNAME
    • AFTERBURN_PROXMOXVE_INSTANCE_ID
    • AFTERBURN_PROXMOXVE_IPV4
    • AFTERBURN_PROXMOXVE_IPV6
  • scaleway
    • AFTERBURN_SCALEWAY_HOSTNAME
    • AFTERBURN_SCALEWAY_INSTANCE_ID
    • AFTERBURN_SCALEWAY_INSTANCE_TYPE
    • AFTERBURN_SCALEWAY_PRIVATE_IPV4
    • AFTERBURN_SCALEWAY_PUBLIC_IPV4
    • AFTERBURN_SCALEWAY_PUBLIC_IPV6
    • AFTERBURN_SCALEWAY_ZONE_ID
  • vultr
    • AFTERBURN_VULTR_HOSTNAME
    • AFTERBURN_VULTR_INSTANCE_ID
    • AFTERBURN_VULTR_REGION_CODE

Additionally, some attribute names are reserved for custom metadata providers. These can be safely used by external providers on platforms not supported by Afterburn:

  • custom
    • AFTERBURN_CUSTOM_HOSTNAME
    • AFTERBURN_CUSTOM_PUBLIC_IPV4
    • AFTERBURN_CUSTOM_PRIVATE_IPV4
    • AFTERBURN_CUSTOM_PUBLIC_IPV6
    • AFTERBURN_CUSTOM_PRIVATE_IPV6