What's on this page

CI/CD Hub

Getting Started

This section details how to install the CI/CD Hub using Helm on an existing Kubernetes cluster. This will install the following services: Gogs: Lightweight self-hosted Git service Nexus: Artifact repository manager Jenkins: Automation server to enable continuous integration and continuous delivery Openldap: Open-source implementation of the Lightweight Directory Access Protocol, for user management of Telco Network Cloud Orchestration (TNC-O) environments Docker Registry: Registry for hosting docker images Nginx Ingress: Ingress controller to support accessing some services with Ingress Pre-requisites Kubernetes A Kubernetes cluster is required to install the Hub. »

Offline

The following guide explains how to pre-prepare the artifacts required by the CI/CD Hub during installation so you may complete installation at a later date without internet access. Preparing Offline Install Helm Charts Pre-download the CI/CD Hub Helm chart from the releases page on GitHub. Docker Images Create a workspace mkdir cicdhub-docker-images Identify requires images Below is a full list of the docker images used by the sub-charts in v2.0.5 of the CI/CD Hub helm chart: »

Sizing

CPU and Memory The CPU and memory limits of each service may be configured by adding resource requests and limit values to the custom values file. See Kubernetes - Manage Compute Resources Container for more information. The default values for each service are shown below. Override any defaults by adding them to your custom values. Blank fields represent deployments without a default value, which will result in no limits being imposed on their usage. »

Storage

Storage Class By default, any service requiring persistence is configured to use the default provisioner of your Kubernetes cluster. You can check your default with kubectl: kubectl get storageclass The default storage class will be shown with (default) alongside it’s name. If you have no default, you can mark an existing class as the default with: kubectl patch storageclass <your-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' Alternatively, you may explicitly set the storage class for each service by adding storageClass fields in your custom values: »

Access Configuration

Hostnames and Ports By default, the CI/CD Hub services are configured for access as described below: Service Type Address nexus NodePort <your-cicdhub-host>:32739 gogs NodePort & Ingress <your-cicdhub-host>:32734 OR git.cicdhub:<nginx-ingress-port> jenkins NodePort & Ingress <your-cicdhub-host>:32732 OR jenkins.cicdhub:<nginx-ingress-port> openldap NodePort <your-cicdhub-host>:32737, SSL: https://<your-cicdhub-host>:32738 docker registry NodePort <your-cicdhub-host>:32736 nginx-ingress NodePort <your-cicdhub-host>:32080, SSL: https://<your-cicdhub-host>:32443 All ports and Ingress hosts listed above are configurable through the Helm chart. »

Security

Access Credentials Many of the CI/CD Hub services have default usernames and passwords that may only be changed after installation. However, a few allow a value to be provided through the custom values. The default values for each service are shown below. Override any defaults by adding them to your custom values. global: ## Note that the Openldap password is set through a global variable ldap: managerPassword: admin domain: lm.com gogs: postgresql: postgresUser: admin postgresPassword: admin jenkins: master: adminUser: admin adminPassword: admin Default credentials for any service not shown here will be detailed later in the installation. »

Install

This section assumes you have followed the configuration steps and now have: a CI/CD Hub Helm chart a custom values YAML file Installing with Helm Install CI/CD Hub with the helm install command: Standard: helm install <cicdhub-helm-chart> --name <your-release-name> --namespace <your-namespace> -f <your-custom-values-file> ICP: helm install <cicdhub-helm-chart> --name <your-release-name> --namespace <your-namespace> -f <your-custom-values-file> --tls cicdhub-helm-chart - path to the CI/CD Hub Helm chart your-release-name - unique name used to identify this installation in Helm your-namespace - Kubernetes namespace to install into (leave out to use default) your-custom-values-file - path to the YAML file created with any configuration overrides (if you have any) For example: »