Last year I posted the following tweet whilst I was attending SUSECON 16 in Washington DC.
— Markos Chandras (@hwoarang_) November 9, 2016
Since then, a lot of things have been happening in many upstream projects in order for that tweet to become a reality. One such thing is making SUSE a supported platform for NFV deployments. And the most obvious way to do that is to add SUSE support in a Continuous Integration system where NFVs are being tested on. You may think “OPNFV” and you are absolutely right. Let’s quickly discuss what this new OPNFV XCI project is all about.
Everyone agrees that testing is an essential process for a project with high quality standards such as Open Platform for NFV (OPNFV). But testing is boring and it is hard to get it right. It’s becoming even harder when multiple projects need to be tested at the same time in order to verify whether the combined result is acceptable or not. Each
one of these projects may contain unit and functional tests but these do not help much validating the combined product as a whole. And this is where OPNFV XCI enters the picture.
OPNFV XCI (Cross Community CI) project provides a multi-distribution testing platform for OPNFV developers to test their code against the latest upstream code of OpenStack, OpenDaylight, FD.io etc. The word latest is important here, since it’s extremely valuable for developers and project to be able to get this kind of CI feedback when they are developing projects in OPNFV. That way, bugs can be fixed sooner and features can be introduced faster.
Apart from that, XCI aims to provide developers with a stable platform to develop their features on. This is done by “pinning” the versions of all the components that are known to work together creating a stable developer “sandbox”. Providing a stable platform for developers is important, but providing an easy way for them to quickly test their changes against that platform is of equal importance. XCI achieves that by supporting source-based deployments.
If you want to learn more about XCI, its purpose and its design, there are plenty of resources available, such as the XCI documentation, the latest OPNFV blog posts or watch the video from the last OPNFV summit in Beijing.
There are two projects at the core of XCI. Bifrost and OpenStack-Ansible. Bifrost deals with provisioning the virtual and baremetal hardware using standalone Ironic, iPXE and diskimage-builder, whereas OpenStack-Ansible can deploy an entire OpenStack cloud (stable or master) using Ansible. Both projects are quite mature, the communities are extremely friendly and they both have great documentation for both new and experienced contributors.
SUSE has been extremely active in both the XCI and its core projects. During the OpenStack Pike release, SUSE has moved from the no-support-at-all status to a fully tested and voting platform for both the bifrost and OpenStack-Ansible projects. During this process, SUSE not only made these projects “SUSE” aware, but also improved other areas such as those of testing, performance and code quality.
As a result of which, SUSE is also a fully supported platform in the OPNFV XCI project and one of its biggest code contributors. Projects who rely on XCI for testing and validation can now run fully in a openSUSE Leap 42.3 OPNFV deployment. This is a great milestone for SUSE since for the first time SUSE becomes an official platform for OPNFV developers to try their code on. Additionally, SUSE also assisted with cross-distribution efforts in order to ensure that XCI has no distribution specific code and everything is tested fairly across all 3 supported distributions.
This is all just the beginning of a great journey. XCI is constantly evolving and moving towards more complex and advance OPNFV deploymentssuch as Ceph, OvS and FDio. If you are interested in becoming part of it checkout out the documentation on how you can get started with XCI.