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 |
---|---|---|---|
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 |
---|---|---|
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
introduce config switch (see SDNC-742: SDNC cluster deployment: $SDNRWT not considered in helm templatesClosed)
define elastic service for dataprovider:
resources/config/conf/dataprovider.propertiesmount 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/
introduce config switch (see SDNC-742: SDNC cluster deployment: $SDNRWT not considered in helm templatesClosed)
introduce deployment.yaml for