enable biforst for baremetal deployment

Registered by sean mooney

Bifrost is a set of Ansible playbooks that automates the task of deploying a base image onto a set of known hardware using ironic.
see https://github.com/openstack/bifrost

this blueprint proposes an optional biforst container to enable baremetal provisioning of servers for use in a subsequent kolla deployment.

this support in not a replacement for current ironic support for the baremetal as a service usecase but optional
way to provision your servers for use with kolla.

the biforst contaienr will support both a bring your own iamge approch and building a base image to deploy on the host using
disk image builder.

while disk image builder can be used to create a custom image with all kolla dependcies pre installed this is currently not requried but could be added at a later date.

in paraell to this effort and intall_deps playbook should create to manage installation of build and or deploy dependencies on arbitray nodes. this install_deps playbook can be reused with existing baremetal deployment tools and will have no dependency on
bifrost to allow operators to reuse there existing infrastructure.

when all components are in place the workflow with bifrost will be as follows.

clone kolla
run install_deps playbook to prep localhost
build kolla images
deploy biforst container
enroll and deploy servers with biforsts
run intall_deps playbook on all servers
run kolla deploy on all servers.

the scope of this blueprint will cover the creation of the bifrost container and associated ansible playbook modification to deploy it. the install_deps playbook will be covered in a separate blueprint.

Blueprint information

Status:
Complete
Approver:
Steven Dake
Priority:
Essential
Drafter:
sean mooney
Direction:
Approved
Assignee:
sean mooney
Definition:
Approved
Series goal:
Proposed for newton
Implementation:
Implemented
Milestone target:
milestone icon newton-3
Started by
sean mooney
Completed by
Steven Dake

Related branches

Sprints

Whiteboard

biforst workflow
- clone http://github.com/openstack/kolla && cd kolla
- tools/build.py bifrost-deploy (https://review.openstack.org/319703)
- generate bifrost yaml files (https://review.openstack.org/349684)
  bifrost.yml
  dib.yml
  servers.yml
- tools/kolla-host deploy-bifrost (https://review.openstack.org/349685)
  TODO generate ssh key automatically as part of bootstrap.
- tools/kolla-host deploy-servers( https://review.openstack.org/349729)
  Invokes bifrost enroll and deploy dynamic roles
  polls until all  Servers are provisioned or a server fails.(not done check manually)

TODO: add advanced options such as bring your own ssh key or image.

Gerrit topic: https://review.openstack.org/#q,topic:bp/bifrost-support,n,z

Addressed by: https://review.openstack.org/319703
    introduce bifrost-deploy container

Addressed by: https://review.openstack.org/349684
    generate bifrost yaml configs

Addressed by: https://review.openstack.org/349685
    add bifrost deploy ansible support

Addressed by: https://review.openstack.org/349729
    add deploy-servers command

Addressed by: https://review.openstack.org/350692
    adds bifrost ssh key generation

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.