9.2. The Configuration Admin Bridge
Overview
The configuration admin bridge is responsible for bridging between the ZooKeeper registry and the OSGi Configuration Admin service. After the bridge connects to the ZooKeeper registry, it discovers what version is assigned to the container, retrieves the appropriate versions of the profiles assigned to the container, translates the profiles into configuration data, and applies the profile data to the container.
Information in a profile
Profiles can contain two distinct kinds of information:
- Configuration information—which includes:
- System configuration
- OSGi configuration
- Provisioning information—which includes lists of:
- Bundles
- Karaf features
- FABs
Actions performed
The configuration admin bridge reads all of the relevant profiles and creates an OSGi configuration to represent them. The provisioning and system information are then stored under the
io.fabric8.agent
PID (in the context of the OSGi Configuration Admin service, a PID is a named collection of property settings).
If an assigned profile belongs to a hierarchy (profile inheritance) or if multiple profiles are assigned to the container, the configuration admin bridge takes this into account, resolving any overlapping configuration settings to produce an overlay view of the profiles. There is only one
io.fabric8.agent
PID, even when there are multiple assigned profiles.
The output from the configuration admin bridge is just a set of key-value pairs stored under the
io.fabric8.agent
PID.
Configuration updates
The configuration admin bridge watches the Fabric registry for changes, so that any updates to the container's assigned profiles are tracked and immediately applied to the local container's OSGi configuration.