blob: 4e29946693211ca36d9747d931322d18095c0f56 [file] [log] [blame]
.. SPDX-FileCopyrightText: 2021 Open Networking Foundation <info@opennetworking.org>
.. SPDX-License-Identifier: Apache-2.0
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.