Table of Contents |
---|
...
Microservices of Openness Infrastructure mode | Description | Deployment method | Deployment of the component | Propose to integrate |
---|---|---|---|---|
eaa | application/service registration, authentication etc | deployment | edge node | yes |
edgedns | for client to access microservices in edge node | daemonset (propose to change to deployment) | edge node | yes |
interfaceservice | similar with providernet implemented in ovn4nfv-k8s-plugin | daemonset | edge node | no, will use ovn4nfv-k8s-plugin's provider network |
cnca | Core Network Configuration: Configure the access network (e.g., LTE/CUPS, 5G) control plane | deployment | controller | no |
syslog | log service for openness | daemonset | controller & edge node | no |
multus | enabling attaching multiple network interfaces to pods | daemonset | controller & edge node | Already covered by ONAP4K8s - KUD |
nfd | node feature discovery | daemonset | controller & edge node | Already covered by ONAP4K8s - KUD |
sriov | sriov network device plugin & sriov cni | daemonset | controller & edge node | Already covered by ONAP4K8s - KUD |
topology manager | kubernetes topology manager | Kubelet component | controller & edge node | Work in Progress to upgrade the K8s v16.0 integrate into ONAP4K8s - KUD |
CMK | CPU Manager | part of kubelet | controller & edge node | Work in Progress - Integrate into ONAP4K8s - KUD |
bios | Used for change BIOS and firmware configuration: CPU configuration, Cache and Memory configuration, PCIe Configuration, Power and Performance configuration, etc | privileged Pod | controller & edge node | Required for ICN? Already in ICN Metal3, could be enabled part of it |
fpga | Open 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 queues | pod | controller & edge node | Need to integrate into ONAP4K8s - KUD with FPGA device |
Openness
...
integration for Multus, SR-IOV CNI, SR-IOV Network Device Plugin, FPGA, Bios, Topology Manager, CMK, NFD
Microservice | Integration Detail | Components | Testing | Dependency | Request to openness team | Propose to integrate |
multus | Version 3.3 And then run the following command to kustomize the yml file and then apply. Command kustomize will add parameter: “--rename-conf-file=true” to the daemonset yml file like following: This parameter will add suffix “.old” to the original cni conf file. For example, “.old” is added to the kube-ovn conf file as below: [1]https://github.com/open-ness/openness-experience-kits/blob/master/roles/multus/files/kustomization.yml | multus running as daemonset | Not found | Nothing | Test cases are missing and need to ask where the test cases are. | No |
sriov cni | git clone https://github.com/intel/sriov-cni [1]https://github.com/intel/sriov-cni/blob/master/images/k8s-v1.16/sriov-cni-daemonset.yaml | sriov cni running as daemonset | Not found | SR-IOV enabled NIC | Test cases are missing and need to ask where the test cases are. | No |
sriov network device plugin | git clone https://github.com/intel/sriov-network-device-plugin if fpga_sriov_userspace.enabled: make image if fpga_sriov_userspace.enabled: kubectl create -f ./deployments/k8s-v1.16/sriovdp-daemonset.yaml[4] Provide ansible scripts to create VF and bind igb_uio driver. If FPGA is used, fpga_sriov_userspace.enabled should be set to true. Then FPGA_SRIOV_USERSPACE_DEV_PLUGIN.patch will be patched to sriov network device plugin. This patch enables sriov network device plugin to control fpga devices which are bounded to userspace driver. Fpga_configMap will be applied and this configmap will create resource intel_fec_5g and intel_fec_lte which is based on fpga device by specifying vendor_id, device_id and driver. [1]https://github.com/open-ness/edgecontroller/blob/master/fpga/FPGA_SRIOV_USERSPACE_DEV_PLUGIN.patch | sriov network device plugin running as daemonset | Not found | SR-IOV enabled device | Test cases are missing and need to ask where the test cases are. | Yes |
fpga | bbdev_config_service, n3000-1-3-5-beta-rte-setup.zip, n3000-1-3-5-beta-cfg-2x2x25g-setup.zip, flexran-dpdk-bbdev-v19-10.patch, FPGA image for 5GNR vRAN are not available and need to ask openness team. fpga_sriov_userspace.enabled should be set to true. On master node, build the kubectl plugin rsu (Remote System Update) and move the binary file to directory the /usr/bin/. This plugin will create kubernetes jobs and run OPAE in those jobs. OPAE(Open Programmable Acceleration Engine) enables programming of the FPGA and is used to program the FPGA factory image or the user image (5GN FEC vRAN). The plugin also allows for obtaining basic FPGA telemetry such as temperature, power usage and FPGA image information. On worker node, using n3000-1-3-5-beta-rte-setup.zip (can be used to install OPAE), n3000-1-3-5-beta-cfg-2x2x25g-setup.zip to build docker image ‘fpga-opae-pacn3000:1.0’. OPAE will be installed in this docker image. RSU will create a kubernetes job which uses image ‘fpga-opae-pacn3000:1.0’ as below: User FPGA images will be put in the directory /temp/vran_images/. To configure the VFs with the necessary number of queues for the vRAN workload the BBDEV configuration utility is to be run as a job within a privileged container. A sample pod requesting the FPGA (FEC) VF may look like this: [1]https://github.com/open-ness/edgecontroller/blob/master/fpga/fpga-sample-configmap.yaml | kubectl plugin rsu | Not found | Intel® FPGA Programmable Acceleration Card (Intel FPGA PAC) N3000, | 1. Test cases are missing and need to ask where the test cases are. 2.bbdev_config_service, n3000-1-3-5-beta-rte-setup.zip, n3000-1-3-5-beta-cfg-2x2x25g-setup.zip, flexran-dpdk-bbdev-v19-10.patch are not available. Need to request these packages. 3. FPGA image for 5GNR vRAN is not available. Need to request this image. 4.What’s the difference between flexran and vran | Yes |
bios | On master node, build the kubectl plugin biosfw and move the binary file to directory the /usr/bin/. This plugin will create a kubernetes job and run syscfg in that job. Intel® System Configuration Utility (Syscfg) is a command-line utility that can be used to save and restore BIOS and firmware settings to a file or to set and display individual settings. On worker node, using syscfg_package.zip to build docker image ‘openness-biosfw’. Syscfg will be upzipped in this docker image. The kubernetes job created by kubectl plugin biosfw will use this image ‘openness-biosfw’ as below: | Kubectl plugin biosfw | Not found | certain Intel® Server platforms | 1.Test cases are missing and need to ask where the test cases are. 2. Ask the server version, motherboard version, bios version for testing epa feature bios? | Yes |
topology manager | Configure kubelet on the worker node as below: apiVersion: kubelet.config.k8s.io/v1beta1 | Kubelet component | Not found | K8s 1.16 | Test cases are missing and need to ask where the test cases are. | No |
CMK | Download the following files: Copy following files to the same directory as cmk-namespace.yaml, cmk-serviceaccount.yaml, cmk-rbac-rules.yaml and cmk-cluster-init-pod.yaml: Run the following command: On each worker node, clone the project https://github.com/intel/CPU-Manager-for-Kubernetes and then checkout the commit e3df769521558cff7734c568ac5d3882d4f41af9. Using command ‘make’ to build the docker image. [1]https://raw.githubusercontent.com/intel/CPU-Manager-for-Kubernetes/e3df769521558cff7734c568ac5d3882d4f41af9/resources/authorization/cmk-namespace.yaml | Not found | Nothing | Test cases are missing and need to ask where the test cases are. | No | |
nfd | version: v0.4.0 Download the following files: Run the following command to kustomize the files (nfd-master.yaml and nfd-worker-daemonset.yaml): Apply below network policy to allow the communication between nfd-master and nfd-worker: [1]https://raw.githubusercontent.com/kubernetes-sigs/node-feature-discovery/v0.4.0/nfd-master.yaml.template | nfd-master running as daemonset on kubernetes master node nfd-worker running as daemonset | Not found | Nothing | Test cases are missing and need to ask where the test cases are. | No |
Openness dns config agent design
Openness extends kubectl command line to set edgedns (Described in 20318887 part). To integrate Openness with ICN, we will not use this but create a config agent to set edge dns. This config agent will monitor below CRD:
...