Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
OpenNESS 19.12 Design

...

Microservices of Openness Infrastructure mode DescriptionDeployment methodDeployment of the componentPropose to integrate
eaaapplication/service registration, authentication etcdeploymentedge nodeyes
edgednsfor client to access microservices in edge nodedaemonset (propose to change to deployment)edge nodeyes
interfaceservicesimilar with providernet implemented in ovn4nfv-k8s-plugindaemonsetedge nodeno, will use ovn4nfv-k8s-plugin's provider network
cnca

Core Network Configuration: Configure the access network (e.g., LTE/CUPS, 5G) control plane

deploymentcontrollerno
sysloglog service for opennessdaemonsetcontroller & edge nodeno
multusenabling attaching multiple network interfaces to podsdaemonsetcontroller & edge nodeAlready covered by ONAP4K8s - KUD
nfdnode feature discoverydaemonsetcontroller & edge nodeAlready covered by ONAP4K8s - KUD
sriovsriov network device plugin & sriov cnidaemonsetcontroller & edge nodeAlready covered by ONAP4K8s - KUD
topology managerkubernetes topology managerKubelet componentcontroller & edge nodeWork in Progress to upgrade the K8s v16.0 integrate into ONAP4K8s - KUD
CMKCPU Managerpart of kubeletcontroller & edge nodeWork in Progress - Integrate into ONAP4K8s - KUD
biosUsed for change BIOS and firmware configuration: CPU configuration, Cache and Memory configuration, PCIe Configuration, Power and Performance configuration, etcprivileged Podcontroller & edge nodeRequired for ICN? Already in ICN Metal3, could be enabled part of it
fpgaOpen Programmable Acceleration Engine (OPAE) package consisting of a kernel driver and user space FPGA utils package that enables programming of the FPGA is used. sriov is used to configure the FPGA resources such as Virtual Functions and queuespodcontroller & edge nodeNeed to integrate into ONAP4K8s - KUD with FPGA device

...

Add more realistic test cases for platform related micro-services

Microservice

Test cases in KUD

Test cases to be added

Multus

  1. Enable Multus AddOn support.
  2. Verify the minion interface network type
        · bridge[1]
        · ovn4nfv[2]
        · sr-iov[3]

[1]https://github.com/onap/multicloud-k8s/blob/9c63ce2a7b2b66b3e3fce5d1f553f327148df83f/kud/tests/_common.sh#L856
[2]https://github.com/onap/multicloud-k8s/blob/9c63ce2a7b2b66b3e3fce5d1f553f327148df83f/kud/tests/_common.sh#L1053
[3]https://github.com/onap/multicloud-k8s/blob/9c63ce2a7b2b66b3e3fce5d1f553f327148df83f/kud/tests/sriov.sh#L32

  1. Add more k8s-cni[1] type verification:
    · macvlan
    · ipvlan
    · 
    ptp

[1] https://github.com/containernetworking/plugins

SR-IOV CNI

  1. Enable SR-IOV cni and network device plugin AddOn support.
  2. Check VF allocated status.
    · Verify single VF allocated[1]

[1]https://github.com/onap/multicloud-k8s/blob/9c63ce2a7b2b66b3e3fce5d1f553f327148df83f/kud/tests/sriov.sh#L47

  1. Add multi-VF allocated verification
    · 
    Verify multiple VF allocated

SR-IOV  Network Device Plugin

NFD

  1. Enable NFD AddOn support.
  2. Using the "affinity"[1] field verifies If NFD is effective or not.
    ·  Using 'Gt' operator to check kernel version.

[1]https://github.com/onap/multicloud-k8s/blob/master/kud/tests/nfd.sh#L27

  1. Enhance the "affinity" verification method.
    · 
    Add different kinds of operator, e.g. In, NotIn, ExistsDoesNotExist Lt.
    · Add multiple "matchExpressions" verification.
    · Add multiple "nodeSelectorTerms" verification.
  2. Add a “nodeSelector” field to verify.

CMK

CMK is not integrated into KUD yet. 

It's going to be added the patch below:

https://gerrit.onap.org/r/c/multicloud/k8s/+/102311

Task List

  • Create Ansible scripts to create building environment, build microservices' docker images and push them to docker repository
  • Create helm charts to run microservice in ONAP4K8s

...

  • If creating one EAA for every tenant (logical cluster): micro-services on different edge clouds which are kubernetes clusters should be able to communicate with each other by registering the services to the EAA and consuming the services from the EAA on different edge clouds. For example: μs2 is stateful and needs to communicate with other μs2 on different edge clouds to synchronize the states.
  • If creating one EAA for every kubernetes cluster, EAAs need to synchronize the states because EAAs are stateful: Docker image for EAA is signed by the root CA of the kubernetes cluster where EAA will be deployed as below:
    https://github.com/open-ness/edgenode/blob/master/docker-compose.yml#L77
    This will cause the  The certs of EAAs on different edge clouds to be on different certificate chains because different EAAs’ certs are signed by different kubernetes clusters’ root CAshas different Root CA. What’s more, producing application and consuming application will get certs from EAA and those certs are signed by EAA’s cert. And this will cause the producing application and consuming application on different edge cloud can’t communicate with each other because their certs are on different certificate chains. To solve this issue, the certs of EAAs should be signed by the same orchestrator. For example, ICN DCM (Distributed Cloud Manager) can take this role:
    https://wiki.onap.org/pages/viewpage.action?pageId=76875956
    And EAA should support mounting the certs when it will be deployed and not mount the certs during building docker image.