Configure openstack services with docker support

Include the URL of your launchpad blueprint:

https://blueprints.launchpad.net/openstack-chef/+spec/docker-driver-configuration

The Docker driver is a hypervisor driver for OpenStack Nova Compute. It was introduced with the Havana release. Docker is an open-source engine which automates the deployment of applications as highly portable, self-sufficient containers which are independent of hardware, language, framework, packaging system and hosting provider.

Refer [OPENSTACK_DOCKER_DOCUMENTATION].

This new change proposed will enable deployment and configuration of nova-docker driver, glance repo configuration and any needed config to support seemless managment of docker nodes in openstack cloud.

Problem description

  • Currently, openstack-compute does not support nova-docker driver
  • Currently, openstack-image does not support docker container formats for images which includes docker and dockerref
  • [OPENSTACK_DOCKER_COOKBOOK_OLD] is an available option which is not maintained for last 2 years and it has embedded 2 years old driver.

Proposed change

Add support in openstack-compute cookbook to configure [NOVA_DOCKER_DRIVER]. Current support will be to download the nova docker driver from git repo and configure.

Also change openstack-image to support container formats for docker images which includes docker and dockerref

Alternatives

None

Data model impact

None

REST API impact

None

Security impact

None

Notifications impact

None

Other end user impact

None

Performance Impact

None

Other deployer impact

None

Developer impact

None

Implementation

Assignee(s)

Primary assignee:
Other contributors:

Work Items

  • Add new attributes to openstack-compute
  • Change openstack-compute / nova.conf.erb template for including nova-docker driver
  • Add new recipe for docker configuration in openstack-compute
  • Change compute.rb recipe in openstack-compute to include the new recipe based on configuration
  • Add the unit tests.
  • Change openstack-image and add new container formats in attributes

Dependencies

  • In order to configure nova-docker driver - compute nodes should be pre installed with docker runtime. Users can opt to use cookbook [CHEF_DOCKER] In case above cookbook does not support the OS where compute is getting configured use doucmentation which is available at [DOCKER_RUNTIME_INSTALLATION].
  • This depends on Nova Docker driver [NOVA_DOCKER_DRIVER]. Currently a git clone of above source in .zip format is required to complete nova configuration

Testing

  • Add unit tests for the recipes.
  • For function and CI integration test, at least one node with OpenStack all-in-one deployment is recommended.
  • In order to configure a compute node as docker compute(while testing using openstack-chef-repo) override the attribute to true using environment which indicates whether a node is docker type or not
  • Prior to testing, install docker runtime to all compute nodes. Refer Dependencies for more details

Documentation Impact

  • Change README.md. in openstack-compute

Possible Future Enhancements

Change openstack-telemetry cookbook to support monitoring of docker computes