diff --git a/inventory/sample/group_vars/k8s-cluster/addons.yml b/inventory/sample/group_vars/k8s-cluster/addons.yml
index 73528c168597c4d5ac69ca837e5c38ce2df3c822..642ebea4317b1ac278aa119894c20980f5052020 100644
--- a/inventory/sample/group_vars/k8s-cluster/addons.yml
+++ b/inventory/sample/group_vars/k8s-cluster/addons.yml
@@ -115,6 +115,7 @@ ingress_publish_status_address: ""
 ingress_ambassador_enabled: false
 # ingress_ambassador_namespace: "ambassador"
 # ingress_ambassador_version: "*"
+# ingress_ambassador_multi_namespaces: false
 
 # ALB ingress controller deployment
 ingress_alb_enabled: false
diff --git a/roles/kubernetes-apps/ingress_controller/ambassador/README.md b/roles/kubernetes-apps/ingress_controller/ambassador/README.md
index 3602aaa348cff51e7a223eba308792e19b18a5a5..98637a21616b81dacb36b14b0fb22642d2b65091 100644
--- a/roles/kubernetes-apps/ingress_controller/ambassador/README.md
+++ b/roles/kubernetes-apps/ingress_controller/ambassador/README.md
@@ -29,6 +29,10 @@ versions of Ambassador as they become available.
   for specifying when the Operator should try to update the Ambassador API Gateway.
 - `ingress_ambassador_version` (defaulkt: `*`): SemVer rule for versions allowed for
   installation/updates.
+- `ingress_ambassador_multi_namespaces` (default `false`): By default, Ambassador will only
+  watch the `ingress_ambassador_namespace` namespace for `AmbassadorInstallation` CRD resources.
+  When set to `true`, this value will tell the Ambassador Operator to watch **all** namespaces
+  for CRDs. If you want to run multiple Ambassador ingress instances, set this to `true`.
 
 ## Ingress annotations
 
diff --git a/roles/kubernetes-apps/ingress_controller/ambassador/defaults/main.yml b/roles/kubernetes-apps/ingress_controller/ambassador/defaults/main.yml
index 5d8f4805096bd3791a1ec2bf2ea251a30093e302..a71645a109c71895ec2d5ad36cd9c3ef6c804275 100644
--- a/roles/kubernetes-apps/ingress_controller/ambassador/defaults/main.yml
+++ b/roles/kubernetes-apps/ingress_controller/ambassador/defaults/main.yml
@@ -6,4 +6,5 @@ ingress_ambassador_replicas: 1
 ingress_ambassador_insecure_port: 80
 ingress_ambassador_secure_port: 443
 ingress_ambassador_extra_args: []
-ingress_ambassador_host_network: false
\ No newline at end of file
+ingress_ambassador_host_network: false
+ingress_ambassador_multi_namespaces: false
diff --git a/roles/kubernetes-apps/ingress_controller/ambassador/templates/deploy-ambassador.yml.j2 b/roles/kubernetes-apps/ingress_controller/ambassador/templates/deploy-ambassador.yml.j2
index 8cf4676d5767fef5feda8cc96ba6b30d04f13f4d..58fa32b4e9ae9324aaff2d800d1358a376571cfa 100644
--- a/roles/kubernetes-apps/ingress_controller/ambassador/templates/deploy-ambassador.yml.j2
+++ b/roles/kubernetes-apps/ingress_controller/ambassador/templates/deploy-ambassador.yml.j2
@@ -32,9 +32,13 @@ spec:
           imagePullPolicy: {{ k8s_image_pull_policy }}
           env:
             - name: WATCH_NAMESPACE
+              {%- if ingress_ambassador_multi_namespaces %}
+              value: ''
+              {%- else %}
               valueFrom:
                 fieldRef:
                   fieldPath: metadata.namespace
+              {%- end %}
             - name: POD_NAME
               valueFrom:
                 fieldRef: