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
Access to public internet
Helm 3+
Kubernetes 1.17+
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
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?