Tiny Cloud

The Tiny Cloud bootstrapper performs critical initialization tasks for cloud instances during their first boot. Unlike the more popular and feature-rich cloud-init, Tiny Cloud seeks to do just what is necessary with a small footprint and minimal dependencies.

A direct descendant of tiny-ec2-bootstrap, Tiny Cloud works with multiple cloud providers. Currently, the following are supported:

  • AWS (Amazon Web Services)
  • Azure (Microsoft Azure)
  • GCP (Google Cloud Platform)
  • OCI (Oracle Cloud Infrastructure)

Features

The following actions will occur only once, during the initial boot of an instance:

  • expand the root filesystem to use all available root device space, during the sysinit runlevel
  • set the instance's hostname from instance metadata
  • install SSH keys from instance metadata to the cloud user account's authorized_keys file (the user must already exist)
  • save the instance user-data to a file, and if it's a script, execute it at the end of the default runlevel

Optional features, which may not be universally necessary:

  • manage symlinks from NVMe block devices to /dev/xvd and /dev/sd devices (i.e. AWS Nitro instances)
  • manage hotpluggable network interfaces
  • sync IMDS-provided secondary IPv4 and IPv6 addresses network interfaces

Also included is a handy imds client script for easy access to an instance's IMDS data.

For more information, see the README.

Changes since 2.0.0_rc3

  • No changes.