Introduce CNTT Compliance by Functest 54/69254/2
authorCédric Ollivier <cedric.ollivier@orange.com>
Wed, 4 Dec 2019 20:02:59 +0000 (21:02 +0100)
committerCédric Ollivier <cedric.ollivier@orange.com>
Sat, 7 Dec 2019 12:40:21 +0000 (13:40 +0100)
Change-Id: I77dd7d3e0d21573e76ec8d43a0b6ca5b64be2ad2
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
docs/com/pres/compliance/compliance.md [new file with mode: 0644]
docs/com/pres/compliance/index.html [new file with mode: 0644]

diff --git a/docs/com/pres/compliance/compliance.md b/docs/com/pres/compliance/compliance.md
new file mode 100644 (file)
index 0000000..cbe0dbe
--- /dev/null
@@ -0,0 +1,97 @@
+# From Verification to CNTT Compliance
+
+[Cédric Ollivier](mailto:cedric.ollivier@orange.com)
+
+2019/12/04
+
+
+
+## Infrastructure Verification
+
+
+### Functest in a nutshell
+
+- verify any kind of OpenStack and Kubernetes deployments (OPNFV model)
+  including production environments
+- conform with upstream rules (OpenStack gate jobs and Kubernetes conformance
+  tests)
+- ensure that the platforms meet Network Functions Virtualization requirements
+
+
+### Functest suites
+
+- all functional tests (3000+) as defined by the upstream communities
+  (e.g. Tempest, neutron-tempest-api, Barbican, Patrole...)
+- 3 hours upstream API and dataplane benchmarking tests (Rally, VMTP and
+  Shaker)
+- Virtual Network Function deployments and testing (vIMS, vRouter and vEPC)
+
+
+
+## CNTT Compliance
+
+
+### Verification vs Compliance
+
+- verification allows skipping test if optional services (Gnocchi, Barbican,
+  etc.) or capabilities (remote console access, Neutron BGPVPN or SFC, etc.)
+  are missing
+- compliance forces here the full API descriptions as currently proposed by
+  CNTT (please see
+  [Interfaces and APIs](https://github.com/cntt-n/CNTT/blob/master/doc/ref_arch/openstack/chapters/chapter05.md))
+- then the testcase descriptions should forbid skipping any test and cover only
+  the mandatory services (and their mandatory capabilities)
+
+
+### Changelog
+
+- all the logics were already in Functest and the underlying frameworks (Rally,
+  Tempest, etc.)
+- 2 new CNTT-related containers including the new testcase descriptions were
+  published to easily verify the compliance
+- all 3 Functest SUTs (Rocky, Stein/Train and Master) are now compliant with
+  CNTT API to ensure the continuous integration
+- the benchmarking testcases doesn't validate any KPI as nothing is written in
+  CNTT documentation
+
+
+### RI verification and Compliance
+
+- CNTT Reference Implementation 1 is already continuously verified
+  ([continuous integration model](https://build.opnfv.org/ci/view/cntt/job/cntt-latest-daily/))
+- the conformance is currently failing due to a few bugs in deployments and
+  missing features
+
+**Be free to [deploy your own CNTT Compliance CI/CD toolchain](https://wiki.opnfv.org/pages/viewpage.action?pageId=32015004)
+  in a few commands**
+
+
+
+## Conclusion
+
+
+### Next steps
+
+- fix reference implementation 1 deployments and then achieve the compliance
+- port existing OPNFV testcases to Xtesting and then add them in the continuous
+  integration loop
+- update the testcase descritions according to the CNTT progress (KPI, API
+  changes)
+
+
+### Takeaways
+
+- Functest allows verifying any production Infrastructure and now checking the
+  CNTT API Compliance
+- all containers can be already consumed
+- any third-party certification should reuse the Functest CNTT-related
+  containers as they are
+- [CNTT RI continuous integration](https://build.opnfv.org/ci/view/cntt/job/cntt-latest-daily/)
+  is in place and any testcase can be smoothly added if they leverage on
+  Xtesting
+
+**Try it, and you will love it!**
+
+
+
+## Thank you
diff --git a/docs/com/pres/compliance/index.html b/docs/com/pres/compliance/index.html
new file mode 100644 (file)
index 0000000..94fc121
--- /dev/null
@@ -0,0 +1,52 @@
+<html>
+<head>
+<title>From Verification to Compliance</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="compliance.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>