SD-Fabric Helm chart

Prerequisites

There are several preparation work that need to be done before deploying SD-Fabric.

  1. All switches have been provisioned with Docker and Kubernetes
  2. All switches have been configured as special Kubernetes nodes
  3. Prepare ONOS network config
  4. Prepare Stratum chassis config for each switch

Please refer to step 1 to 4 in SD-Fabric deployment guide for prerequisites, and come back here for the rest of the installation instructions.

Installation

Here are steps to deploy the sdfabric helm chart:

  1. Clone SD-Fabric Helm chart

    git clone ssh://gerrit.opencord.org:29418/sdfabric-helm-charts
    cd sdfabric-helm-charts/sdfabric
    
  2. Update Helm dependencies

    helm dep update
    
  3. Prepare your Helm value

    You can modify existing values.yaml directly, but we recommend composing another value file myvalues.yaml using values.yaml as an example.

    We are highlighting a few things we need to modify here. More explanation of the supported Helm values can be found in the Configuration section below.

    • Stratum nodeSelector and tolerations

      This has to be consistent with the information in prerequisite step 2. Here's an example:

      stratum:
          nodeSelector:
              node-role.kubernetes.io: switch
      
          tolerations:
              - effect: NoSchedule
                  value: switch
                  key: node-role.kubernetes.io
      
    • SD-Fabric image access credential

      This has to be consistent with the information in prerequisite step 3.

      image:
          credential:
              username: my_username
              password: my_access_token
      
    • ONOS network config

      This has to be consistent with the information in prerequisite step 4.

      onos-classic:
          config:
              netcfg: >
                  {
                  "devices": {
                      "device:leaf1": {
                          "segmentrouting": {
                              "ipv4NodeSid": 101,
                              "ipv4Loopback": "10.11.22.33",
                              "routerMac": "aa:bb:cc:dd:ee:ff",
                              "pairDeviceId" : "device:leaf2",
                              "pairLocalPort" : 260,
                              "isEdgeRouter": true,
                              "adjacencySids": []
                          }
                      }
                  }
              }
      
  4. Verify custom values

    helm template -f myvaules.yaml .
    
  5. Supply Stratum chassis config

    Please refer to Provide Chassis Config. This has to be consistent with the information in prerequisite step 5.

  6. Install SD-Fabric helm chart

    The following command will deploy the SD-Fabric helm chart with release name sdfabric in the sdfabric namesapce.

    helm install -n sdfabric --create-namespace -f myvaules.yaml sdfabric .
    

    To verify the installation:

    helm -n sdfabric ls
    

    To uninstall:

    helm -n sdfabric uninstall sdfabric
    kubectl delete namespace sdfabric # also remove the sdfabric if needed
    

Configuration

NameDescription
import.pfcp-agent.enabledEnable PFCP agent
import.dbuf.enabledEnable DBuf
image.credential.secretNameName for the Kubernetes secret to store the credential
image.credential.registryThe container registry
image.credential.usernameThe username to login the container registry
image.credential.passwordThe password to login the container registry
onos-classicSee https://github.com/onosproject/onos-helm-charts/tree/master/onos-classic
stratumSee https://github.com/stratum/stratum-helm-charts/tree/master/stratum
pfcp-agentSee values.yaml file of the PFCP agent chart
dbufSee values.yaml file of the DBuf chart
di-topology-watchdogSee values.yaml file of the chart
di-metrics-exporterSee values.yaml file of the chart