summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Farrell <dfarrell@redhat.com>2018-06-05 09:54:33 -0400
committerDaniel Farrell <dfarrell@redhat.com>2018-06-13 16:50:45 -0400
commit69a1e8166c37b93dd354509368dfe5c9952b9cda (patch)
tree2820017d147f37bd15a57e22114ab537f5663fe7
parent473a4d2598894e82e845310e3763a0ec8d6689c2 (diff)
Add k8-odl-coe spec
This spec proposes adding an XCI senerio that uses OpenDaylight COE and NetVirt with Kubernetes for pod networking. Change-Id: I3418542cf22df0f4d04e167903f2bb59151fa0a6 Signed-off-by: Periyasamy Palanisamy <periyasamy.palanisamy@ericsson.com> Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
-rw-r--r--docs/specs/k8-odl-coe.rst105
1 files changed, 105 insertions, 0 deletions
diff --git a/docs/specs/k8-odl-coe.rst b/docs/specs/k8-odl-coe.rst
new file mode 100644
index 00000000..cd29456c
--- /dev/null
+++ b/docs/specs/k8-odl-coe.rst
@@ -0,0 +1,105 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. SPDX-License-Identifier: CC-BY-4.0
+.. Copyright 2018 Ericsson AB and Others
+
+.. Links
+.. _OpenDaylight COE: https://wiki.opendaylight.org/view/COE:Main
+.. _setting-up-coe-dev-environment: https://github.com/opendaylight/coe/blob/master/docs/setting-up-coe-dev-environment.rst
+.. _ansible-opendaylight: https://git.opendaylight.org/gerrit/gitweb?p=integration/packaging/ansible-opendaylight.git;a=tree
+
+This spec proposes adding an k8-odl-coe XCI scenario for OpenDaylight as the
+networking provider for Kubernetes using the OpenDaylight COE (Container
+Orchestration Engine) and NetVirt projects.
+
+Problem Description
+===================
+
+Currently OpenDaylight's advanced networking capabilities are not leveraged
+with Kubernetes in any scenarios. This spec proposes a reference platform for
+deployments that want to use OpenDaylight as a networking backend for
+Kubernetes.
+
+Minimum Hardware Requirements
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Hardware for Kubernetes Master Node(s)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+* RAM: 16 GB (20 GB for ha flavor i.e. for OpenDaylight Clustering)
+* HD: 80 GB
+* vCores: 6
+
+Hardware for Kubernetes Worker Node(s)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+* RAM: 12 GB
+* HD: 80 GB
+* vCores: 6
+
+Supported XCI Sandbox Flavors
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This scenario will support deployments on Mini, No HA and HA XCI Sandbox Flavors.
+
+Proposed Change
+===============
+
+1. Provide Pod Descriptor Files (PDF) and IDF (Installer Descriptor Files)
+ specific to this scenario to install Kubernetes with OpenDaylight COE.
+2. Introduce a new scenario k8-odl-coe in releng-xci-scenarios repository.
+3. Reuse the role from k8-nosdn-nofeature scenario to install Kubernetes.
+ It has kube_network_plugin option to 'cloud' in k8s-cluster.yml so that
+ Kubespray doesn't configure networking between pods. This enables
+ OpenDaylight to be chosen as a networking backend in steps 4-7.
+4. Enhance upstream `ansible-opendaylight`_ role to deploy OpenDaylight with
+ COE Watcher on k8s master node(s) and CNI plugin on the k8s master and
+ worker node(s).
+5. Add the required Ansible tasks in k8-odl-coe role to direct XCI and
+ ansible-opendaylight role to configure k8s with OpenDaylight as the
+ networking backend for pod connectivity.
+6. Run the Health Check by testing the pods' connectivity.
+
+The COE Watcher binary and COE CNI plugin are built from OpenDaylight COE
+source code. The user will have flexibility to choose its SHA from XCI's
+ansible-role-requirements.yml file.
+
+Code Impact
+-----------
+
+Code specific to the k8-odl-coe scenario will be added to the xci/scenarios
+directory of the releng-xci-scenarios repository.
+
+User Guide
+----------
+
+No user guide will be provided.
+
+Implementation
+==============
+
+See the Proposed Change section.
+
+Assignee(s)
+-----------
+
+Primary assignees:
+
+* Prem Sankar G (premsa)
+* Periyasamy Palanisamy (epalper)
+* Fatih Degirmenci (fdegir)
+
+Work Items
+----------
+
+1. Enhance the akka.conf.j2 in upstream ansible-opendaylight role to work
+ with k8s deployments (i.e. run ODL cluster on k8s master nodes).
+ Currently this works only for the deployments based on Openstack-Ansible.
+2. Enhance upstream ansible-opendaylight role to install odl-netvirt-coe and
+ odl-restconf Karaf features, build COE watcher and CNI plugin binaries
+ from source.
+3. Implement configure-kubenet.yml to choose OpenDaylight COE as the
+ networking backend.
+4. Implement Health Check tests.
+
+Glossary
+--------