Ingress: Improve port opening

Update nginx replica counts and rollout strategy.
What proxy-backend configmap changes and reload auto proxy nginx.
Make ingress optional.
Use <PREFIX>.<CLUSTER_NAME>.clusters.p.<DOMAIN> addresses for remote
cluster services.

Change-Id: Ideb146a8c0275822ee5cd28311c00a817f4202aa
diff --git a/charts/ingress-nginx/templates/controller-service.yaml b/charts/ingress-nginx/templates/controller-service.yaml
index 2b28196..fd8598d 100644
--- a/charts/ingress-nginx/templates/controller-service.yaml
+++ b/charts/ingress-nginx/templates/controller-service.yaml
@@ -95,6 +95,18 @@
     {{- end }}
     {{- end }}
   {{- end }}
+  {{- range $key, $value := .Values.controller.service.extraPorts.tcp }}
+    - name: {{ if $.Values.portNamePrefix }}{{ $.Values.portNamePrefix }}-{{ end }}{{ $key }}-tcp
+      port: {{ $key }}
+      protocol: TCP
+      targetPort: {{ $value }}
+  {{- end }}
+  {{- range $key, $value := .Values.controller.service.extraPorts.udp }}
+    - name: {{ if $.Values.portNamePrefix }}{{ $.Values.portNamePrefix }}-{{ end }}{{ $key }}-udp
+      port: {{ $key }}
+      protocol: UDP
+      targetPort: {{ $value }}
+  {{- end }}
   selector:
     {{- include "ingress-nginx.selectorLabels" . | nindent 4 }}
     app.kubernetes.io/component: controller
diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml
index 7ca41e7..b3389e2 100644
--- a/charts/ingress-nginx/values.yaml
+++ b/charts/ingress-nginx/values.yaml
@@ -455,6 +455,9 @@
       http: http
       https: https
     type: LoadBalancer
+    extraPorts:
+      tcp: {}
+      udp: {}
     ## type: NodePort
     ## nodePorts:
     ##   http: 32080