Merge "Added & adjusted up to date json dashboard definitions from ceph upstream project. Related-Prod: PROD-35307"
diff --git a/ceph/common.sls b/ceph/common.sls
index 751c0ad..d312704 100644
--- a/ceph/common.sls
+++ b/ceph/common.sls
@@ -18,19 +18,21 @@
 
 {{ common.prefix_dir }}/etc/ceph:
   file.directory:
+  {% if not common.get('container_mode', False) %}
   - user: ceph
   - group: ceph
+  {%- endif %}
   - mode: 755
   - makedirs: True
 
 common_config:
   file.managed:
   - name: {{ common.prefix_dir }}/etc/ceph/{{ ceph_cluster }}.conf
-  - user: ceph
-  - group: ceph
   - source: salt://ceph/files/{{ common.version }}/ceph.conf.{{ grains.os_family }}
   - template: jinja
   {% if not common.get('container_mode', False) %}
+  - user: ceph
+  - group: ceph
   - require:
     - pkg: common_packages
   {%- endif %}
diff --git a/ceph/meta/grafana.yml b/ceph/meta/grafana.yml
index 25bf726..5009ec7 100644
--- a/ceph/meta/grafana.yml
+++ b/ceph/meta/grafana.yml
@@ -2,7 +2,7 @@
 
 {%- if common.version is defined %}
 dashboard:
-  {%- if common.version in ['kraken', 'jewel'] %}
+  {%- if common.version in ['kraken', 'jewel'] or common.get('legacy_monitoring',False) %}
   ceph_cluster_prometheus:
     datasource: prometheus
     format: json
diff --git a/ceph/meta/prometheus.yml b/ceph/meta/prometheus.yml
index 2969b6f..0f6a955 100644
--- a/ceph/meta/prometheus.yml
+++ b/ceph/meta/prometheus.yml
@@ -1,7 +1,7 @@
 {%- from "ceph/map.jinja" import common, mon, monitoring, setup with context -%}
 
 {%- if common.version is defined %}
-  {%- if common.version in ['kraken', 'jewel'] -%}
+  {%- if common.version in ['kraken', 'jewel'] or common.get('legacy_monitoring', False) -%}
 
     {%- if (mon is defined and mon.get('enabled')) or (monitoring.cluster_stats.get('enabled') and monitoring.cluster_stats.ceph_user is defined) %}
       {%- raw %}
@@ -156,6 +156,7 @@
   {%- else -%}
 
     {%- if mon is defined and mon.get('enabled') %}
+      {%- set pool_used_space = 'ceph_pool_bytes_used' if common.version in ['luminous'] else 'ceph_pool_stored' -%}
       {%- raw %}
 server:
   recording:
@@ -366,7 +367,7 @@
     CephPool{{pool_name|replace(".", "")|replace("-", "")}}SpaceUsageWarning:
           {%- set threshold = monitoring_pool.pool_space_used_utilization_warning_threshold|default('0.75')|float %}
       if: >-
-        ceph_pool_stored / (ceph_pool_stored + ceph_pool_max_avail) * on(pool_id) group_left(name) ceph_pool_metadata{name="{{pool_name}}"} > {{threshold}}
+        {{pool_used_space}} / ({{pool_used_space}} + ceph_pool_max_avail) * on(pool_id) group_left(name) ceph_pool_metadata{name="{{pool_name}}"} > {{threshold}}
       for: 3m
       labels:
         severity: warning
@@ -377,7 +378,7 @@
     CephPool{{pool_name|replace(".", "")|replace("-", "")}}SpaceUsageCritical:
           {%- set threshold = monitoring_pool.pool_space_used_critical_threshold|default('0.85')|float %}
       if: >-
-        ceph_pool_stored / (ceph_pool_stored + ceph_pool_max_avail) * on(pool_id) group_left(name) ceph_pool_metadata{name="{{pool_name}}"} > {{threshold}}
+        {{pool_used_space}} / ({{pool_used_space}} + ceph_pool_max_avail) * on(pool_id) group_left(name) ceph_pool_metadata{name="{{pool_name}}"} > {{threshold}}
       for: 3m
       labels:
         severity: minor
@@ -390,7 +391,7 @@
       {%- set threshold = monitoring.prediction_threshold %}
       {%- set space_threshold = monitoring_pool.space_threshold %}
       if: >-
-        predict_linear(ceph_pool_stored[{{threshold}}d], {{threshold}} * 86400) * on(pool_id) group_left(name) ceph_pool_metadata{name="{{pool_name}}"} > (ceph_pool_stored + ceph_pool_max_avail) * {{space_threshold}} * on(pool_id) group_left(name) ceph_pool_metadata{name="{{pool_name}}"}
+        predict_linear({{pool_used_space}}[{{threshold}}d], {{threshold}} * 86400) * on(pool_id) group_left(name) ceph_pool_metadata{name="{{pool_name}}"} > ({{pool_used_space}} + ceph_pool_max_avail) * {{space_threshold}} * on(pool_id) group_left(name) ceph_pool_metadata{name="{{pool_name}}"}
       for: 30m
       labels:
         severity: minor
diff --git a/ceph/meta/telegraf.yml b/ceph/meta/telegraf.yml
index 1c0a42e..e80c31d 100644
--- a/ceph/meta/telegraf.yml
+++ b/ceph/meta/telegraf.yml
@@ -1,7 +1,7 @@
 {%- from "ceph/map.jinja" import common, mon, osd, monitoring with context -%}
 
 {%- if common.version is defined %}
-  {%- if common.version in ['kraken', 'jewel'] -%}
+  {%- if common.version in ['kraken', 'jewel'] or common.get('legacy_monitoring', False)  -%}
 
     {%- if mon is defined and mon.get('enabled') %}
 remote_agent:
diff --git a/ceph/setup/keyring.sls b/ceph/setup/keyring.sls
index f9fbbf8..5ba3c5d 100644
--- a/ceph/setup/keyring.sls
+++ b/ceph/setup/keyring.sls
@@ -34,12 +34,16 @@
   - name: "ceph -c /etc/ceph/{{ ceph_cluster }}.conf auth import -i {{ keyring_path }}"
   - onchanges:
     - file: {{ keyring_path }}
+  - require:
+    - file: common_config
 
 ceph_update_caps_for_{{ keyring_client_name }}:
   cmd.run:
   - name: ceph -c /etc/ceph/{{ ceph_cluster }}.conf auth caps client.{{ keyring_client_name }} {%- for cap_name, cap in  keyring.caps.iteritems() %} {{ cap_name }} '{{ cap }}' {%- endfor %}
   - onchanges:
     - file: {{ keyring_path }}
+  - require:
+    - file: common_config
 
               {%- endif %}
 
@@ -49,6 +53,8 @@
   cmd.run:
   - name: ceph -c /etc/ceph/{{ ceph_cluster }}.conf auth get-or-create client.{{ keyring_client_name }} {%- for cap_name, cap in  keyring.caps.iteritems() %} {{ cap_name }} '{{ cap }}' {%- endfor %} > {{ keyring_path }}
   - unless: "test -f {{ keyring_path }}"
+  - require:
+    - file: common_config
 
               {%- if salt['file.file_exists']('/usr/bin/ceph') %}
                 {%- set caps = salt['cmd.shell']('ceph auth list --format json') | load_json %}
@@ -56,9 +62,12 @@
                   {%- if client['entity'] == "client." + keyring_client_name %}
                     {%- for cap_name, cap in  client.caps.iteritems() %}
                       {%- if cap != keyring.caps[cap_name] %}
-ceph_update_caps_for_{{ keyring_client_name }}:
+ceph_update_caps_{{ cap_name }}_for_{{ keyring_client_name }}:
   cmd.run:
-  - name: ceph -c /etc/ceph/{{ ceph_cluster }}.conf auth caps client.{{ keyring_client_name }} {%- for cap_name, cap in  keyring.caps.iteritems() %} {{ cap_name }} '{{ cap }}' {%- endfor %}
+  - name: ceph -c /etc/ceph/{{ ceph_cluster }}.conf auth caps client.{{ keyring_client_name }} {{ cap_name }} '{{ cap }}'
+  - require:
+    - file: common_config
+
                       {%- endif %}
                     {%- endfor %}
                   {%- endif %}