diff --git a/README.md b/README.md
index 3045b76dcc9741cf70de60ca0bb48b3493d93760..a949a37cb540e349ff5af27bbe862b7b54936db2 100644
--- a/README.md
+++ b/README.md
@@ -139,7 +139,7 @@ Note: Upstart/SysV init based OS types are not supported.
   - [rbd-provisioner](https://github.com/kubernetes-incubator/external-storage) v2.1.1-k8s1.11
   - [cert-manager](https://github.com/jetstack/cert-manager) v0.15.2
   - [coredns](https://github.com/coredns/coredns) v1.6.7
-  - [ingress-nginx](https://github.com/kubernetes/ingress-nginx) v0.32.0
+  - [ingress-nginx](https://github.com/kubernetes/ingress-nginx) v0.34.1
 
 Note: The list of validated [docker versions](https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker) is 1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09 and 19.03. The recommended docker version is 19.03. The kubelet might break on docker's non-standard version numbering (it no longer uses semantic versioning). To ensure auto-updates don't break your cluster look into e.g. yum versionlock plugin or apt pin).
 
diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml
index c3e5f3dd00c5cab11c2d1871bf19cee93240f406..7aabc1a2f270c3e0306918bbaa86b13dcc13905b 100644
--- a/roles/download/defaults/main.yml
+++ b/roles/download/defaults/main.yml
@@ -53,7 +53,8 @@ kube_version: v1.18.8
 kubeadm_version: "{{ kube_version }}"
 etcd_version: v3.4.3
 
-# gcr and kubernetes image repo define
+# gcr and kubernetes image repo define (gcr location might be 'asia', 'eu' or 'us')
+gcr_location_default: "eu"
 gcr_image_repo: "gcr.io"
 kube_image_repo: "k8s.gcr.io"
 
@@ -573,8 +574,8 @@ rbd_provisioner_image_repo: "{{ quay_image_repo }}/external_storage/rbd-provisio
 rbd_provisioner_image_tag: "v2.1.1-k8s1.11"
 local_path_provisioner_image_repo: "{{ docker_image_repo }}/rancher/local-path-provisioner"
 local_path_provisioner_image_tag: "v0.0.14"
-ingress_nginx_controller_image_repo: "{{ quay_image_repo }}/kubernetes-ingress-controller/nginx-ingress-controller"
-ingress_nginx_controller_image_tag: "0.32.0"
+ingress_nginx_controller_image_repo: "{{ gcr_location_default }}.{{ gcr_image_repo }}/k8s-artifacts-prod/ingress-nginx/controller"
+ingress_nginx_controller_image_tag: "v0.34.1"
 ingress_ambassador_image_repo: "{{ quay_image_repo }}/datawire/ambassador-operator"
 ingress_ambassador_image_tag: "v1.2.8"
 alb_ingress_image_repo: "{{ docker_image_repo }}/amazon/aws-alb-ingress-controller"
diff --git a/roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/clusterrolebinding-ingress-nginx.yml.j2 b/roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/clusterrolebinding-ingress-nginx.yml.j2
index 5c7046ec345a7bab4a75e0edb3e72f240fec9a58..ad83dc257a7190c8e5fd72ed11c234d6a7db9d50 100644
--- a/roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/clusterrolebinding-ingress-nginx.yml.j2
+++ b/roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/clusterrolebinding-ingress-nginx.yml.j2
@@ -3,7 +3,6 @@ apiVersion: rbac.authorization.k8s.io/v1
 kind: ClusterRoleBinding
 metadata:
   name: ingress-nginx
-  namespace: {{ ingress_nginx_namespace }}
   labels:
     app.kubernetes.io/name: ingress-nginx
     app.kubernetes.io/part-of: ingress-nginx