Add Alertmanager enhancements:

- match fields
- subroutes
- generic receivers

Related-PROD: PROD-34983
Change-Id: Ibd613561c34fa300619d577083974df547fd937a
(cherry picked from commit 94d6b7207f4a4c5d3520088fcf67b762ceecd9b9)
diff --git a/prometheus/files/alertmanager.yml b/prometheus/files/alertmanager.yml
index bd3bafd..3221b44 100644
--- a/prometheus/files/alertmanager.yml
+++ b/prometheus/files/alertmanager.yml
@@ -27,6 +27,12 @@
   {{ match_re.label }}: {{ match_re.value }}
   {%- endfor %}
 {%- endif %}
+{%- if route.match is defined %}
+match:
+  {%- for match in route.match %}
+  {{ match.label }}: {{ match.value }}
+  {%- endfor %}
+{%- endif %}
 {%- endmacro -%}
 
 {%- macro http_config_entry(http_config={}) -%}
@@ -84,6 +90,13 @@
   {%- for route_name, route in config_route.get('routes', {}).iteritems() %}
   # {{ route_name }}
   - {{ route_entry(route) | indent(4) }}
+    {%- if route.get('routes', {}) %}
+    routes:
+      {%- for subroute_name, subroute in route.get('routes', {}).iteritems() %}
+    # {{ subroute_name }}
+    - {{ route_entry(subroute) | indent(6) }}
+      {%- endfor %}
+    {%- endif %}
   {%- endfor %}
 {%- endif %}
 
@@ -121,6 +134,16 @@
       {%- endif %}
     {%- endfor %}
   {%- endif %}
+  {%- if config.generic_configs is defined %}
+    {%- for config_name, endpoints in config.generic_configs.iteritems() %}
+    {{ config_name }}:
+      {%- for endpoint_name, endpoint_config in endpoints.iteritems() %}
+    # {{ endpoint_name }}
+    -
+{{ endpoint_config | yaml(False) | indent(6, true) }}
+      {%- endfor %}
+    {%- endfor %}
+  {%- endif %}
   {%- if config.slack_configs is defined %}
     slack_configs:
     {%- for name, slack in config.slack_configs.iteritems() %}