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.

../_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:

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.