Nexus installation guide

Nexus has pre-built docker images for cloud deployment. To make the deployment easier we created helm chart for nexus. Follow this guide to setup nexus on the local or production using helm

Background

Helm charts are maintained by Nexus Platform team and uses semantic versioning(SemVer2) release strategy for charts

Prerequisite for installation

  1. Access to public internet

  2. Helm 3+

  3. Kubernetes 1.17+

  4. MongoDB 4.4+ (Follow this guide for the installation of mongodb)

Nexus chart repository will be accessible to public. So, Make sure you have access to the below link

Helm version check

λ helm version
version.BuildInfo{Version:"v3.0.2", GitCommit:"19e47ee3283ae98139d98460de796c1be1e3975f", GitTreeState:"clean", GoVersion:"go1.13.5"}

Kubernetes version check

λ kubectl version
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.5", GitCommit:"20c265fef0741dd71a66480e35bd69f18351daea", GitTreeState:"clean", BuildDate:"2019-10-15T19:16:51Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.7", GitCommit:"4683545293d792934a7a7e12f2cc47d20b2dd01b", GitTreeState:"clean", BuildDate:"2019-06-06T01:39:30Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

Import nexus chart repository

λ helm repo add gaeaglobal https://nexusplatform.blob.core.windows.net/helm
"gaeaglobal" has been added to your repositories

Once chart repository has been added. Try searching for nexus chart to ensure you have access to nexus chart

λ helm search repo nexus
NAME                    CHART VERSION   APP VERSION     DESCRIPTION
gaeaglobal/nexus        0.8.1           0.8.1-alpha.3   The nexus platform for automation

Nexus installation

Now, you have access to nexus chart and its ready for deployment. Refer this guide for extensive configuration of nexus deployment. But, For now lets see the simplest deployment (Not for production use). For production, make sure scale up the service as per the requirement

Database URL is mandatory for any nexus deployment. You can use the values.yaml or use CLI to set these value. As a best practice let's use CLI to set sensitive data to kubernetes cluster.

Contact nexus support to get nexus docker registry and credentials to access the docker images

Create imagePullSecret

Default secret name is acr-secret. Set imagePullSecrets value as new secret name when installing helm chart in case of any change in secret name

λ kubectl create secret docker-registry acr-secret --namespace <namespace> --docker-server=gaeaglobal.azurecr.io --docker-username="<USERNAME>" --docker-password="<PASSWORD>"

Create helm release

λ helm install dev gaeaglobal/nexus --namespace=nx-dev --set databaseURL="<MONGODB_FULL_URI>" --values .\values.yaml

Sample values.yaml

web:
  dnsName: https://abc.nexus-platform.com

api:
  imagePullPolicy: Always

integrationEngine:
  imagePullPolicy: Always
  replicaCount: 1

extmgr:
  imagePullPolicy: Always

notification:
  version: 0.8.0-alpha.1

scheduler:
  version: 0.8.0-alpha.7

storage:
  version: 0.7.8-alpha.1

Name of the release is dev. Make sure you update the name before running the command

Kubernetes pod

Verify the deployment after the helm install command.

λ kubectl get pod --namespace nx-dev
NAME                               READY   STATUS    RESTARTS   AGE
nexus-api-dev-0                    1/1     Running   0          2s
nexus-extension-mgr-dev-0          1/1     Running   0          3s
nexus-integration-engine-dev-0     1/1     Running   0          3s
nexus-integration-engine-dev-1     1/1     Running   0          3s
nexus-integration-engine-dev-2     1/1     Running   0          4s
nexus-notification-dev-0           1/1     Running   0          1m
nexus-redis-dev-577664fc4c-rhdfm   1/1     Running   0          7s
nexus-scheduler-dev-0              1/1     Running   0          1s
nexus-storage-dev-0                1/1     Running   0          7s
nexus-web-dev-0                    1/1     Running   0          2s

Last updated

Was this helpful?