Modifying Docker registry docs

Change-Id: I71a62dd3201e7eb4c3545d3ff6cf6f36f0158309
diff --git a/Makefile b/Makefile
index aa0c21b..5e48058 100644
--- a/Makefile
+++ b/Makefile
@@ -20,7 +20,7 @@
 build: setup
 	gitbook build
 
-setup: cord-tester xos xos-gui xos-tosca swagger $(GENERATED_DOCS)
+setup: automation-tools cord-tester xos xos-gui xos-tosca swagger $(GENERATED_DOCS)
 	gitbook init
 	gitbook install
 
@@ -38,6 +38,9 @@
 	mdl -s $(LINT_STYLE) `find -L . ! -path "./partials/*" ! -path "./_book/*" ! -path "./node_modules/*" ! -path "./cord-tester/modules/*" -name "*.md"`
 
 # link directories that contain other documentation
+automation-tools:
+	ln -s ../automation-tools automation-tools
+
 cord-tester:
 	ln -s ../test/cord-tester/docs cord-tester
 
@@ -57,5 +60,5 @@
 	rm -rf $(GENERATED_DOCS)
 	rm -rf _book
 	rm -rf node_modules
-	rm -rf cord-tester test xos xos-gui xos-tosca
+	rm -rf automation-tools cord-tester test xos xos-gui xos-tosca
 
diff --git a/SUMMARY.md b/SUMMARY.md
index b5adf9c..570fbe4 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -48,4 +48,3 @@
     * [Test Setup](cord-tester/qa_testsetup.md)
     * [Test Environment](cord-tester/qa_testenv.md)
     * [System Tests](cord-tester/validate_pods.md)
-
diff --git a/partials/push-images-to-registry.md b/partials/push-images-to-registry.md
index 0b8e1f4..5d57042 100644
--- a/partials/push-images-to-registry.md
+++ b/partials/push-images-to-registry.md
@@ -1,26 +1,36 @@
-Once you have your registry set up, you'll need to tag you images adding the
-registry address.
+## Tag and push images to the docker registry
+
+In order for the images to be consumed on the Kubernetes pod, they'll need to be tagged first (prefixing them with the ), and pushed to the local registry
 
 Supposing your docker-registry address is:
-
 ```shell
-192.168.10.12:30500
+192.168.0.1:30500
 ```
 
-and that your image name is:
-
+and that your original image name is called:
 ```shell
 xosproject/vsg-synchronizer
 ```
 
-You'll need to re-tag the image as
-
+you'll need to tag the image as
 ```shell
-192.168.10.12:30500/xosproject/vsg-synchronizer
+192.168.0.1:30500/xosproject/vsg-synchronizer
 ```
 
-> NOTE: you can do that using the `docker tag` command:
->
-> ```shell
-> docker tag xosproject/vsg-synchronizer:candidate 192.168.10.12:30500/xosproject/vsg-synchronizer:candidate
-> ```
+For example, you can use the *docker tag* command to do this:
+```shell
+docker tag xosproject/vsg-synchronizer:candidate 192.168.0.1:30500/xosproject/vsg-synchronizer:candidate
+```
+
+Now, you can push the image to the registry. For example, with *docker push*:
+```shell
+docker push 192.168.0.1:30500/xosproject/vsg-synchronizer:candidate
+```
+
+The image should now be in the local docker registry on your pod.
+
+## Use the tag-and-push script
+
+Sometimes you may need to download, tag and push lots of images. This may become a long and error prone operation if done manually. For this reason, we provide an optional tool that automates the tag and push procedures.
+
+The script can be found [here](https://github.com/opencord/automation-tools/tree/master/developer).
diff --git a/prereqs/docker-registry.md b/prereqs/docker-registry.md
index fb6586f..17a295b 100644
--- a/prereqs/docker-registry.md
+++ b/prereqs/docker-registry.md
@@ -1,35 +1,42 @@
-# Docker Registry
+# Docker Registry (optional)
 
-The guide describes how to install an insecure *docker-registry* in Kubernetes.
-The tipical usecases for such registry are development, POCs or lab trials.
+The guide describes how to install an **insecure** *docker registry* in Kubernetes, using the standard Kubernetes helm charts.
 
-> **This is not meant for production use**
+Local docker registries can be used to push container images directly to the pod, which could be useful for example in the following cases:
 
-## What is a docker registry?
+* The CORD POD has no Internet access, so container images cannot be downloaded directly from DockerHub to the POD
+* You're developing new CORD components, or modifying existing ones. You may want to test your changes before uploading the image to the official docker repository. So, you build your new container and you push it to the local registry.
 
-If you have ever used docker, for sure you have used a docker registry.
-The most used *docker-registry* is the default, public one: <https://hub.docker.com>.
+More informations about docker registries at <https://docs.docker.com/registry/>
 
-In some cases, such as development or when the public registry is not
-reachable, you may want to setup a private registry, to push and pull images in a more controlled way.
+> NOTE: *Insecure* registries can be used for development, POCs or lab trials. **You should not use this in production.** There are planty of documents online that guide you through secure registries setup.
 
-More information about docker registries at <https://docs.docker.com/registry/>.
+## Deploy an insecure docker registry on Kubernetes using helm
 
-## Deploy an insecure docker registry on top of Kubernetes
+Helm provides a default helm chart to deploy an insecure registry on your Kubernetes pod.
 
-Helm provides a default helm-chart to deploy the registry,
-The follogin command deploys it and exposes it on node port *30500*:
+The following command deploys the registry and exposes the nodeport *30500* (you may want to change it with any value that fit your deployment needs) to access it:
 
 ```shell
 helm install stable/docker-registry --set service.nodePort=30500,service.type=NodePort -n docker-registry
 ```
 
-The registry can be queried at any time:
+The registry can be queried at any time, for example:
 
-> ```shell
-> curl -X GET https://KUBERNETES_IP:30500/v2/_catalog
-> ```
-
-## Push images to the docker registry
+```shell
+curl -X GET https://KUBERNETES_IP:30500/v2/_catalog
+```
 
 {% include "/partials/push-images-to-registry.md" %}
+
+## Modify the default helm charts to use your images, instead of the default ones
+
+Now that your custom images are in the local docker registry on the Kubernetes pod, you can modify the CORD helm charts to instruct the system to consume them, instead of using the default ones (from DockerHub).
+
+Image names and tags are specified in the *values.yaml* file of each chart (just look in the main chart folder), or -alternatively- in the configuration files, in the config folder.
+
+Simply modify the values as needed, uninstall the containers previously deployed, and deploy them again.
+
+> **NOTE**: it's better to extend the existing helm charts, rather than directly modifying them. This way you can keep the original configuration as it is, and just override some values when needed. You can do this writing your additional configuration yaml file, and parsing it as needed, adding -f my-additional-config.yml to your helm commands.
+
+The full CORD helm charts reference documentation is available [here](../charts/helm.md).