diff options
Diffstat (limited to 'docs/onap-integration-ci.rst')
-rw-r--r-- | docs/onap-integration-ci.rst | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/docs/onap-integration-ci.rst b/docs/onap-integration-ci.rst deleted file mode 100644 index 99a54323a..000000000 --- a/docs/onap-integration-ci.rst +++ /dev/null @@ -1,169 +0,0 @@ -.. _integration-ci: - -Integration Continuous Integration Guide ----------------------------------------- - -Continuous Integration is key due to the complexity of the ONAP projects. -Several chains have been created: - -- Daily stable chain -- Daily master chain -- Gating: On demand deployment of a full ONAP solution to validate patchsets - -They are run on different environments (Orange labs, DT labs, Azure Cloud). - -The following document will detail these chains and how you could set up such -chains and/or provide test results to the community. - -Integration CI Ecosystem ------------------------- - -Overview -~~~~~~~~ - -The global ecosystem can de described as follows: - -.. figure:: files/CI/ONAP_CI_10.png - :align: center - -Several chains are run in ONAP. -The CI chains are triggered from different CI systems (Jenkins or gitlab-ci) (1) -on different target environments hosted on community labs (Windriver, -Orange, DT, E///) or Azure clouds. Jobs (installation, tests) are executed on -these labs (2). At the end, the results are pushed through the OPNFV test API (3) -to a test database (4) hosted by Linux Foundation on -http://testresults.opnfv.org. -Results can be reported in different web pages hosted on LF or on gitlab.com (5). - - -Daily Chains -~~~~~~~~~~~~ - -CI daily chains (Master and last Stable) are run on Orange, DT using gitlab-ci -jobs and Ericsson using jenkins jobs. - -Gating -~~~~~~ - -OOM gating has been introduced for El Alto. It consists of a deployment followed -by a set of tests on patchsets submitted to OOM repository. - -The CI part is managed on gitlab.com and the deployment is executed on ONAP -Orange lab and Azure clouds. -The goal is to provide a feedback - and ultimately to vote - on code change -prior to merge to consolidate the OOM Master branch. - -The developer can evaluate the consequences of his/her patchset on a fresh -installation. - -The gating is triggered in 2 scenarios: - - - new patchset in OOM - - comment with the magic word **oom_redeploy** is posted in the Gerrit's comment - section - -The procedure to submit new feature in CI is done in 3 steps as described in the -figure below: - -.. figure:: files/CI/ONAP_CI_0.png - :align: center - - -Visualization of the CI pipelines -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -As the CI chains are triggered from different systems, several web interfaces -can be used to visualize them. - -A web site has been created to centralize the links on http://testresults.opnfv.org/onap-integration/index.html - -.. figure:: files/CI/ONAP_CI_3.png - :align: center - -For Gating and gitlab.com based CI chains, the pipelines consist in pipelines of -pipelines managed through the chaining of .gitlab-ci.yml file thanks to an Open -Source deployment called chained-ci (https://gitlab.com/Orange-OpenSource/lfn/ci_cd/chained-ci). -A visualization tool is available to list all your chains as described in the -figure below: - -.. figure:: files/CI/ONAP_CI_1.png - :align: center - -If you click on any element of the chain, you will open a new window: - -.. figure:: files/CI/ONAP_CI_2.png - :align: center - -In order to provide the logs to the developer an additional web page has been -created to summarize the tests and grant access to their associated logs: - -.. figure:: files/CI/ONAP_CI_8.png - :align: center - -Additionnaly, for the daily chain, another page displays the results as time -series, allowing to see the evolution of the tests over time. - -.. figure:: files/CI/ONAP_CI_9.png - :align: center - - -Setup Your Own CI Chains ------------------------- - -If you want to setup a gitlab.com based CI chain, and want to use chained-ci, -you can follow the tutorial on https://gitlab.com/Orange-OpenSource/lfn/ci_cd/chained-ci-handson - -You should be able to chain your automation projects: - -* Create resources -* Deployment of Kubernetes -* Test of your Kubernetes (using OPNFV functest-k8s tests) -* Deployment of your ONAP (you can use your own automatic installation - procedure or https://gitlab.com/Orange-OpenSource/lfn/onap/onap_oom_automatic_installation/) -* Test ONAP thanks to the differnet ONAP xtesting dockers covering infrastructure - healthcheck, components healthcheck tests, end to end tests, security tests. - -If you want to report your results to the community, do not hesitate to contact -the integration team. The Test database is public but the pods must be declared -to be allowed to report results from third party labs. - - -ONAP Integration Testing Gate -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -5 categories have been defined for the ONAP integration testing gate: - -* infrastructure healthcheck: verify ONAP from a k8S perspective. It includes - 2 tests: onap-k8s (all the deployments, jobs, statefulste,..must be OK at - the end of an installation), onap-helm (all the helm chart must be - completed at the end of the installation) -* healthcheck: the traditionnal robot tests run from the cluster to perform - tests on the different components. -* smoke-usecases: End to end tests -* candidate-usecases: New end to end tests introduced in the automation chain - for the release -* security tests (security of kubernetes (CVE, CIS tests) and ONAP (exposed - ports, check the containers run as root,...)) -* benchmarking (robustness, stress tests): not yet available - -All these tests have been packaged thanks to the OPNFV Open Source tool xtesting. -Xtesting is a python package allowing to unify the way to declare, run tests. It -also ensures a consistent way to get the test results whatever the test framework -used (python, robotframework, bash, ...). It includes the mechanism to -automatically push the results to the test database using the test API. -It simplifies the integration in CI. - -The package can be found here https://pypi.org/project/xtesting/. - -The different ONAP xtesting dockers can be found on https://gitlab.com/Orange-OpenSource/lfn/onap/integration/xtesting/container_registry - -As an illustration, you can run the infrastructure healthcheck by typing the -following command:: - - docker run -v <the kube config>:/root/.kube/config -v <result directory>: - /var/lib/xtesting/results registry.gitlab.com/orange-opensource/lfn/onap/integration/xtesting/infra-healthcheck:latest - -All the xtesting tests are included in Daily and gating chains. -Please note that you can build your own onap-xtesting docker if you want to -include your tests. See https://wiki.onap.org/pages/viewpage.action?pageId=79202765 -for details. |