[openstack-dev] [tripleo] DPDK Containerization

Saravanan KR skramaja at redhat.com
Tue May 9 10:20:01 UTC 2017


Hello,

We are analyzing the work items needed to containerize DPDK. There is
a work in progress in the kolla image repo for adding DPDK support
[1]. By default, the kolla image will NOT have DPDK support, but only
when enabled at build time. This is because for ubuntu the openvswitch
package is different for DPDK enabled openvswitch. In case of rhel
family, the openvswitch package is only one which has both regular and
DPDK enabled openvswitch. DPDK can be enabled at run time. We can
maintain this run time enabling of DPDK for the containers too. So the
openvswitch containers will have DPDK packages installed, but disabled
by default. Puppet configuration will enable it, if needed.

In order to achieve it, we need to add a template override file for
DPDK based on kolla review [1]. This override should be applicable to
all the openvswitch container images. It can be achieved by adding a
property in overcloud_containers.yaml list to provide specific
template override files, like:

  container_images:
  - imagename: tripleoupstream/centos-binary-aodh-api:latest
  - imagename: tripleoupstream/centos-binary-openvswitch-db-server:latest
    overrides:
      - openvswitch-dpdk-override.j2

Let me know if this is something workable. I know we have to modify
the image builder logic, but let me know if the direction is correct.

Another important item to look is that DPDK is enabled by
puppet-vswitch [2] by invoking the ovs-vsctl command. As I remember
the discussions around creating conf files out of puppet execution,
copying to host and mounting to the actual container is the approach
we are using. I am still figuring out to see how ovs-vsctl command can
be invoked using this model.

Containerization of openvswitch is looked up as separate effort by
another team, which will be the base requirement for the DPDK to work.
But openvswitch container need to be started before running the
"NetworkDeployment" which will run the os-net-config. This brings
another requirement of how to containerize os-net-config. It is tricky
as it is not associated with any puppet/service, it has to brought up
individually/separately, with the dependency of openvswitch. I am
still getting familiar with the blocks around this.

I will be updating the analysis and the progress, any suggestions or
directions is more than welcome.

Regards,
Saravanan KR

[1] https://review.openstack.org/#/c/342354/
[2] https://github.com/openstack/puppet-vswitch/blob/master/manifests/dpdk.pp#L113



More information about the OpenStack-dev mailing list