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 %}