Merge "Add Grafana dashboard for Kubernetes cluster"
diff --git a/kubernetes/files/kubernetes.grain b/kubernetes/files/kubernetes.grain
deleted file mode 100644
index 5d0a225..0000000
--- a/kubernetes/files/kubernetes.grain
+++ /dev/null
@@ -1,7 +0,0 @@
-{%- from "kubernetes/map.jinja" import pool with context -%}
-{%- if pool.get('service', {})|length > 0 %}
-{%- set service_grains = {'kubernetes': {'service': pool.get('service', {}).get('local', {})}} -%}
-{% else %}
-{%- set service_grains = {'kubernetes': {}} -%}
-{%- endif %}
-{{ service_grains|yaml(False) }}
diff --git a/kubernetes/map.jinja b/kubernetes/map.jinja
index 594b50b..0b3d92e 100644
--- a/kubernetes/map.jinja
+++ b/kubernetes/map.jinja
@@ -2,12 +2,12 @@
 
 {% set common = salt['grains.filter_by']({
     'Debian': {
-        'pkgs': ['curl', 'git', 'apt-transport-https', 'python-apt', 'nfs-common', 'socat', 'netcat-traditional', 'openssl'],
+        'pkgs': ['curl', 'git', 'apt-transport-https', 'python-apt', 'socat', 'openssl'],
         'services': [],
         'version': _version|float,
     },
     'RedHat': {
-        'pkgs': ['curl', 'git', 'apt-transport-https', 'python-apt', 'nfs-common', 'socat', 'netcat-traditional', 'python'],
+        'pkgs': ['curl', 'git', 'socat', 'python', 'openssl'],
         'services': [],
         'version': _version|float,
     },
@@ -20,7 +20,7 @@
     },
     'RedHat': {
         'pkgs': [],
-        'services': [],
+        'services': ['kube-apiserver','kube-scheduler','kube-controller-manager'],
     },
 }, merge=salt['pillar.get']('kubernetes:master')) %}
 
@@ -31,18 +31,18 @@
     },
     'RedHat': {
         'pkgs': [],
-        'services': [],
+        'services': ['kube-proxy'],
     },
 }, merge=salt['pillar.get']('kubernetes:pool')) %}
 
 {% set control = salt['grains.filter_by']({
     'Debian': {
         'service': {},
-        'config_type': "default",
+        'config_type': 'default',
     },
     'RedHat': {
         'service': {},
-        'config_type': "default",
+        'config_type': 'default',
     },
 }, merge=salt['pillar.get']('kubernetes:control')) %}
 
diff --git a/kubernetes/meta/prometheus.yml b/kubernetes/meta/prometheus.yml
index 1e9edd3..996405c 100644
--- a/kubernetes/meta/prometheus.yml
+++ b/kubernetes/meta/prometheus.yml
@@ -1,29 +1,25 @@
 {%- from "kubernetes/map.jinja" import master with context %}
 {%- from "kubernetes/map.jinja" import pool with context %}
 
+{%- set network = {} %}
 {%- if pool.get('enabled', False) %}
-{% set network = pool.get('network', []) %}
-{%- else %}
-{%- if master.get('enabled', False) %}
-{% set network = master.get('network', []) %}
-{% endif %}
-{% endif %}
+{%- set network = pool.get('network', {}) %}
+{%- else if master.get('enabled', False) %}
+{%- set network = master.get('network', {}) %}
+{%- endif %}
 
 server:
-{%- if network is defined and network.get('engine', None) == 'calico' %}
+{%- if network.get('engine', '') == 'calico' and network.get('prometheus', {}).get('enabled', False) %}
   target:
     static:
       calico:
         endpoint:
-         {%- if pool.get('enabled', False) and pool.network.get('prometheus', {}).get('enabled') %}
-          - address: {{ pool.network.prometheus.get('address', pool.address) }}
-            port: {{ pool.network.prometheus.get('port', 9091) }}
-         {%- else %}
-           {%- if master.get('enabled', False) and master.network.get('prometheus', {}).get('enabled') %}
-          - address: {{ master.network.prometheus.get('address', master.address) }}
-            port: {{ master.network.prometheus.get('port', 9091) }}
-           {%- endif %}
-         {%- endif %}
+{%- if pool.get('enabled', False) %}
+          - address: {{ network.prometheus.get('address', pool.address) }}
+{%- else %}
+          - address: {{ network.prometheus.get('address', master.address) }}
+{%- endif %}
+            port: {{ network.prometheus.get('port', 9091) }}
 {%- endif %}
   recording:
     cluster_namespace_controller_pod_container:spec_memory_limit_bytes:
@@ -189,7 +185,7 @@
         summary: 'Kubernetes service {{ $labels.process_name }} is down'
         description: 'Kubernetes service {{ $labels.process_name }} is down on node {{ $labels.host }}'
       {% endraw %}
-{%- if network is defined and network.get('engine', None) == 'calico' %}
+{%- if network.get('engine', '') == 'calico' %}
     ProcstatRunningCalico:
       if: >-
         procstat_running{process_name=~"calico-felix|bird|bird6|confd"} == 0
diff --git a/kubernetes/meta/salt.yml b/kubernetes/meta/salt.yml
new file mode 100644
index 0000000..3f06b43
--- /dev/null
+++ b/kubernetes/meta/salt.yml
@@ -0,0 +1,11 @@
+grain:
+  kubernetes:
+    {%- if pillar.kubernetes.pool is defined %}
+      {%- from "kubernetes/map.jinja" import pool with context %}
+      {%- if pool.get('service', {})|length > 0 %}
+        {%- set service_grains = {'kubernetes': {'service': pool.get('service', {}).get('local', {})}} -%}
+      {% else %}
+        {%- set service_grains = {'kubernetes': {}} -%}
+      {%- endif %}
+    {{ service_grains|yaml(False)|indent(4) }}
+    {%- endif %}
diff --git a/kubernetes/pool/service.sls b/kubernetes/pool/service.sls
index 6abce3c..8529b13 100644
--- a/kubernetes/pool/service.sls
+++ b/kubernetes/pool/service.sls
@@ -5,20 +5,4 @@
 include:
 - kubernetes._common
 
-kubernetes_pool_container_grains_dir:
-  file.directory:
-  - name: /etc/salt/grains.d
-  - mode: 700
-  - makedirs: true
-  - user: root
-
-kubernetes_pool_container_grain:
-  file.managed:
-  - name: /etc/salt/grains.d/kubernetes
-  - source: salt://kubernetes/files/kubernetes.grain
-  - template: jinja
-  - mode: 600
-  - require:
-    - file: kubernetes_pool_container_grains_dir
-
-{%- endif %}
\ No newline at end of file
+{%- endif %}