[VOL-3906] Dynamically generating controller list

Change-Id: Iadff3fc9e44549b42f6cff5ce49a3db692afa5be
diff --git a/voltha/templates/ofagent-deploy.yaml b/voltha/templates/ofagent-deploy.yaml
index b091224..8f77ae3 100644
--- a/voltha/templates/ofagent-deploy.yaml
+++ b/voltha/templates/ofagent-deploy.yaml
@@ -11,7 +11,17 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-{{- $log_level := tpl .Values.ofagent.log_level . | upper }}
+{{- $log_level := tpl .Values.ofagent.log_level . | upper -}}
+{{- $onosReplicas := default 1 .Values.onos_classic.replicas -}}
+{{- $onosOfPort := default 6653 .Values.onos_classic.onosOfPort -}}
+{{- $infraName := default "voltha-infra" .Values.global.voltha_infra_name -}}
+{{- $infraNamespaces := default "infra" .Values.global.voltha_infra_namespace -}}
+{{- $controllers := dict "controllers" (list) -}}
+{{- range $i, $e := until ($onosReplicas | int) -}}
+  {{- $port := add $onosOfPort $i -}}
+  {{- $current := printf "%s-onos-classic-%d.%s-onos-classic-hs.%s.svc:%d" $infraName $i $infraName $infraNamespaces $port -}}
+  {{- $controllers := (mustAppend $controllers.controllers $current) | set $controllers "controllers" -}}
+{{- end -}}
 ---
 apiVersion: apps/v1
 kind: Deployment
@@ -81,6 +91,9 @@
             value: {{ .Values.global.kv_store_data_prefix }}
         args:
         - "/app/ofagent"
+        {{- range $controllers.controllers }}
+        - "--controller={{ . }}"
+        {{- end }}
         {{- range .Values.services.controller }}
         - "--controller={{ tpl .address $ }}"
         {{- end }}