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
Database configuration by SDNRDBURL, SDNRDBUSERNAME, SDNRDBPASSWORD.
SDNRWT | SDNRDM | SDNRINIT | Meaning |
---|---|---|---|
false | x | x | (Default setting of flags). SDNR deactivated, but normal SDNC startup for other features, like oofpci. |
true | x | x | devicemanager + internal WEB Server. SDNRDBURL, SDNRDBUSERNAME, SDNRDBPASSWORD |
true | true | x | devicemanager. SDNRDBURL, SDNRDBUSERNAME, SDNRDBPASSWORD |
true | x | true | init container function. SDNRDBURL, SDNRDBUSERNAME, SDNRDBPASSWORD |
all other combinations | SDNR error state. Container ends log contains error |
Initialization scripts
SDNC/OAM Container entrypoint: /opt/sdnc/bin/startODL.sh
The duplicated script should be removed from OOM. Issue for this is: - SDNC-1078Getting issue details... STATUS
Environment Variables and configuration files
The startup env parameters are used by properties of configuration files
env var | config file $ODL_HOME/etc/ | description | |
---|---|---|---|
$SDNRDBUSERNAME | dataprovider.properties | (optional) elasticsearch basicAuth Username | |
$SDNRDBPASSWORD | dataprovider.properties | (optional) elasticsearch basicAuth Password | |
$SDNRDBURL | dataprovider.properties | (mandatory) elasticsearch URL |
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
- introduce config switch (see - SDNC-742Getting issue details... STATUS )
- define elastic service for dataprovider:
resources/config/conf/dataprovider.properties - mount dataprovider.properties to sdnc container
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/