330 likes | 465 Views
OpenStack QA Project- Roles & Its Key Activities. Ghanshyam Mann Ken’ichi Ohmichi NEC. Agenda. Who are we ? Overview Of OpenStack Overview Of OpenStack QA OpenStack QA Projects – Overview & Their Key Activities Tempest Tempest-lib DevStack Grenade Hacking Summary. Who are we ?.
E N D
OpenStack QA Project- Roles & Its Key Activities Ghanshyam Mann Ken’ichi Ohmichi NEC
Agenda • Who are we ? • Overview Of OpenStack • Overview Of OpenStack QA • OpenStack QA Projects – Overview & Their Key Activities • Tempest • Tempest-lib • DevStack • Grenade • Hacking • Summary
Whoare we ? • Ghanshyam Mann • Software developer from NEC • OpenStack community member since 2012 • Core developer of Tempest and active contributor in Nova. • Ken’ichi Ohmichi • Software developer from NEC • OpenStack community member since 2012 • Core developer of Nova and Tempest
OpenStack • Open source software for creating private and public clouds. • OpenStack software controls large pools of compute, storage, and networking resources throughout a datacenter, managed through a dashboard or via the OpenStack API.
OpenStack • OpenStack Community has grown to lot bigger level. • Around 22K developers across over 160 countries, who have created around 3M LOC. • This is one of the fastest growing open source community.
OpenStack • OpenStack provides lot of services over cloud through many projects. • List Of OpenStack Projects-
Upstream Stability Quality of OpenStack ? OpenStack QA
OpenStack QA Project • A project that works on testing and quality assurance efforts across all OpenStack projects. • Main mission is to develop, maintain, and initiate tools and plans to ensure- • The upstream stability • Quality of OpenStack
OpenStack QA Project • The OpenStack QA project is made of multiple projects where each run independently towards the goals of the project. • Each project maintains a separate core team based on who provides reviews in those projects.
Tempest - OpenStack Integration Test Suite • This is a set of integration tests to be run against a live OpenStack cluster. • Tempest is designed to be useful for a large number of different environments. This includes being useful for gating commits to OpenStack core projects, being used to validate OpenStack cloud implementations.
Tempest - OpenStack Integration Test Suite… • Type of tests in Tempest-
Tempest - OpenStack Integration Test Suite… • API tests • API tests are validation tests for the OpenStack APIs. • Make sure stability and backward compatibility of APIs. • Scenario tests • Scenario tests are complex “through path” tests for OpenStack functionality. • Scenario tests interact with many services and tests cross projects features. • Stress tests • Stress tests are designed to stress an OpenStack environment by running a high workload against it and seeing what breaks.
Tempest - OpenStack Integration Test Suite… • Third Party API tests • Third party tests are tests for non native OpenStack APIs that are part of OpenStack projects. • An example is that Nova Compute currently has EC2 API support in tree. • Those should be kept separate from the normal OpenStack validation. • Unit tests • Unit tests are the self checks for Tempest. • They provide functional verification and regression checking for the internal components of Tempest.
Tempest - OpenStack Integration Test Suite… • Key Activities-
Tempest - OpenStack Integration Test Suite… • Focused Area- • Move common testing framework/modules to Tempest-lib. • Tempest Bug Triage and Fix • Since last year we started Bug Triage rotation for QA bugs. • This is helping us to keep new bug count less and provide fast response to logged bugs. • Recently in OpenStack summit, we discussed about providing External plugin interface.
Tempest-lib - OpenStack Functional Testing Library Motivation Behind Tempest-lib
Tempest-lib - OpenStack Functional Testing Library • As number of OpenStack projects keep growing, some issues comes up regarding their testing - • It becomes difficult to tests all projects in Tempest. • There will be duplicate effort for developing functional tests in each Projects. • To solve such issues, its better to provide common testing framework through some library so that projects can develop their own tests by using common framework.
Tempest-lib - OpenStack Functional Testing Library • A library to assist in creating functional or integrated test suites for OpenStack projects. • Tempest-lib is a library of common functionality that was originally in Tempest. Common Testing Framework Tempest Tempest-lib
Tempest-lib - OpenStack Functional Testing Library… • Key Activities-
Tempest-lib - OpenStack Functional Testing Library… • Project Functional tests can be developed using Tempest-lib. • Tempest tests started using Tempest-lib. Tempest tests Project-1 Functional tests Tempest-lib Project-n Functional tests
DevStack - OpenStack development environment • DevStack is an opinionated script to quickly create an OpenStack development environment. • It can also be used to demonstrate starting/running OpenStack services and provide examples of using them from a command line. Developer Work on OpenStack Install OpenStack Development Environment DevStack
DevStack - OpenStack development environment… • Key Activities-
DevStack - OpenStack development environment… • Supported Components -
DevStack - OpenStack development environment… • Focused Area - • Making Nova v2.1 API as default • Nova has two set of APIs, v2 and v2.1. Currently DevStack configure v2 API as default and provide option to configure v2.1 API on /v2 endpoint in targeted environment. As v2 API will be deprecated in future, it will be better to make v2.1 as default Nova API in DevStack to tests v2.1 API thoroughly. • Make external plugins for projects currently having their scripts in DevStack tree.
Grenade – OpenStack Upgrade Testing • Grenade is an OpenStack test harness to exercise the upgrade process between releases. • It uses DevStack to perform an initial OpenStack install and as a reference for the final configuration. • Currently Grenade can upgrade Keystone, Glance, Nova, Neutron, Cinder, Swift, Ceilometer, Horizon and Ironic in their default DevStack configurations.
Grenade – OpenStack Upgrade Testing… • How Grenade ensure that any Code modification does not break Upgrade. Upgrade From KILO to Master • OpenStack • Master Branch • OpenStack • Target Branch • (Master) • OpenStack • KILO 2 4 Merge Do Not Merge FAIL Grenade 3 PASS Code modification 1 Tests changes for upgrade through grenade gate job Developer
Grenade – OpenStack Upgrade Testing… • Key Activities-
Hacking • Hacking is a set of flake8 plugins that test and enforce the OpenStack Style Guidelines. • Most of the additional style guidelines that OpenStack has taken on came from the Google Python Style Guide. • http://google-styleguide.googlecode.com/svn/trunk/pyguide.html • Since then, a few more OpenStack specific ones have been added or modified.
Conclusion & Key Points • OpenStack QA helps to validate your OpenStack Cloud. • Migrate more testing common code from Tempest to Tempest-lib. • Tempest-lib to avoid duplicate test development effort. • External Plugins for DevStack, Tempest, Grenade. • More Info - • https://wiki.openstack.org/wiki/QA • https://wiki.openstack.org/wiki/Meetings/QATeamMeeting • IRC - #openstack-qa