OpenShift Nexus: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 76: Line 76:
Nexus should be available at: https://nexus3-cicd.apps.openshift.novaordis.io
Nexus should be available at: https://nexus3-cicd.apps.openshift.novaordis.io


The new proxies installed into Browse -> Components: jboss, redhat-ga.
The new proxies installed into Browse -> Components: jboss, redhat-ga, maven-all-public, releases.


==Troubleshooting==
==Troubleshooting==

Revision as of 01:53, 26 November 2017

External

Internal

Overview

Nexus is a repository and artifact manager used by OpenShift to cache locally build dependencies, and those used by Maven in particular, close to builds. It is recommended to set up one per OpenShift cluster, to speed up Maven builds.

Installation

Method 1

Use the following template: https://github.com/NovaOrdis/playground/blob/master/openshift/auxiliary-tools/nexus.yaml

Copy it locally and then:

oc process -f nexus.yaml | oc create -f -

Method 2

oc new-app sonatype/nexus3:latest

This will set "app=nexus3" label on all objects created for this application (image stream, deployment config and service).

oc expose svc nexus3
oc rollout pause dc nexus3

Change the deployment mode from Rollout to Recreate:

oc patch dc nexus3 --patch='{ "spec": { "strategy": { "type": "Recreate" }}}'

Alternatively, oc edit can be used.

oc set resources dc nexus3 --limits=memory=2Gi --requests=memory=1Gi

Make sure an appropriate persistent volume is provisioned.

echo "apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nexus-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi" | oc create -f -
oc set volume dc/nexus3 \
  --add --overwrite --name=nexus3-volume-1 \
  --mount-path=/nexus-data/ --type persistentVolumeClaim \
  --claim-name=nexus-pvc

Set up liveness and readiness probes for Nexus:

oc set probe dc/nexus3 --liveness --failure-threshold 3 --initial-delay-seconds 120 -- echo ok
oc set probe dc/nexus3 --readiness --failure-threshold 3 --initial-delay-seconds 120 --get-url=http://:8081/repository/maven-public/

Resume deployment:

oc rollout resume dc nexus3

Wait for the pod to be brought on-line, connect as admin/admin123 and change the default password. The changes will be persisted in storage.

Set up Red Hat repositories with this script: https://github.com/NovaOrdis/playground/blob/master/openshift/auxiliary-tools/setup_nexus3.sh

./setup_nexus3.sh admin <admin-password> https://nexus3-cicd.apps.openshift.novaordis.io

Verification

Nexus should be available at: https://nexus3-cicd.apps.openshift.novaordis.io

The new proxies installed into Browse -> Components: jboss, redhat-ga, maven-all-public, releases.

Troubleshooting

Interaction with OpenShift

OpenShift image builders check for the environment variable MAVEN_MIRROR_URL, which should point to: