11 stable releases

✓ Uses Rust 2018 edition

new 4.4.0 May 22, 2020
4.3.2 Feb 27, 2020
4.3.0 Dec 2, 2019
4.2.0 Oct 11, 2019
4.0.0 Mar 28, 2019

#29 in Web programming

Download history 10/week @ 2020-01-22 9/week @ 2020-02-05 8/week @ 2020-02-12 25/week @ 2020-02-19 36/week @ 2020-02-26 22/week @ 2020-03-04 10/week @ 2020-03-11 29/week @ 2020-03-18 14/week @ 2020-03-25 41/week @ 2020-04-08 30/week @ 2020-04-15 17/week @ 2020-04-22 7/week @ 2020-04-29 6/week @ 2020-05-06

75 downloads per month

Apache-2.0

215KB
5K SLoC

Ruby HTML 5K SLoC // 0.1% comments Scons 16 SLoC // 0.2% comments

Afterburn

Build Status crates.io minimum rust 1.40

This is a small utility, typically used in conjunction with Ignition, which reads metadata from a given cloud-provider and applies it to the system. This can include adding SSH keys and writing cloud-specific attributes into an environment file (e.g. /run/metadata/afterburn), which can then be consumed by systemd service units via EnvironmentFile=.

Support

The supported cloud providers and their respective metadata are listed below. On CoreOS Container Linux, the supported providers and metadata are somewhat different.

  • aliyun
    • SSH Keys
    • Attributes
      • 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
    • SSH Keys
    • Attributes
      • AFTERBURN_AWS_HOSTNAME
      • AFTERBURN_AWS_PUBLIC_HOSTNAME
      • AFTERBURN_AWS_IPV4_LOCAL
      • AFTERBURN_AWS_IPV4_PUBLIC
      • AFTERBURN_AWS_AVAILABILITY_ZONE
      • AFTERBURN_AWS_INSTANCE_ID
      • AFTERBURN_AWS_INSTANCE_TYPE
      • AFTERBURN_AWS_REGION
  • azure
    • SSH Keys
    • Attributes
      • AFTERBURN_AZURE_IPV4_DYNAMIC
      • AFTERBURN_AZURE_IPV4_VIRTUAL
      • AFTERBURN_AZURE_VMSIZE
  • cloudstack-configdrive
    • SSH Keys
    • Attributes
      • 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
    • SSH Keys
    • Attributes
      • 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
    • SSH Keys
    • Network Configs
    • Attributes
      • 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
    • SSH Keys
    • Attributes
      • 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
    • SSH Keys
    • Attributes
      • AFTERBURN_GCP_HOSTNAME
      • AFTERBURN_GCP_IP_EXTERNAL_0
      • AFTERBURN_GCP_IP_LOCAL_0
      • AFTERBURN_GCP_MACHINE_TYPE
  • ibmcloud
    • Attributes
      • AFTERBURN_IBMCLOUD_INSTANCE_ID
      • AFTERBURN_IBMCLOUD_LOCAL_HOSTNAME
  • ibmcloud-classic
    • Attributes
      • AFTERBURN_IBMCLOUD_CLASSIC_INSTANCE_ID
      • AFTERBURN_IBMCLOUD_CLASSIC_LOCAL_HOSTNAME
  • openstack-metadata
    • SSH Keys
    • Attributes
      • AFTERBURN_OPENSTACK_HOSTNAME
      • AFTERBURN_OPENSTACK_IPV4_LOCAL
      • AFTERBURN_OPENSTACK_IPV4_PUBLIC
      • AFTERBURN_OPENSTACK_INSTANCE_ID
      • AFTERBURN_OPENSTACK_INSTANCE_TYPE
  • packet
    • SSH Keys
    • Network Configs
    • Attributes
      • 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
  • vagrant-virtualbox
    • Attributes
      • AFTERBURN_VAGRANT_VIRTUALBOX_PRIVATE_IPV4
      • AFTERBURN_VAGRANT_VIRTUALBOX_HOSTNAME

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

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

Dependencies

~9–13MB
~264K SLoC