diff options
Diffstat (limited to 'docs/com/pres/dockerslicing/dockerslicing.md')
-rw-r--r-- | docs/com/pres/dockerslicing/dockerslicing.md | 124 |
1 files changed, 0 insertions, 124 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! - |