diff options
Diffstat (limited to 'docs/com/pres/dockerslicing')
-rw-r--r-- | docs/com/pres/dockerslicing/dockerslicing.md | 124 | ||||
-rw-r--r-- | docs/com/pres/dockerslicing/index.html | 52 |
2 files changed, 0 insertions, 176 deletions
diff --git a/docs/com/pres/dockerslicing/dockerslicing.md b/docs/com/pres/dockerslicing/dockerslicing.md deleted file mode 100644 index a6645324..00000000 --- a/docs/com/pres/dockerslicing/dockerslicing.md +++ /dev/null @@ -1,124 +0,0 @@ -# Docker slicing - -[Cédric Ollivier](mailto:cedric.ollivier@orange.com) - -2017/10/19 - - - -## Danube issues - - -### OPNFV projects' setup.py - -- no requirements were installed when calling *python setup.py install* as none of the next keys was set: - - install_requires - - tests_require - - dependency_links -- shell scripts were not installed neither in $PATH nor in dist-packages -- all requirements were not synchronized over the OPNFV projects - - -### Functest's Dockerfile - -- it copied all the files hosted by the third-party projects (e.g. docs, .git...) -- several requirements were downgraded/upgraded when building the container as they were managed one after the other -- it could download packages from [PyPI](https://pypi.python.org/pypi) (e.g. [networking-bgpvpn](https://pypi.python.org/pypi/networking-bgpvpn)...) instead of cloning git repository -- build dependencies couldn't be removed to save space as it created multiple layers (>70) - - - -## Management of the requirements - - -### Rely on [pbr](https://docs.openstack.org/developer/pbr/) - -- pbr injects requirements into the install_requires, tests_require and/or dependency_links arguments to setup -- it supports conditional dependencies which can be added to the requirements (e.g. dnspython>=1.14.0;python_version=='2.7') - - -### Split requirements into 3 files - -- **requirements.txt** which should list all abstract (i.e. [not associated with any particular index](https://packaging.python.org/requirements/)) dependencies of the OPNFV packages -- **test-requirements.txt** which could list all abstract dependencies required for testing the OPNFV packages -- **upper-constraints.txt** which should list all concrete dependencies required by Functest Docker container or the testing virtual environments - - -### Follow [OpenStack requirements management](https://specs.openstack.org/openstack/openstack-specs/specs/requirements-management.html) - -- OPNFV (test-)requirements.txt have been updated according to stable/ocata global-requirements.txt. -- Functest simply use (and complete) stable/ocata upper-constraints.txt in Docker files and tox configuration (testing virtual environments). - - -### On the road - -- we have fixed lots of hardcoded paths hidden by the previous design -- some files were outside the python packages -- lots of (console) scripts added in OPNFV packages to ease the maintenance of Functest testcases.yaml - - - -## Docker slicing - - -### 8 Functest containers - -```bash -$ sudo docker search opnfv |grep functest- -opnfv/functest-core OPNFV Functest core image -opnfv/functest-restapi OPNFV Functest restapi image -opnfv/functest-features OPNFV Functest vnf image -opnfv/functest-healthcheck OPNFV Functest healthcheck image -opnfv/functest-smoke OPNFV Functest smoke image -opnfv/functest-vnf OPNFV Functest vnf image -opnfv/functest-components OPNFV Functest components image -opnfv/functest-parser OPNFV Functest parser image -``` - - -### 8 Functest containers - -- Alpine 3.6 is now used as base image -- one container per test suite has been published (5). All of them are built on top of functest-core. -- Parser is hosted in its own containers (it requires librairies released for OpenStack Pike) -- a full container is dedicated to our REST API. - -Please see [Run Alpine Functest containers](https://wiki.opnfv.org/display/functest/Run+Alpine+Functest+containers) - - - -## Next steps - - -### Functest and XCI - -- the purpose is simply to allow any OPNFV project integrated by Functest to build their own containers on top of opnfv/functest-core -- it will allow testing one specific change of these OPNFV projects before merging it in tree -- it induces that all requirements are synchronized between the different OPNFV projects - - -### F-release - -- to allow building opnfv/functest-core from a gerrit change (see https://gerrit.opnfv.org/gerrit/#/c/40909/) -- to split Functest core/ci and the Functest testcases in two separated Python packages -- to unlink prepare_env.py and tempest/rally - - -### F-release - -- to add python3 support for Functest ci scripts (Functest core already supports both versions) -- to unlink functest-core from others OPNFV projects (mainly releng and snaps) -- to write a generic Dockerfile using a set of python packages as input - - -### 2 OPNFV project proposals - -- requirements, the counterpart of [OpenStack requirements](https://wiki.openstack.org/wiki/Requirements), -focused on additional OPNFV project needs -- xtesting which would be derived from Functest (core and ci parts) as proposed in -[Functional testing gating](https://wiki.opnfv.org/display/functest/Functional+testing+gating) - - - -## Thank you! - diff --git a/docs/com/pres/dockerslicing/index.html b/docs/com/pres/dockerslicing/index.html deleted file mode 100644 index 1c65e4fa..00000000 --- a/docs/com/pres/dockerslicing/index.html +++ /dev/null @@ -1,52 +0,0 @@ -<html> -<head> -<title>Docker slicing</title> -<meta name="author" content="Cédric Ollivier"> -<meta name="viewport" - content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> -<link rel="stylesheet" href="../reveal.js/css/reveal.css"> -<link rel="stylesheet" href="../reveal.js/css/theme/white.css"> -<link rel="stylesheet" href="../reveal.js/lib/css/zenburn.css"> -<script> -var link = document.createElement( 'link' ); -link.rel = 'stylesheet'; -link.type = 'text/css'; -link.href = window.location.search.match( /print-pdf/gi ) ? '../reveal.js/css/print/pdf.css' : '../reveal.js/css/print/paper.css'; -document.getElementsByTagName( 'head' )[0].appendChild( link ); -</script> -</head> -<body> - <div class="reveal"> - <div class="slides"> - <section data-markdown="dockerslicing.md" data-separator="^\n\n\n" - data-separator-vertical="^\n\n" data-separator-notes="^Note:"></section> - </div> - </div> - <script src="../reveal.js/lib/js/head.min.js"></script> - <script src="../reveal.js/js/reveal.js"></script> - <script> - Reveal.initialize({ - dependencies : [ { - src : '../reveal.js/plugin/markdown/marked.js', - condition : function() { - return !!document.querySelector('[data-markdown]'); - } - }, { - src : '../reveal.js/plugin/markdown/markdown.js', - condition : function() { - return !!document.querySelector('[data-markdown]'); - } - }, { - src: '../reveal.js/plugin/highlight/highlight.js', - async: true, - callback: function() { - hljs.initHighlightingOnLoad(); - } - }, { - src: '../reveal.js/plugin/notes/notes.js', - async: true - } ] - }); - </script> -</body> -</html> |