CoreDNS metric + upgrade fixes

Sem-Ver: bugfix
Change-Id: Ic108be00f85a059bea5cc867c16007c0c36cac50
diff --git a/releasenotes/notes/add-coredns-metrics-6154d542fdb5118f.yaml b/releasenotes/notes/add-coredns-metrics-6154d542fdb5118f.yaml
new file mode 100644
index 0000000..5f2c4fc
--- /dev/null
+++ b/releasenotes/notes/add-coredns-metrics-6154d542fdb5118f.yaml
@@ -0,0 +1,6 @@
+---
+features:
+  - Added CoreDNS metrics for the Neutron service.
+fixes:
+  - Fix issues around upgrading existing releases around waiting for deploys
+    for larger environments.
diff --git a/roles/coredns/tasks/main.yml b/roles/coredns/tasks/main.yml
index 51a94be..a3ca046 100644
--- a/roles/coredns/tasks/main.yml
+++ b/roles/coredns/tasks/main.yml
@@ -41,6 +41,9 @@
                 name: coredns
           values:
             replicaCount: 3
+            prometheus:
+              service:
+                enabled: true
             service:
               name: neutron-coredns
               clusterIP: 10.96.0.20
@@ -87,3 +90,30 @@
               component: coredns
             deployment:
               name: neutron-coredns
+
+      - apiVersion: monitoring.coreos.com/v1
+        kind: ServiceMonitor
+        metadata:
+          name: neutron-coredns
+          namespace: monitoring
+          labels:
+            release: kube-prometheus-stack
+        spec:
+          jobLabel: app.kubernetes.io/name
+          endpoints:
+            - port: "metrics"
+              path: "/metrics"
+              relabelings:
+                - sourceLabels: ["__meta_kubernetes_pod_label_application"]
+                  targetLabel: "application"
+                - sourceLabels: ["__meta_kubernetes_pod_name"]
+                  targetLabel: "instance"
+                - action: "labeldrop"
+                  regex: "^(container|endpoint|namespace|pod|service)$"
+          namespaceSelector:
+            matchNames:
+              - openstack
+          selector:
+            matchLabels:
+              app.kubernetes.io/name: coredns
+              app.kubernetes.io/component: metrics
diff --git a/roles/openstack_helm_barbican/tasks/main.yml b/roles/openstack_helm_barbican/tasks/main.yml
index 11baace..e134811 100644
--- a/roles/openstack_helm_barbican/tasks/main.yml
+++ b/roles/openstack_helm_barbican/tasks/main.yml
@@ -57,6 +57,8 @@
                 name: openstack-helm
           install:
             disableWait: true
+          upgrade:
+            disableWait: true
           valuesFrom:
             - kind: Secret
               name: atmosphere-barbican
diff --git a/roles/openstack_helm_cinder/tasks/main.yml b/roles/openstack_helm_cinder/tasks/main.yml
index fef14b2..7816d5b 100644
--- a/roles/openstack_helm_cinder/tasks/main.yml
+++ b/roles/openstack_helm_cinder/tasks/main.yml
@@ -57,6 +57,8 @@
                 name: openstack-helm
           install:
             disableWait: true
+          upgrade:
+            disableWait: true
           valuesFrom:
             - kind: Secret
               name: atmosphere-cinder
diff --git a/roles/openstack_helm_glance/tasks/main.yml b/roles/openstack_helm_glance/tasks/main.yml
index 5194df3..9d35a14 100644
--- a/roles/openstack_helm_glance/tasks/main.yml
+++ b/roles/openstack_helm_glance/tasks/main.yml
@@ -57,6 +57,8 @@
                 name: openstack-helm
           install:
             disableWait: true
+          upgrade:
+            disableWait: true
           valuesFrom:
             - kind: Secret
               name: atmosphere-glance
diff --git a/roles/openstack_helm_heat/tasks/main.yml b/roles/openstack_helm_heat/tasks/main.yml
index c3616e7..18879b5 100644
--- a/roles/openstack_helm_heat/tasks/main.yml
+++ b/roles/openstack_helm_heat/tasks/main.yml
@@ -57,6 +57,8 @@
                 name: openstack-helm
           install:
             disableWait: true
+          upgrade:
+            disableWait: true
           valuesFrom:
             - kind: Secret
               name: atmosphere-heat
diff --git a/roles/openstack_helm_horizon/tasks/main.yml b/roles/openstack_helm_horizon/tasks/main.yml
index 9eb13f5..a8e19c0 100644
--- a/roles/openstack_helm_horizon/tasks/main.yml
+++ b/roles/openstack_helm_horizon/tasks/main.yml
@@ -57,6 +57,8 @@
                 name: openstack-helm
           install:
             disableWait: true
+          upgrade:
+            disableWait: true
           valuesFrom:
             - kind: Secret
               name: atmosphere-horizon
diff --git a/roles/openstack_helm_infra_ceph_provisioners/tasks/main.yml b/roles/openstack_helm_infra_ceph_provisioners/tasks/main.yml
index 8a2113f..817fa91 100644
--- a/roles/openstack_helm_infra_ceph_provisioners/tasks/main.yml
+++ b/roles/openstack_helm_infra_ceph_provisioners/tasks/main.yml
@@ -139,6 +139,8 @@
                 name: openstack-helm-infra
           install:
             disableWait: true
+          upgrade:
+            disableWait: true
           valuesFrom:
             - kind: Secret
               name: atmosphere-ceph-provisioners
diff --git a/roles/openstack_helm_infra_libvirt/tasks/main.yml b/roles/openstack_helm_infra_libvirt/tasks/main.yml
index 56e848d..594b4e1 100644
--- a/roles/openstack_helm_infra_libvirt/tasks/main.yml
+++ b/roles/openstack_helm_infra_libvirt/tasks/main.yml
@@ -57,6 +57,8 @@
                 name: openstack-helm-infra
           install:
             disableWait: true
+          upgrade:
+            disableWait: true
           valuesFrom:
             - kind: Secret
               name: atmosphere-libvirt
diff --git a/roles/openstack_helm_infra_memcached/tasks/main.yml b/roles/openstack_helm_infra_memcached/tasks/main.yml
index f3b3666..cb482d5 100644
--- a/roles/openstack_helm_infra_memcached/tasks/main.yml
+++ b/roles/openstack_helm_infra_memcached/tasks/main.yml
@@ -57,6 +57,8 @@
                 name: openstack-helm-infra
           install:
             disableWait: true
+          upgrade:
+            disableWait: true
           valuesFrom:
             - kind: Secret
               name: atmosphere-memcached
diff --git a/roles/openstack_helm_infra_openvswitch/tasks/main.yml b/roles/openstack_helm_infra_openvswitch/tasks/main.yml
index e82fd3a..2e24498 100644
--- a/roles/openstack_helm_infra_openvswitch/tasks/main.yml
+++ b/roles/openstack_helm_infra_openvswitch/tasks/main.yml
@@ -58,6 +58,8 @@
                 name: openstack-helm-infra
           install:
             disableWait: true
+          upgrade:
+            disableWait: true
           valuesFrom:
             - kind: Secret
               name: atmosphere-openvswitch
diff --git a/roles/openstack_helm_keystone/tasks/main.yml b/roles/openstack_helm_keystone/tasks/main.yml
index 0f753ff..160281f 100644
--- a/roles/openstack_helm_keystone/tasks/main.yml
+++ b/roles/openstack_helm_keystone/tasks/main.yml
@@ -57,6 +57,8 @@
                 name: openstack-helm
           install:
             disableWait: true
+          upgrade:
+            disableWait: true
           valuesFrom:
             - kind: Secret
               name: atmosphere-keystone
diff --git a/roles/openstack_helm_neutron/tasks/main.yml b/roles/openstack_helm_neutron/tasks/main.yml
index 1ab9702..d7158c3 100644
--- a/roles/openstack_helm_neutron/tasks/main.yml
+++ b/roles/openstack_helm_neutron/tasks/main.yml
@@ -57,6 +57,8 @@
                 name: openstack-helm
           install:
             disableWait: true
+          upgrade:
+            disableWait: true
           valuesFrom:
             - kind: Secret
               name: atmosphere-neutron
diff --git a/roles/openstack_helm_nova/tasks/main.yml b/roles/openstack_helm_nova/tasks/main.yml
index 1598006..29efde1 100644
--- a/roles/openstack_helm_nova/tasks/main.yml
+++ b/roles/openstack_helm_nova/tasks/main.yml
@@ -88,6 +88,8 @@
                 name: openstack-helm
           install:
             disableWait: true
+          upgrade:
+            disableWait: true
           valuesFrom:
             - kind: Secret
               name: atmosphere-nova
diff --git a/roles/openstack_helm_placement/tasks/main.yml b/roles/openstack_helm_placement/tasks/main.yml
index 88208e7..b896643 100644
--- a/roles/openstack_helm_placement/tasks/main.yml
+++ b/roles/openstack_helm_placement/tasks/main.yml
@@ -57,6 +57,8 @@
                 name: openstack-helm
           install:
             disableWait: true
+          upgrade:
+            disableWait: true
           valuesFrom:
             - kind: Secret
               name: atmosphere-placement
diff --git a/roles/openstack_helm_senlin/tasks/main.yml b/roles/openstack_helm_senlin/tasks/main.yml
index 0a957dd..b5c6eda 100644
--- a/roles/openstack_helm_senlin/tasks/main.yml
+++ b/roles/openstack_helm_senlin/tasks/main.yml
@@ -57,6 +57,8 @@
                 name: openstack-helm
           install:
             disableWait: true
+          upgrade:
+            disableWait: true
           valuesFrom:
             - kind: Secret
               name: atmosphere-senlin