Here are steps to download the sdfabric helm chart:
Clone SD-Fabric Helm chart
cd $HOME/ git clone ssh://gerrit.opencord.org:29418/sdfabric-helm-charts cd $HOME/sdfabric-helm-charts/sdfabric
Update Helm dependencies
helm dep update
This section allows you to deploy a fully virtual system with Kind, Mininet and ONOS on you devlopment machine. The topology is a custom 2x2 leaf spine topology, defined in mininet in the topo-leafspine.py and described in ONOS in the dev-values.yaml
netcfg
section.
Note This section is based on docker and kind, please ensure to have both installed in your environment. Also ensure to give enough resources to your docker env. A suggestion is 16GB of ram, 12 cores, 2 GB of swap.
Download the mininet helm charts
cd cd $HOME/ git clone https://gerrit.opencord.org/helm-charts cd $HOME/helm-charts/mininet
Update Helm dependencies
helm dep update
Deploy a kind cluster
cd $HOME/sdfabric-helm-charts/sdfabric kind create cluster --config $HOME/sdfabric-helm-charts/configs/3-node-cfg.yaml kubectl taint nodes --all node-role.kubernetes.io/master-
Deploy Mininet
cd $HOME/helm-charts/mininet helm install -n sdfabric --create-namespace -f sdfabric-values.yaml mininet .
Deploy Sd-Fabric
cd $HOME/sdfabric-helm-charts/sdfabric helm install -n sdfabric --create-namespace -f dev-values.yaml sdfabric .
Verify the installation
helm -n sdfabric ls
Uninstall
helm -n sdfabric delete sdfabric helm -n sdfabric delete mininet
Attach to Mininet
kubectl attach -it -n sdfabric <mininet pod name>
Example of pod name: mininet-578d9575d4-xdtb2
SSH into ONOS Pick the instance you prefer (if you deployed more than 1)
kubectl -n sdfabric exec -it sdfabric-onos-classic-0 -- bash /root/onos/apache-karaf-4.2.14/bin/client kubectl -n sdfabric exec -it sdfabric-onos-classic-1 -- bash /root/onos/apache-karaf-4.2.14/bin/client kubectl -n sdfabric exec -it sdfabric-onos-classic-2 -- bash /root/onos/apache-karaf-4.2.14/bin/client
If you'd like to modify the number of ONOS instances and Atomix (1 and 1 by default), you can do so by changing the parameters in the dev-values.yaml
file.
onos-classic.atomix.replicas
for Atomix.
onos-classic.replicas
for ONOS.
If you want to change the topology entirely:
topo.py
file in the mininet
helm chartsd-fabric-values.yaml
file under topoScript
.netcfg
for ONOS based on the new topo.py
fileonos-classic.netcfg
in netcfg-leafspine.yaml
in the sdfabric helm chart.There are several preparation work that need to be done before deploying SD-Fabric.
These steps assume you have already deployed a three node kubernetes cluster and have management connectivity to a fully sd-fabric compliant fabric. 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.
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 1. 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 2.
image: credential: username: my_username password: my_access_token
ONOS network config
This has to be consistent with the information in prerequisite step 3.
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": [] } } } }
Verify custom values
helm template -f myvaules.yaml .
Supply Stratum chassis config
Please refer to Provide Chassis Config. This has to be consistent with the information in prerequisite step 5.
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
Name | Description |
---|---|
import.pfcp-agent.enabled | Enable PFCP agent |
import.dbuf.enabled | Enable DBuf |
image.credential.secretName | Name for the Kubernetes secret to store the credential |
image.credential.registry | The container registry |
image.credential.username | The username to login the container registry |
image.credential.password | The password to login the container registry |
onos-classic | See https://github.com/onosproject/onos-helm-charts/tree/master/onos-classic |
stratum | See https://github.com/stratum/stratum-helm-charts/tree/master/stratum |
pfcp-agent | See values.yaml file of the PFCP agent chart |
dbuf | See values.yaml file of the DBuf chart |
di-topology-watchdog | See values.yaml file of the chart |
di-metrics-exporter | See values.yaml file of the chart |