Installation

This document describes local installation for development purpose It also describes some keypoints for understanding NBI in OOM context

Build

Requirements

  • Java 11

  • Maven

  • free port 8080, used by tests

Build:

mvn clean package

Alternative 1 run SpringBoot application

Requirements

  • Java 11

  • Maven

  • MongoDB

  • MariaDB

Review and edit src/main/resources/application.properties

Defaults

Mongo, host=localhost, port=27017, database=ServiceOrderDB

Mariadb, url=jdbc:mariadb://localhost:3306/nbi, username=root, password=secret

Run:

mvn spring-boot:run

Alternative 2 run docker

Requirements

  • Docker

  • Docker-compose

  • Free ports 8080

Edit docker-compose.yml to select previous generated local build, replace:

image: ${NEXUS_DOCKER_REPO}/onap/externalapi/nbi:latest

by:

build: .

Run:

docker-compose up -d mongo mariadb

docker-compose up --build -d nbi

Logs:

docker-compose logs -f nbi

Local tests

Status is available at http://localhost:8080/nbi/api/v4/status

Running a standalone test:

curl "http://localhost:8080/nbi/api/v4/status"

You should get:

{
    "name": "nbi",
    "status": "ok",
    "version": "v4"
}

OOM Context

Healthcheck

Running a standalone test:

curl "https://nbi.api.simpledemo.onap.org:30274/nbi/api/v4/status"

{
    "name": "nbi",
    "status": "ok",
    "version": "v4"
}

Running an integration test with SO, SDC, DMAAP, AAI:

curl "https://nbi.api.simpledemo.onap.org:30274/nbi/api/v4/status?fullStatus=true"

{
    "name": "nbi",
    "status": "ok",
    "version": "v4",
    "components": [
        {
            "name": "so connectivity",
            "status": "ok"
        },
        {
            "name": "sdc connectivity",
            "status": "ok"
        },
        {
            "name": "dmaap connectivity",
            "status": "ok"
        },
        {
            "name": "aai connectivity",
            "status": "ok"
        }
    ]
}

Understanding OOM deployment

NBI uses AAF init container to generate valid server certificate, signed by ONAP Root CA. This server certificate is used for TLS over HTTP.

Passing specific JAVA_OPTS to NBI SpringBoot java app will enable HTTPS.

Here are some OOM related files which could help to understand how HTTPS is set up.

Search for JAVA_OPTS in https://github.com/onap/oom/blob/master/kubernetes/nbi/templates/deployment.yaml

AAF values https://github.com/onap/oom/blob/master/kubernetes/nbi/values.yaml

AAF init container https://github.com/onap/oom/blob/master/kubernetes/nbi/templates/configmap-aaf-add-config.yaml