OSM Kubernetes Support 37/5837/6
authorprithiv <prithiv.mohan@intel.com>
Fri, 2 Feb 2018 15:06:36 +0000 (15:06 +0000)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Thu, 12 Nov 2020 16:58:56 +0000 (17:58 +0100)
This blueprint describes the design and the implementation details of
Kubernetes support with OSM.

Signed-off-by: prithiv <prithiv.mohan@intel.com>
Release4/K8_Support.md [new file with mode: 0644]

diff --git a/Release4/K8_Support.md b/Release4/K8_Support.md
new file mode 100644 (file)
index 0000000..4c7e662
--- /dev/null
@@ -0,0 +1,71 @@
+# OSM Kubernetes Support #
+
+## Proposer ##
+- Prithiv Mohan (Intel)
+
+## Type ##
+** Feature **
+
+## Target MDG/TF ##
+SO, RO, VCA, IM
+
+## Supported VIMs ##
+
+1. OpenStack
+2. VMWare
+3. AWS
+
+## Description ##
+
+Enable a container-based VNF deployment model via OSM that allows for the coexistence of container
+and VM deployment models to coexist within a network service. Kubernetes should be enabled as the
+container orchestration engine, but it must be done in a plugin manner that permits other container
+orchestration engines to be added in the future.
+
+The Kubernetes pods can be created either on a baremetal node or inside a VM. Either case, the
+Resource Orchestrator(RO) is responsible only for the resource allocation.
+
+For the VM based Kubernetes deployment, the VM image could have the kubelet node agent already
+installed. In this case, RO creates a VM and VCA takes care of the configuration and the LCM of the
+pods. If the image used by the RO to provide a VM has no kubelet installation, the VCA module will
+handle the installation, configuration of the kubernetes. The Resource Orchestrator will not involve
+in the installation of any kind of Kubernetes package.
+
+The options for baremetal provisioning includes OpenStack Ironic, Canonical Metal as a Service(MaaS)
+but not limited to that. An additional or extended plugin is required in the Resource Orchestrator
+for the baremetal provisioning of the resources for the Kubernetes.
+
+The proposed workflow below assumes Ironic/MaaS as the options for baremetal provisioning:
+
+       i.    User creating a descriptor with VNFD updates that indicate the deployment model for the
+             VNF (container on bare metal, container in VM, or VM deployment.
+       ii.   SO passes the request to RO.
+       iii.  RO receives the request.
+        iv a. In case of a Kubernetes deployment inside the VM, RO creates a VM with/without kubelet
+              installed in it based on the type of the image.
+           b. Alternatively, in the case of a Kubernetes baremetal deployment, RO communicates with
+              the MaaS/Ironic plugin. The plugin talks to the MaaS and/or Ironic to create the
+              Kubernetes pods.
+        v.    VCA does the installation and/or configuration of the VM for Kubernetes.
+
+Changes in the descriptor in the IM repo is required. Expected these show up fairly seamlessly in
+the UI due to the model driven nature of the platform.
+
+There is an option on the preparation of the baremetal nodes or VMs for supporting Kubernetes. These
+could be prepared beforehand, or Kubernetes could be configured on them once they have been
+allocated.
+
+The installation of Kubernetes and the configuration of the Kubernetes Controller will not be handled
+by the OSM as it is out of scope for OSM. The configuration could be handled by Juju with the charms.
+
+## Demo or definition of done ##
+
+* Creation of Kubernetes Pods is successful
+* Usual lifecycle operations on a NS that includes VM-based and container-in-VM based VNFs.
+* Supports multiple VIM environments.
+
+Links:
+
+1. https://kubernetes.io/
+2. https://kubernetes.io/docs/getting-started-guides/ubuntu/installation/
+3. https://www.ubuntu.com/kubernetes