March 23rd, 2018

Operating Systems are now on GitHub!

One of the core tenets at Packet is consistency and reproducibility - i.e. the "cloud" experience. To that end, we released a major update that impacts how we create, manage, distribute, and deploy our supported operating systems on Packet. We had four main goals that we wanted to achieve in this process:

  • Creating and Exposing 'Immutability' - By default, we ensure that when you deploy a supported operating system on Packet, you’re going to be deploying the most up-to-date and secure version that has the latest upstream updates. This is great for most, but sometimes you need to “peg” your systems to a particular image/kernel version. You can now pass the git commit during provisioning, and you're guaranteed that that image will be provisioned.
  • Always In Sync - We now have 15 global datacenters, and it’s crucial that our operating system images reside in the facility closest to the system being installed. We’ve deployed transparent proxy caches that ensure that no matter which facility you’re in, you’ll get a fast local copy.
  • Transparency - Instead of wondering what just changed when we updated our images, you can check the commit messages in git. You also don’t need to wonder how we create our CentOS or Ubuntu images anymore. It’s all right here. If it’s not there, we’re not using it.
  • BYO Images - During provisioning, we’re initializing the public packet images repository on, which means there’s no reason that we can’t (you guessed it!) initialize your git repository instead. There are a few bits to work out, but expect READMEs and more details on how to create and deploy your own OS images on Packet soon.

To use the immutability feature, check image_tag of the device you’re on using our metadata service:

# curl -s | \
    jq -r '.operating_system.image_tag'

You can then pass that in (or the git short-id) when creating devices, appending it to the operating system slug:

  "plan": "baremtal_0",
  "facility": "ewr1",
  "operating_system": "centos_7:47248a016"

If you have any questions, don't hesitate to email us!