Adding basic helm documentation and other useful infos

Change-Id: I1e61477836130b9fc8b8b25b2c6886ee05af7233
diff --git a/SUMMARY.md b/SUMMARY.md
index a9f3586..81d4de5 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -19,6 +19,7 @@
         * [XOS-CORE](charts/xos-core.md)
         * [ONOS](charts/onos.md)
         * [VOLTHA](charts/voltha.md)
+        * [kafka](charts/kafka.md)
     * [Fabric setup](prereqs/fabric-setup.md)
 * Operating CORD
     * [Diagnostics](operating_cord/diag.md)
diff --git a/charts/helm.md b/charts/helm.md
index 104d278..0a0e3c9 100644
--- a/charts/helm.md
+++ b/charts/helm.md
@@ -1,15 +1,41 @@
 # Helm
 
+For informations on how to install `helm` please refer to [Installing helm](../prereqs/helm.md)
+
 ## What is Helm?
 
-Briefly describe what helm is
+{% include "/partials/helm/description.md" %}
 
 ## How to get CORD Helm charts
 
 ### Donwload the helm-charts repository
 
-### Add the CORD repository to helm
+You can get the CORD helm-chars by cloning the `helm-charts` repository:
+
+```shell
+git clone https://gerrit.opencord.org/helm-charts
+```
+
+> If you have downloaded the CORD code following the
+[Getting the Source Code](../developer/getting_the_code.md) guide,
+you'll find it in `~/cord/helm-charts`.
+
+### Add the CORD repository to helm (NOT YET AVAILABLE)
 
 ```shell
 helm repo add ...
 ```
+
+## CORD example values
+
+As you may have noticed, there is an `example` folder
+in the `helm-chart` repository.
+The files contained in that repository are examples of possible overrides
+to obtain a custom deployment.
+
+For example, it is possible to deploy a single instance of `kafka`,
+for development purposes, by using this value file:
+
+```shell
+helm install --name cord-kafka incubator/kafka -f examples/kafka-single.yaml
+```
\ No newline at end of file
diff --git a/charts/kafka.md b/charts/kafka.md
new file mode 100644
index 0000000..a2c1260
--- /dev/null
+++ b/charts/kafka.md
@@ -0,0 +1,11 @@
+# Kafka Helm chart
+
+The `kafka` helm chart is not maintained by CORD,
+but it is available online at: <https://github.com/kubernetes/charts/tree/master/incubator/kafka>
+
+To install kafka you can use:
+
+```shell
+helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator
+helm install --name cord-kafka incubator/kafka
+```
\ No newline at end of file
diff --git a/charts/onos.md b/charts/onos.md
index 01989a9..ad5f788 100644
--- a/charts/onos.md
+++ b/charts/onos.md
@@ -1,26 +1,55 @@
 # ONOS Helm chart
 
-Lorem ipsum dolor sit amet, consectetur adipisicing elit. Esse illum explicabo,
-expedita, repudiandae numquam, ab fuga molestias minus maxime, deleniti
-perspiciatis id repellendus ipsa nemo velit quaerat omnis sequi saepe.
-
-Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
-tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
-quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
-consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
-cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
-proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+This chart can be used to deploy an ONOS container.
+Traditionally it is used to deploy three different ONOSes in the system,
+depending by what is required.
 
 ## ONOS-Fabric
 
-`helm install ...`
+`helm install -n onos-fabric -f configs/onos-fabric.yaml onos`
+
+Ports exposed:
+
+- ovsdb: 31640
+- OpenFlow: 31653
+- SSH: 31101
+- UI: 31181
 
 ## ONOS-VOLHTA
 
 > NOTE: This requires [VOLTHA](voltha.md) to be installed
 
-`helm install ...`
+`helm install -n onos-voltha -f configs/onos-voltha.yaml onos`
+
+Ports exposed:
+
+- SSH: 30115
+- UI: 30120
 
 ## ONOS-VTN
 
-`helm install ...`
+`helm install -n onos-cord -f configs/onos-cord.yaml onos`
+
+## Overridable values
+
+This is a sample `values.yaml` that can be used to override values
+through the `-f` option:
+
+```yaml
+imagePullPolicy: Always
+onosImage: 'onosproject/onos:1.13.1'
+
+services:
+  openflowServiceType: NodePort
+  ovsdbServiceType: NodePort
+  sshServiceType: NodePort
+  uiServiceType: NodePort
+  ovsdb:
+    nodePort: 31640
+  openflow:
+    nodePort: 31653
+  ssh:
+    nodePort: 31101
+  ui:
+    nodePort: 31181
+```
diff --git a/charts/xos-core.md b/charts/xos-core.md
index 6911910..6e02351 100644
--- a/charts/xos-core.md
+++ b/charts/xos-core.md
@@ -1,6 +1,10 @@
 # Deploying XOS-CORE
 
 ```shell
-help repo add ...
 helm install -n xos-core xos-core
 ```
+
+## Deploy kafka
+
+Some flavors of XOS require kafka, to install it please
+follow refer to the [kafka](kafka.md) instructions.
diff --git a/developer/workflows.md b/developer/workflows.md
index 4f70b52..36e989a 100644
--- a/developer/workflows.md
+++ b/developer/workflows.md
@@ -36,6 +36,19 @@
 helm install xos-profiles/rcord-lite -n rcord-lite
 ```
 
+### Deply a single instance of kafka
+
+Some profiles require a `kafka` message bus to properly working.
+If you need to deploy it for development purposes, a single instance
+deployment will be enough.
+
+You can install it by using:
+
+```shell
+helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator
+install --name cord-kafka incubator/kafka -f examples/kafka-single.yaml
+```
+
 ## Making changes and deploy them
 
 You can follow this guide to [get the CORD source code](getting_the_code.md).
@@ -91,7 +104,7 @@
 docker images on a registry that can be accessed from the POD itself.
 
 The way we suggest to do this is via a private docker-registry,
-you can find more informations about what a 
+you can find more informations about what a
 docker-registry is [here](../prereqs/docker-registry.md).
 
 {% include "/partials/push-images-to-registry.md" %}
\ No newline at end of file
diff --git a/partials/helm/description.md b/partials/helm/description.md
new file mode 100644
index 0000000..383710a
--- /dev/null
+++ b/partials/helm/description.md
@@ -0,0 +1,5 @@
+Helm is the package manager for Kubernetes. It lets you define, install,
+and upgrade Kubernetes base application.
+
+For more informations about helm,
+please the visit the official website: <https://helm.sh>
\ No newline at end of file
diff --git a/prereqs/docker-registry.md b/prereqs/docker-registry.md
index f6a7e20..c523ce0 100644
--- a/prereqs/docker-registry.md
+++ b/prereqs/docker-registry.md
@@ -1,9 +1,9 @@
 # Docker Registry
 
-This guide will help you in deploying an insecure `docker-registry`. 
+This guide will help you in deploying an insecure `docker-registry`.
 The tipical usecases for such registry are development, POCs or lab trials.
 
-**Please be aware that this is NOT intended for production use**
+> **Please be aware that this is NOT intended for production use**
 
 ## What is a docker registry?
 
diff --git a/prereqs/helm.md b/prereqs/helm.md
index 95c0541..630980e 100644
--- a/prereqs/helm.md
+++ b/prereqs/helm.md
@@ -1,6 +1,52 @@
 # Helm Installation guide
 
-Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nesciunt odit iste
-molestiae, necessitatibus saepe vel porro accusantium sit. Rem, voluptas
-accusantium quasi perspiciatis laborum cumque rerum deserunt itaque sapiente!
-Harum?
+## What is helm?
+
+{% include "/partials/helm/description.md" %}
+
+## How to install helm
+
+The full instructions and basic commands to get started
+with helm can be found here: <https://docs.helm.sh/using_helm/#quickstart>
+
+For simplicity here are are few commands that you can use to install `helm`
+on your sistem:
+
+#### macOS
+
+```shell
+brew install kubernetes-helm
+```
+
+#### Linux
+
+```shell
+wget https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz
+tar -zxvf helm-v2.9.1-linux-amd64.tar.gz
+mv linux-amd64/helm /usr/local/bin/helm
+```
+
+#### Initialize helm and setup Tiller
+
+```shell
+helm init
+```
+
+Once `helm` is installed you should be able
+to run the command `helm list` without errors
+
+## What is an helm chart?
+
+Charts are the packaging format used by helm.
+A chart is a collection of files that describe
+a related set of Kubernetes resources.
+
+For example in CORD we are using charts to define every single components,
+such as:
+
+- [xos-core](../charts/xos-core.md)
+- [onos](../charts/onos.md)
+- [voltha](../charts/voltha.md)
+
+You can find the full chart documentation here:
+<https://docs.helm.sh/developing_charts/#charts>
\ No newline at end of file
diff --git a/profiles/container-vnf.md b/profiles/container-vnf.md
new file mode 100644
index 0000000..beaf18f
--- /dev/null
+++ b/profiles/container-vnf.md
@@ -0,0 +1 @@
+# Container vnf
\ No newline at end of file
diff --git a/profiles/rcord-lite.md b/profiles/rcord-lite.md
index 9560e4a..2a50479 100644
--- a/profiles/rcord-lite.md
+++ b/profiles/rcord-lite.md
@@ -22,6 +22,7 @@
 - [xos-core](../charts/xos-core.md)
 - [onos-fabric](../charts/onos.md#onos-fabric)
 - [onos-voltha](../charts/onos.md#onos-voltha)
+- kafka
 
 ## Install the RCORD-Lite helm chart