What's on this page

CI/CD

Introduction

Pre-requisites The following links introduce terms used through out this section: Key Stratoss LM concepts introduce the Stratoss™ Lifecycle Manager (LM) programming model used to model VNFs and Network Services. Assembly and resource specifications give detailed descriptions of how to model lifecycles in Stratoss LM. Introduction Cloud DevOps best practices and principles are at the heart of the Stratoss LM solution. To scale any Cloud based networking program, a unified operations and engineering model is combined with a set of automation tools that can simplify and automate the complexities of an end-to-end VNF or Network Service lifecycle. »

Getting Started

Objective This section describes how to setup your own Stratoss™ Lifecycle Manager (LM) CICD process and tools using the CI/CD Hub. Pre-requisites You must have installed the CI/CD Hub software and attach one or more Stratoss LMs. A detailed description of the CI/CD Hub software can be found here. Stratoss LM CICD Process and Tasks Once the CI/CD Hub is up and running, perform the following tasks to configure it to the needs of your team. »

Configure the Hub

Objectives A newly installed CI/CD Hub will require some additional configuration to setup users and cross component integrations. Pre-requisites Newly installed CI/CD Hub See initial CI/CD Hub login details Add users to OpenLDAP To add users to the to the OpenLDAP installed with the CI/CD Hub. You can follow the instructions to add users to a standalone Stratoss™ Lifecycle Manager (LM). Slave Stratoss LMs can be configured at installation time to use the OpenLDAP instance deployed with the CI/CD Hub. »

Create New Project

Objectives Create a new VNF or Network Service project that will hold all of its descriptor, test and lifecycle script artifacts. Pre-requisites Access to a CI/CD Hub and a development environment with a Lifecycle Manager and VIM Design details of the new VNF or Network Service. VNFCs or VNFs it will contain (name and version) Software Images associated with each VNFC. (There may be multiple images for each target VIM type, e. »

Uploading Images

Objectives Manage versions of all VNF or test software images in a general repository. Making the images available in a formal manner to the CI/CD tools. Pre-requisites You are provided with the software images to upload on your local machine. Repository Structure The image directory structure in the CI/CD nexus general repository is as follows: . ├── raw └── vdus └── <vdu-name> ├── <image-name-version>.<type> ├── image-3.4.12.qcow2 ├── image-3. »

Create CI Pipeline

Objectives Create a continuous integration (CI) pipeline that will automatically build and test VNF or Network Service packages when changes are detected in Git projects. This CI pipeline will be triggered when there is a check-in to the master branch of the VNF or Network Service git project. Pre-requisites All VNF and Network Services packages the VNF or Network Service project under development depends on for both testing and when it is released. »

Create Release Pipeline

Objectives Create a release pipeline that will package a VNF or Network Service project into a binary package. Pre-requisites CI Pipeline has already been configured and tested. Introduction This pipeline will be triggered when there is a check-in to the master branch. It will: Checkout the project (tagged version) Check that all packages this project depends on in release have also been released (i.e. not SNAPSHOT versions) Check this version of the project has not already been released Rename the package in nexus (remove the SNAPSHOT) If the project is a NS, then deploy it’s package, and all the packages it depends on for release to the production LM. »

Developing a Package

Objectives Develop VNF or Network Service project artifacts that, when complete, will consititute a releasable package. Pre-requisites CI/CD Hub and a development environment with a dedicated Stratoss™ Lifecycle Manager (LM) and VIM A VNF or Network Service project already exists. Developing a VNF or Network Service Descriptor Push your project into dev environment (assume this is called ‘dev’ in the LMCONFIG file for LMCTL): $ cd <myvnf dir> $ lmctl project push dev Design the VNF or Network Service Descriptor »

Releasing a package

Objectives Release a VNF or Network Service package that has been confirmed ready for production use to a production environment Pre-requisites The VNF or Network Service package is available in the Nexus general repository and marked ready for production deployment. Introduction When a package has been developed and its been agreed that it has been fully tested by its stakeholders, it can be released. Releasing a VNF or Network Service package is done by triggering the Release pipeline job manually in Jenkins and giving the version of the package to deploy. »

Add Tests to Package

Objectives This section shows how to add VNF functional behaviour tests or Network Service performance and interoperability test artifacts to your project structure in the CI/CD Hub. Pre-requisites Development VIM and CI/CD Hub and Stratoss LM up and running LMCTL setup on your local machine with a profile configured for the above development environment VNF design documenting how test scenarios are expected to be run and the metrics and behaviour from all participating VNFs that constitute a successful test run. »