Radio Edge Cloud uses a large number of Open Source components. This wiki will provide some "glue" documentation as well as hyperlinks to specific component documentation elsewhere. This page is not an exhaustive list of components, but serves as a location to incrementally accumulate developer wisdom on "good to know" stuff about the various components.
Style Guide Note
Certain class names must be all lowercase (as opposed to following PEP8 recommendation of CamelCase) due to an assumption in the framework that builds method names dynamically with the assumption of all lowercase class names as a part of the method name. Refer to https://gerrit.akraino.org/r/gitweb?p=ta/config-manager.git;a=blob;f=cmdatahandlers/src/cmdatahandlers/api/configmanager.py;h=e4aa72d470c8359288e34b50f35ba168e4b03c93;hb=HEAD#l99 for the code where the domain handler function names are built based on the handlers located in https://gerrit.akraino.org/r/gitweb?p=ta/config-manager.git;a=tree;f=cmdatahandlers/src/cmdatahandlers;hb=HEAD which results in the method names having to match the case of the directory names.
CPU Pooler for Kubernetes is a solution for Kubernetes to manage predefined CPU pools in Kubernetes nodes. The README provides additional detail and examples.
In order to provide multiple network interfaces per Kubernetes pod as well as to support a variety of different network interface types, REC uses DANM. The DANM README provides extensive documentation on this component. There are examples of YAML files including how to provide pods with SR-IOV interfaces and how to create danmnets. The two main concepts within DANM are the networks (called danmnets) and the endpoints (called danmeps) which allow Kubernetes tenants to describe network topologies in greater detail and variety that typically supported by Kubernetes.
The code for Radio Edge Cloud is primarily derived from the Telco Appliance Blueprint Family and is stored in Gerrit under the "ta" prefix. As with most Linux Foundation projects TA and REC follow the typical usage patterns of the Gerrit code review tool for cloning repos and pushing changes with the "git review" command. The information below provides a detailed overview of the structure of the repositories. The function of the Continuous Integration (CI) system (the LF's Jenkins server) is to use the contents of these repos along with a large amount of upstream binaries (including CentOS, Kubernetes, Docker, Ansible, Disk Image Builder, and others) to build an ISO image of Radio Edge Cloud which will be deployed by Continuous Deployment systems to install and test on bare metal test systems. After successful testing, the exact same ISO can be used to deploy a fully tested and fully reproducible image onto production servers. Much of the code in the repos relates to how to build and configure all the intermediate building blocks.
It is possible to build ISO images on a simple Centos VM (with only 8GB memory) and it should work easily. Please report problems on the mailing list https://lists.akraino.org/g/blueprints/topics with tag #rec