CI/CD Hub Software Overview
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:
- Source Version Control Server
- Artifact Repository
- Build Automation Server
- LDAP Authentication & Authorisation Server
- Stratoss LM command line tools
- A local, designer/developer git repository
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.
Administration & Installation
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
A suitable Ubuntu Linux server on which to install the CI/CD Hub
- Min 2TB disk space ( Actual amount will be a function of the data that will be stored in in GOGs and Nexus)
- Min 12GB RAM (a test install will work with as little as 4GB but it will not support many users)
- Min 4 cores
- Ubuntu 16.0.4 or later is currently the only supported OS
Computer from which an install of the CI/CD Hub is being performed (the host machine)
- No specific hardware requirement are identified. It is only used during the install and any reasonably spec
- sshpass (conditional)
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.
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.
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:
- Git Server (Gogs)
- artifact Repo (Nexus)
- CI Server (jenkins)
- Dev Env (Stratoss LM and VIM)
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.
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;
- GNU General Public License version 2.0
- Apache License Version 2.0,
- MIT License
- sonotype oss licence
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.
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
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.