Deploy Steps

Introduction


Dmitry Tantsur (Principal Software Engineer, Red Hat)

Twitter: @creepy_owlet

Slides: owlet.today/talks/deploy-steps-intro

Deployment: history

Original ironic deployment:

  • Prepare PXE boot
  • Start the ramdisk
  • Boom! Magic!!
  • Reboot the node

The goal of the deploy steps work is to make Boom! Magic!! understandable and extensible.

Deploy steps

The idea: split the monolithic and opaque deploy function into several steps.

Two step kinds:

  1. Out-of-band (via the BMC)
  2. In-band (via the ramdisk

Ordered according to their priorities.

Built-in steps

  1. deploy.deploy (100) start the ramdisk
  2. deploy.write_image (80)
  3. deploy.prepare_instance_boot (60)
  4. deploy.tear_down_agent (40)
  5. deploy.switch_to_tenant_network (30)
  6. deploy.boot_instance (20)

deploy.write_image is in-band, the rest - out-of-band

Custom steps

Coming from:

  • in-band - from the ramdisk
  • out-of-band - from the driver

In-band steps are provided by an IPA hardware manager and must use priorities 99 to 41.

Deploy templates

A way to associate a trait with a list of deploy steps.

Can modify priorities and provide arguments!

Tutorial

Blog post: owlet.today/posts/deploy-steps-tutorial

Example code: github.com/dtantsur/ironic-inject-files

Questions?