[SDFAB-590] - Update deployment doc

Change-Id: I3c2bb305ba9d74c3706e09d76ee02a3be09fd4b6
diff --git a/deployment.rst b/deployment.rst
index 9dc50f9..66bbe30 100644
--- a/deployment.rst
+++ b/deployment.rst
@@ -77,12 +77,16 @@
      compute3   <none>
      leaf1      [map[effect:NoSchedule key:node-role.kubernetes.io value:switch]]
      leaf2      [map[effect:NoSchedule key:node-role.kubernetes.io value:switch]]
-     ╰─$ kubectl get nodes -lnode-role.kubernetes.io=switch                                                                                                             130 ↵
+     ╰─$ kubectl get nodes -lnode-role.kubernetes.io=switch
      NAME    STATUS   ROLES    AGE   VERSION
      leaf1   Ready    worker   27d   v1.18.8
      leaf2   Ready    worker   27d   v1.18.8
 
 
+Please follow the :ref:`Install SD-Fabric section <install_sd_fabric>` to
+check how to use Taint and NodeSelector during installation.
+
+
 # TODO
 Build Image
 -----------
@@ -100,15 +104,111 @@
 
 .. code-block::
 
-      ╰─$ docker login registry.aetherproject.org --username hwchiu                                                                                                          255 ↵
+      ╰─$ docker login registry.aetherproject.org --username hwchiu
       Password:
       Login Succeeded
 
 
-Please follow the `Kubernetes official document <https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/>`_ to see how to
-download the image from the private registry with a valid credential
+Please follow the :ref:`Install SD-Fabric section <install_sd_fabric>` to
+check how to use Taint and NodeSelector during installation.
 
+.. _install_sd_fabric:
 
-# TODO, wait for the umbrella chart
 Install SD-Fabric
 -----------------
+
+To install SD-Fabric into your Kubernetes cluster, follow instructions
+described on the `SD-Fabric Helm Chart Repository <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/HEAD/sdfabric/README.md>`_
+
+A workflow to install the SD-Fabric should be look like
+
+1. Clone the Helm Charts files from the `SD-Fabric Helm Chart Repository <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/HEAD/sdfabric/README.md>`_
+2. Customize the value file based on your environment
+3. Deploy it via Helm command
+
+Below is an example how to install SD-Fabric
+
+.. note::
+    Please ensure you have installed switch into Kubernetes cluster and have configured them with proper taints and label,
+    and have the permission to fetch the container image from the `Aether Harbor Registry <https://registry.aetherproject.org/harbor/sign-in?redirect_url=%2Fharbor%2Fprojects>`_.
+
+
+1. Use the git command to clone the `SD-Fabric Helm Chart Repository <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/HEAD/sdfabric/README.md>`_
+2. Update dependencies
+
+.. code-block::
+
+      ╰─$ cd sdfabric
+      ╰─$ helm dep update                                                                                                                                                                                                              146 ↵
+      Downloading onos-classic from repo https://charts.onosproject.org
+      Downloading stratum from repo https://charts.stratumproject.org/
+      Deleting outdated charts
+
+3. Prepare your value file, you can modify an existing ``values.yaml`` or use a standalone
+value file, use the later approach in this example.
+
+.. code-block::
+
+      ╰─$ cat myvaules.yaml
+      image:
+         credential:
+            username: my_username
+            password: my_access_token
+
+      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": []
+                     }
+                  }
+               }
+            }
+
+
+      stratum:
+         nodeSelector:
+            node-role.kubernetes.io: switch
+
+         tolerations:
+            - effect: NoSchedule
+               value: switch
+               key: node-role.kubernetes.io
+
+Please pay attention to the following fields.
+
+   * Configure your ``registry username and password`` on image.credential
+   * Configure the ``label`` on stratum.nodeSelector
+   * Configure the ``taint`` on stratum.tolerations
+   * Configure the ``network configuration`` on onos-classic.config.netcfg
+
+4. Verify your Configuration to ensure no YAML/Helm syntax errors
+
+.. code-block::
+
+      ╰─$ helm template -f myvaules.yaml .
+
+5. Using the helm command to install it. (``helm version is above v3.2``)
+Following command will install the release `sdfabric` to namespace `sdfabric`.
+
+.. code-block::
+
+      ╰─$ helm install -n sdfabric --create-namespace -f myvaules.yaml sdfabric .
+      NAME: sdfabric
+      LAST DEPLOYED: Mon Oct 11 11:12:59 2021
+      NAMESPACE: sdfabric
+      STATUS: deployed
+      REVISION: 1
+      TEST SUITE: None
+      ╰─$ helm -n sdfabric ls
+      NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
+      sdfabric        sdfabric        1               2021-10-11 11:12:59.178789 -0700 PDT    deployed        sdfabric-1.0.1
diff --git a/dict.txt b/dict.txt
index 624908b..2247e57 100644
--- a/dict.txt
+++ b/dict.txt
@@ -39,12 +39,14 @@
 Scalability
 Subnetting
 TLS
+TRex
 ToR
 ToRs
 Tofino
 UE
 UPF
 Unicast
+YAML
 analytics
 backdoors
 backend
@@ -86,8 +88,10 @@
 microservice
 misconfiguration
 multicast
+namespace
 natively
 netcfg
+nodeSelector
 onos
 orchestrator
 patchset
@@ -109,6 +113,7 @@
 subnets
 telco
 tna
+tolerations
 topologies
 unconfigured
 unicast
@@ -120,4 +125,4 @@
 watchlist
 whitebox
 whitepaper
-TRex
+yaml