Add monitoring for Calico services log files

Change-Id: Ia94ff67c5a2816d2af3980a0baea36b5d481c957
Depends-On: Ib7d83de5954be01c007c1ed2288305132cdb5d75
diff --git a/kubernetes/meta/heka.yml b/kubernetes/meta/heka.yml
index 7a055c1..43d1dd6 100644
--- a/kubernetes/meta/heka.yml
+++ b/kubernetes/meta/heka.yml
@@ -3,6 +3,64 @@
 
 {% set kube_services = ('apiserver', 'scheduler', 'controller-manager') %}
 
+{%- if pool.get('enabled', False) %}
+{% set network = pool.get('network', []) %}
+{%- else %}
+{%- if master.get('enabled', False) %}
+{% set network = master.get('network', []) %}
+{% endif %}
+{% endif %}
+
+{%- if network is defined and network.get('engine', None) == 'calico' %}
+log_collector:
+  decoder:
+    calico_felix:
+      engine: sandbox
+      module_file: /usr/share/lma_collector/decoders/calico.lua
+      module_dir: /usr/share/lma_collector/common;/usr/share/heka/lua_modules
+      adjust_timezone: true
+      config:
+        calico_service: 'felix'
+    calico_bird:
+      engine: sandbox
+      module_file: /usr/share/lma_collector/decoders/calico.lua
+      module_dir: /usr/share/lma_collector/common;/usr/share/heka/lua_modules
+      adjust_timezone: true
+      config:
+        calico_service: 'bird'
+    calico_confd:
+      engine: sandbox
+      module_file: /usr/share/lma_collector/decoders/calico.lua
+      module_dir: /usr/share/lma_collector/common;/usr/share/heka/lua_modules
+      adjust_timezone: true
+      config:
+        calico_service: 'confd'
+  input:
+    calico_felix:
+      engine: logstreamer
+      log_directory: "/var/log"
+      file_match: 'calico/felix/(current|@(?P<Seq>[0-9a-f][0-9a-f]*)\.[su])$'
+      differentiator: ['calico', '.', 'felix']
+      priority: ["^Seq"]
+      decoder: "calico_felix_decoder"
+      splitter: "TokenSplitter"
+    calico_bird:
+      engine: logstreamer
+      log_directory: "/var/log"
+      file_match: 'calico/bird(?P<Service>6*)/(current|@(?P<Seq>[0-9a-f][0-9a-f]*)\.[su])$'
+      differentiator: ['calico', '.', 'bird', 'Service']
+      priority: ["^Seq"]
+      decoder: "calico_bird_decoder"
+      splitter: "TokenSplitter"
+    calico_confd:
+      engine: logstreamer
+      log_directory: "/var/log"
+      file_match: 'calico/confd/(current|@(?P<Seq>[0-9a-f][0-9a-f]*)\.[su])$'
+      differentiator: ['calico', '.', 'confd']
+      priority: ["^Seq"]
+      decoder: "calico_confd_decoder"
+      splitter: "TokenSplitter"
+{%- endif %}
 {%- if master.get('enabled', False) or pool.get('enabled', False) %}
 metric_collector:
   trigger: