First pass up to configuration
Change-Id: Ifd82c38aa18d5216c5772a64d9d77046def005fe
diff --git a/configuration/config-loader.rst b/configuration/config-loader.rst
new file mode 100644
index 0000000..51d8fbd
--- /dev/null
+++ b/configuration/config-loader.rst
@@ -0,0 +1,66 @@
+ONOS Configuration Loader
+=========================
+
+Config loader is a Kubernetes pod installed by the SD-Fabric Helm
+chart which implements a reconciliation loop to update the ONOS network
+configuration and component configuration.
+
+Config loader will periodically read the running configurations from ONOS and eventually
+push updates to ONOS if the running state isn't same as the desired state.
+
+.. image:: ../images/config-loader.svg
+
+.. note::
+ We recommend using the Helm values below to update the ONOS configuration instead
+ of manually changing it via ONOS REST APIs or CLI, otherwise, manual changes
+ will be overridden by config loader. If you need to apply config changes
+ during debugging or testing we recommend disabling the reconciliation loop
+ (``reconcile_mode: false``).
+
+Below is a reference of the available configuration parameters and their default values:
+
+.. code-block::
+
+ onos:
+ config:
+ reconcile_mode: true
+ reconcile_interval: 30s
+ image:
+ registry: ""
+ repository: opencord/onos-classic-helm-utils
+ tag: 0.1.0
+ pullPolicy: "IfNotPresent"
+ service_account_name: onos-config-loader
+ # NOTE these values won't change the credentials inside ONOS, they
+ # are only used by config loader for authenticating REST API calls.
+ username: karaf
+ password: karaf
+ netcfg: >
+ # {
+ # "devices" : {
+ # "device:leaf1" : {
+ # ...
+ # }
+ componentConfig:
+ # "org.onosproject.provider.lldp.impl.LldpLinkProvider": >
+ # {
+ # "enabled": "false"
+ # }
+
+
+* ``reconcile_mode``: If disable, config loader will only update the configuration once. Useful for debugging/testing.
+* ``reconcile_interval``: The interval in seconds between reconciliation checks.
+* ``image``: to pull the container image of the config loader.
+ Use the default values unless you have special requirements.
+
+ * ``registry``: If empty, the config loader image will be downloaded from Docker Hub.
+ * ``repository``: The repository of config push.
+ * ``tag``: The image tag of config loader.
+ * ``pullPolicy``: How Kubernetes pulls the image, available options are `Never, Always, IfNotPresent`.
+
+* ``service_account_name``: Name of the Kubernetes Service Account used by the config loader pods to read
+ information from Kubernetes.
+* ``username``: Username used in ONOS REST API calls.
+* ``password``: Password used in ONOS REST API calls.
+* ``netcfg``: ONOS network configuration as JSON blob.
+* ``componentConfig``: A map of ONOS component IDs and corresponding list of configurations as a JSON map.