Kubernetes Pods Services and Options

Overview

Main components are

  • sdnc-dm = sdnc image in sdnrwt=true configuration

  • sdnc-web = sdnc-web image

  • sdnc-db = elasticsearch and nginx images

Details: Disaggregated Architecture

Pod and service structure

Deployment Options

Deployment options are configured within values.yaml via booleans.

  • SDNRWT: devicemanager + internal WEB Server

  • SDNRDM: devicemanager relateded bundles, but not web related

  • SDNRINIT: Only database initialization than terminating. See: SDN-R Data Migration Tool

  • SDNRONLY: Do only start SDN-R related bundles, remove all other bundles from featureboot list.

Database configuration by SDNRDBURL, SDNRDBUSERNAME, SDNRDBPASSWORD.

SDNRWT

SDNRDM

SDNRINIT

Meaning

SDNRWT

SDNRDM

SDNRINIT

Meaning

false

x

x

(Default setting of flags). SDNR deactivated, but normal SDNC startup for other features, like oofpci.

true

false

false

devicemanager + internal WEB Server. SDNRDBURL, SDNRDBUSERNAME, SDNRDBPASSWORD

true

true

false

devicemanager. SDNRDBURL, SDNRDBUSERNAME, SDNRDBPASSWORD

false

x

true

init container function. SDNRDBURL, SDNRDBUSERNAME, SDNRDBPASSWORD. Exit after configuration is done.

true

true|false

true

execute init function and start ODL according to description 

x: do not care

Initialization scripts

SDNC/OAM Container entrypoint: /opt/sdnc/bin/startODL.sh

The duplicated script should be removed from OOM. Issue for this is: SDNC-1078: Remove duplicated startODL.sh script from oom/sdnc helm setupClosed

Environment Variables and configuration files

The startup env parameters are used by properties of configuration files

env var

config file $ODL_HOME/etc/

 description

env var

config file $ODL_HOME/etc/

 description

SDNRDBURL

dataprovider.properties

(mandatory) elasticsearch URL

SDNRDBUSERNAME

dataprovider.properties

(optional) elasticsearch basicAuth Username

SDNRDBPASSWORD

dataprovider.properties

(optional) elasticsearch basicAuth Password

Database Initialization



ElasticSearch database needs to be initialized by a script.

bin/es-init.sh

OOM enhancement: define kubernetes Job to execute e-init.sh

Development steps

Enhancement/integration of oom/sdnc follows from left (low complexity) to right (highest complexity)

Step 1:  SDNRDM enabled

Step 2:  Disaggregated sdnc-web cluster

  • add new service 'sdnc-web' into sdnc/templates/statefulset.yaml
    add new sdnc-web image?
    no persistent volumes are required

Step 3: provide local elastic DB cluster



Changes in OOM:

/kubernetes/sdnc/