Skip to content

SYSTEM Cited by 1 source

Poptart Bootstrap (Slack)

What it is

Poptart Bootstrap is Slack's internal cloud-init-phase tool baked into all Slack base AMIs. It runs at instance boot time via cloud-init, before the node joins the fleet, and is responsible for the one-time per-instance setup that the persistent Chef run cannot do (because the chef-client hasn't been invoked yet).

Core responsibilities

  1. Create the Chef node object. Register the new node with the appropriate Chef server so subsequent chef-client runs have a record to converge against.
  2. Set up DNS entries. Create any hostname / reverse-DNS / service-discovery records required before the node can serve traffic.
  3. Post a boot-status message to Slack. Customisable per-team-channel notification: "posting a success or failure message to Slack (with customisable channels based on the team that owns the node)." First-party failure signal.
  4. (Phase-2, 2025-10-23)Assign the node's Chef environment based on its AZ ID. Phase 2 of Slack's Chef deploy-safety work split the single prod environment into six AZ-bucketed environments (prod-1prod-6); Poptart Bootstrap is the component that maps AZ → environment at boot, so the node is pinned to its AZ's environment from day zero. See concepts/az-bucketed-environment-split.

Why the AZ-mapping happens at boot, not later

The load-bearing decision in phase 2 is that new instances must be mapped to an AZ-bucketed environment immediately, before their first Chef run. If mapping happened lazily (e.g., on first chef-client run), the new instance would still pull from the shared environment in the meantime — exactly the scale-out-picks-up-bad-config failure mode phase 2 was designed to prevent.

Verbatim (Source: sources/2025-10-23-slack-advancing-our-chef-infrastructure-safety-without-disruption):

"To support the environment split, we extended Poptart Bootstrap to include logic that inspects the node's AZ ID and assigns it to one of the numbered production Chef environments."

Placing the mapping at boot time (before any Chef run) makes the AZ-bucketed boundary structural rather than behavioral.

Caveats

  • Stub-level. Poptart Bootstrap's full mechanism — how it creates the Chef node object, how DNS is set up, which Slack-notification mechanism is used — is not disclosed.
  • AZ mapping strategy undocumented. Whether it's a hash of AZ ID, round-robin, or explicit per-AZ pinning is not stated.
  • Name etymology unclear. "Poptart" is a common playful-naming tradition for cloud-init-phase tools; the post does not explain the origin.

Seen in

Last updated · 470 distilled / 1,213 read