...
We have described the installation procedure prior to Casablanca, and we now turn to the procedure beginning in Casablanca. As we mentioned earlier, OpenDaylight is configured in Casablanca to install the CCSDK features upon booting up rather than afterwards in a bash script, and "component meta-features" are used rather than the individual features. OpenDaylight boots up much more quickly using this procedure. Features to install at boot time are configured in $ODL_HOME/etc/org.apache.karaf.features.cfg in two parameters: featuresRepositories and featuresBoot. We begin by looking in the Dockerfile for the starting point for the CCSDK container in ccsdk/distribution/odlsli/src/main/docker/Dockerfile Dockerfile for the FROM IMAGE of the CCSDK container (master branch, 8/25/2018): onap/ccsdk-odl-oxygen-image:*{project.version)."
%: head Dockerfile
# Base ubuntu with added packages needed for open ecomp
FROM onap/ccsdk-odl-oxygen-image:${project.version}
MAINTAINER CCSDK Team (onap-ccsdk@lists.onap.org)
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64
ENV ODL_HOME /opt/opendaylight
ENV SDNC_CONFIG_DIR /opt/onap/ccsdk/data/properties
ENV CCSDK_SLI_CORE_REPO mvn:org.onap.ccsdk.sli.core/ccsdk-sli-core-all/${ccsdk.sli.core.version}/xml/features
ENV CCSDK_SLI_ADAPTORS_REPO mvn:org.onap.ccsdk.sli.adaptors/ccsdk-sli-adaptors-all/${ccsdk.sli.adaptors.version}/xml/features
ENV CCSDK_SLI_NORTHBOUND_REPO mvn:org.onap.ccsdk.sli.northbound/ccsdk-sli-northbound-all/${ccsdk.sli.northbound.version}/xml/features
ENV CCSDK_SLI_PLUGINS_REPO mvn:org.onap.ccsdk.sli.plugins/ccsdk-sli-plugins-all/${ccsdk.sli.plugins.version}/xml/features
In "onap/ccsdk-odl-oxygen-image," the file $ODL_HOME/etc/org.apache.karaf.features.cfg sets these values for the two startup parameters:
- featuresRepositories = file:${karaf.home}/etc/290021b0-51f7-4e02-8efa-007cad16f73a.xml
- featuresBoot = 0af5d86a-980c-48a9-a02d-bdac71ff8529
...
These universally unique identifiers (UUIDs) are used to identify the startup features. featuresRepositories references the file $ODL_HOME/etc/290021b0-51f7-4e02-8efa-007cad16f73a.xml, shown here.
root@6cd44c751205:/opt/opendaylight/current/etc# cat $ODL_HOME/etc/290021b0-51f7-4e02-8efa-007cad16f73a.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="290021b0-51f7-4e02-8efa-007cad16f73a">
<repository>mvn:org.apache.karaf.features/framework/4.1.5/xml/features</repository>
<repository>mvn:org.opendaylight.integration/features-index/0.8.1/xml/features</repository>
<repository>mvn:org.apache.karaf.features/standard/4.1.5/xml/features</repository>
<feature name="0af5d86a-980c-48a9-a02d-bdac71ff8529" version="0.0.0">
<feature prerequisite="false" dependency="false">framework</feature>
<feature prerequisite="false" dependency="false">standard</feature>
<feature prerequisite="false" dependency="false">ssh</feature>
<bundle>mvn:org.apache.aries.quiesce/org.apache.aries.quiesce.api/1.0.0</bundle>
<bundle>mvn:org.osgi/org.osgi.service.event/1.3.1</bundle>
<bundle>mvn:org.bouncycastle/bcprov-jdk15on/1.59</bundle>
<bundle>mvn:org.bouncycastle/bcpkix-jdk15on/1.59</bundle>
<bundle>mvn:org.bouncycastle/bcprov-ext-jdk15on/1.59</bundle>
<bundle>mvn:org.apache.felix/org.apache.felix.metatype/1.1.6</bundle>
<bundle>mvn:org.opendaylight.odlparent/karaf.branding/3.1.0</bundle>
</feature>
</features>
The And the featuresBoot value of 0af5d86a-980c-48a9-a02d-bdac71ff8529 references the name of the feature in the xml file and pulls in all of the features and bundles included in that file. After logging into a running docker container of the ODL oxygen image, we see that these relatively few features are installed.
No Format |
---|
opendaylight-user@root>feature:list -i
Name | Version | Required | State | Repository | Description
-------------------------------------+---------+----------+---------+--------------------------------------+--------------------------------------------------
aries-proxy | 4.1.5 | | Started | standard-4.1.5 | Aries Proxy
aries-blueprint | 4.1.5 | | Started | standard-4.1.5 | Aries Blueprint
feature | 4.1.5 | | Started | standard-4.1.5 | Features Support
shell | 4.1.5 | | Started | standard-4.1.5 | Karaf Shell
shell-compat | 4.1.5 | | Started | standard-4.1.5 | Karaf Shell Compatibility
deployer | 4.1.5 | | Started | standard-4.1.5 | Karaf Deployer
bundle | 4.1.5 | | Started | standard-4.1.5 | Provide Bundle support
config | 4.1.5 | | Started | standard-4.1.5 | Provide OSGi ConfigAdmin support
diagnostic | 4.1.5 | | Started | standard-4.1.5 | Provide Diagnostic support
instance | 4.1.5 | | Started | standard-4.1.5 | Provide Instance support
jaas | 4.1.5 | | Started | standard-4.1.5 | Provide JAAS support
log | 4.1.5 | | Started | standard-4.1.5 | Provide Log support
package | 4.1.5 | | Started | standard-4.1.5 | Package commands and mbeans
service | 4.1.5 | | Started | standard-4.1.5 | Provide Service support
system | 4.1.5 | | Started | standard-4.1.5 | Provide System support
kar | 4.1.5 | | Started | standard-4.1.5 | Provide KAR (KARaf archive) support
ssh | 4.1.5 | | Started | standard-4.1.5 | Provide a SSHd server on Karaf
management | 4.1.5 | | Started | standard-4.1.5 | Provide a JMX MBeanServer and a set of MBeans in
wrap | 0.0.0 | | Started | standard-4.1.5 | Wrap URL handler
standard | 4.1.5 | | Started | standard-4.1.5 | Wrap feature describing all features part of a st
0af5d86a-980c-48a9-a02d-bdac71ff8529 | 0.0.0 | x | Started | 290021b0-51f7-4e02-8efa-007cad16f73a |
|
This is the starting point for the CCSDK image. Recall that the Dockerfile for the CCSDK image contains these commands:
No Format |
---|
RUN cat $ODL_HOME/etc/org.apache.karaf.features.cfg.orig | sed -e "\|featuresRepositories|s|$|, ${CCSDK_SLI_CORE_REPO}, ${CCSDK_SLI_ADAPTORS_REPO}, ${CCSDK_SLI_NORTHBOUND_REPO}, ${CCSDK_SLI_PLUGINS_REPO}|" > $ODL_HOME/etc/org.apache.karaf.features.cfg
RUN echo featuresBoot=config,standard,region,package,kar,ssh,management,odl-restconf-all,odl-mdsal-all,odl-mdsal-apidocs,odl-daexim-all,ccsdk-sli-core-all,ccsdk-sli-adaptors-all,ccsdk-sli-northbound-all,ccsdk-sli-plugins-all >> $ODL_HOME/etc/org.apache.karaf.features.cfg |
These commands append new repositories to featuresRepositories