What's on this page

CI/CD Hub Software Overview

CI/CD Hub

The CI/CD Hub is a reference deployment of a best practice suite of Continuous Integration and Continuous Delivery (CI/CD) tools. These collectively providing an infrastructure for Assembly and Resource package and descriptor development, release and distribution management. It leverages common, open source, third party tools augmenting Stratoss™ Lifecycle Manager (LM) specific tools to enable an integration with one or more Stratoss LM instances as part of a holistic CI/CD environment. This spans multiple environments such as Dev, Preprod/staging and Production but it is not limited to these.

The integration of Stratoss LM with a CI/CD process does such as CI/CD Hub neither productises nor mandates the set of third party tools it deploys. Indeed the CI/CD Hub does not provide these tools, rather it simplifies there installation. The selection of these tools does not prohibit any or all of their functions being realised using a number of other commercial or open source tools. Nor does their inclusion constitute an endorsement.

Maintenance of the environment post installation falls outside the scope of the CI/CD Hub, excluding the set of Stratoss LM specific tools (e.g LMCTL)

At the core of CI/CD process for Stratoss LM are 6 components:

The CI/CD Hub realise these using the following;

Collectively, these constitute a CI/CD environment. With the exception of LMCTL which is developed and maintained by Accanto systems, the remainder are third part tools.

An additional requirement exists for Designers/developers to have local git which is installed on a Developers local machine. THis differs from the remainder which are all deployed in a CI/CD server. As such it falls outside the remit of the CI/CD Hub.

CI/CD Hub Overview

Administration & Installation

Prerequisites

The CI/CD Hub suite of tools are by default installed on a single server by the provided scripts. This should be provisioned with sufficient resources to fulfill the projected demand on the system. Of particular importance is the amount of storage

For the destination server, the server hosting the CI/CD Hub, the following system requirements exist

Additional dependencies may also exist. The readMe.md and install_instructions.md of you specific CI/CD Hub installer should be consulted for fuller details.

Components

The CI/CD Hub realised the core components with the following;

OpenLDAP –LDAP Authentication & Authorisation Server

An open source LDAP server. Each Stratoss LM instance needs to be configured with an LDAP server so that UI and API users can be authenticated and to identify the RBAC roles associated with that user. In an environment with multiple Stratoss LM deployments it is beneficial to have a single LDAP server where users are defined and their individual roles for each Stratoss LM environment are defined. This reduces the cost of administrating users.

GOGs – Source Version Control Server

A lightweight self hosting Git service, source code repository equivalent to GitHub. Within the CI/CD Hub it is used as a common managed repository CI/CD source repository for Assembly and Resource projects. Common, refers to the fact that it is not associated with any one Stratoss LM instance, rather it is the . It is important to understand that this is not a persistance layer for Stratoss LM itself. Gogs is intended as the source of truth for packages and descriptor that can be shared from this central location across all Stratoss LM instances.

Nexus – Artifact Repository

An open source repository manager. Nexus is used to store static artifacts such as images for Resources and where binary Assembly Packages packages are stored for use in other projects or deployment into production environments.

Jenkins – Build Automation Server

An open source Automation/build server that automates the CI/CD pipeline tasks. You will create jobs for NS and VNF project in jenkins.

LMCTL – Stratoss LM command line tools

A Stratoss LM specific tool used to integrate Stratoss LM with the CI/CD Hub. It is used to support both the movement of data both from the CI/CD Hub to Stratoss LM and vice a versa. Allowing the managed design and deployment of Assemblies, Resources to one of a number of registered Stratoss LMs.

Installation if the CI/CD Hub

How to obtain the CI/CD Hub

The CI/CD Hub is available on Github from where it can be downloaded. Once downloaded, it can be unbundled and run on a suitable environment.

Installation Instructions

The CI/CD Hub installation is achieved by following the instructions in Install Instructions within the CI/CD Hub download

You will need the url and admin credentials to log into each of the CI/CD Hub components:

Third-Party Tools

As can be seen, the CI/CD Hub deploys a number of third party tools to construct a CI/CD environment. Each of these tools are owned and published by third party companies with no commercial affiliation to Accanto Systems. Accanto system does not distribute, licence, warrant nor support these products.

Licencing

Each of the third party tools deployed with the CI/CD Hub installer is subject to its own licencing. The versions installed by the CI/CD Hub installer are all open source and subject to one or more of the following licenses at the time of writing;

Support

The CI/CD Hub does not productise these third party tools. Rather it simplifies there installation. The selection of these tools does not prohibit any or all of their functions being realised using a number of other commercial or open source tools. Nor does their inclusion constitute an endorsement.

Maintenance

Accanto Systems provides the CI/CD Hub installer to facilitate the a rapid and consistent deployment of a CI/CD environment. It should be noted that once installed the onus is on the hosting company to maintain the set of tools, keeping them patch current and secure.

Accanto Systems will, on a best effort basis maintain the CI/CD Hub on github and we encourage the wider community to contribute to the project to both maintain and evolve the set of deployment scripts.

Backup and restore of repository content

Gogs, Nexus and the OpenLDAP instance have persistent store. These should be backed up in accordance with the backup policy of your organisation. Each tool provides a mechanism for backing up their contents which is documented in the official documentation for the individual products. These should be consulted and incorporate into your restore procedures as appropriate. * GOGs * Nexus * Jenkins * OpenLDAP

Restore

As for backup, the restore procedure for individual products within the CI/CD Hub suite of tools is documented by each tools official documentation. These should be consulted and incorporate into your restore procedures as appropriate.