CI/CD Hub functionality

The CI/CD Hub (HUB) is a collection of open source tools set up to perform example continuous integration and deployment processes with the IBM® Telco Network Cloud Manager - Orchestration.

The HUB provides a way to manage the artifacts used by the IBM Telco Network Cloud Manager - Orchestration through a development and production cycle. These include:
Gogs git server
A repository to manage the files used by the IBM Telco Network Cloud Manager - Orchestration
Nexus repository
A repository for managing the built artifacts produced by the process. This includes a docker registry, a python registry, and a raw repository for storing archives, including a package of the IBM Telco Network Cloud Manager - Orchestration All-in-one single server instance of the IBM Telco Network Cloud Manager - Orchestration.
Jenkins server
A platform to perform automated tasks such as running tests, packaging built objects.
IBM Telco Network Cloud Manager - Orchestration
An instance of the IBM Telco Network Cloud Manager - Orchestration to be used by the Jenkins server

Why the hub?

When working with customers venturing into the NFV market, there is a need to explain how the artifacts of such deployments are developed, tested, released. These processes are well understood in development but are not common within the networking world, where up til now the components of delivery have been physical pieces of equipment and their configurations. With the introduction of NFV the main components are software and therefore the best practices for managing software need to be used. The HUB is a reference implementation of such a set of tools and this document will explain an example process that may be used by those managing the NFV environment.

Using the hub

To develop a working Network Service the following actors might exist:
VNF Engineer
The VNG engineer wraps the VNFC software into a working VNF that can then be used in multiple services. They may reuse the VNFC across multiple VNF should the underlying software offer multiple usages.
Service Designer
The service designer takes a number of VNF and designs a working Network Service for a particular situation. In reality a network service is likely to be made up of several linked Network Services that work in concert to provide an Customer solution.
Test Engineer
The test engineer is responsible for testing the Network Service in both Test and Pre-production environments. In reality once the tests have been built by a combination of the Service Designer and the Test Engineer the actual testing will be fully automated by the Hub
Release Manager
Upon successfully passing the testing the Release Manager is responsible for approving the use of the tested Network Service and its components within the production environment. This will include the creation of production release packages that can be referenced and deployed into the production environment.
The following diagram shows a set of typical use cases:
Typical users

Above the line are the use cases that may utilize the HUB for storage of files and artifacts, but the work is expected to take place on a development environment that is regarded as not part of the HUB. Below the line it is expected that the use cases would be implemented on the HUB and of course the HUB offers both a repository for the file base artifacts of the VNFC, VNF and the NS, but also the packaged versions of those artifacts.

CI/CD Hub hardware requirements

Table 1. CI/CD Hub hardware requirements
Requirement Setting
Operating system Ubuntu 16.04 (or later)
CPU 8 cores
Memory 32 GB of RAM
Disk space 2 TB