From 418b742c365ef8dce4e14f9486ea658495029df3 Mon Sep 17 00:00:00 2001
From: Zohar Galor <zgalor@redhat.com>
Date: Tue, 19 Sep 2017 15:02:15 +0300
Subject: Fix prometheus role nfs

Allow for external or internal nfs.
use facts as used for logging and metrics.
Update prometheus-alertmanager image to v0.9.1
---
 roles/openshift_prometheus/defaults/main.yaml      | 34 ++++-------------
 .../files/openshift_prometheus.exports             |  3 --
 roles/openshift_prometheus/tasks/create_pvs.yaml   | 36 ------------------
 .../tasks/install_prometheus.yaml                  |  9 -----
 roles/openshift_prometheus/tasks/nfs.yaml          | 44 ----------------------
 .../templates/prom-pv-alertbuffer.yml.j2           | 15 --------
 .../templates/prom-pv-alertmanager.yml.j2          | 15 --------
 .../templates/prom-pv-server.yml.j2                | 15 --------
 8 files changed, 7 insertions(+), 164 deletions(-)
 delete mode 100644 roles/openshift_prometheus/files/openshift_prometheus.exports
 delete mode 100644 roles/openshift_prometheus/tasks/create_pvs.yaml
 delete mode 100644 roles/openshift_prometheus/tasks/nfs.yaml
 delete mode 100644 roles/openshift_prometheus/templates/prom-pv-alertbuffer.yml.j2
 delete mode 100644 roles/openshift_prometheus/templates/prom-pv-alertmanager.yml.j2
 delete mode 100644 roles/openshift_prometheus/templates/prom-pv-server.yml.j2

(limited to 'roles/openshift_prometheus')

diff --git a/roles/openshift_prometheus/defaults/main.yaml b/roles/openshift_prometheus/defaults/main.yaml
index 5aa8aecec..ab3d4e31e 100644
--- a/roles/openshift_prometheus/defaults/main.yaml
+++ b/roles/openshift_prometheus/defaults/main.yaml
@@ -10,50 +10,30 @@ openshift_prometheus_node_selector: {"region":"infra"}
 # images
 openshift_prometheus_image_proxy: "openshift/oauth-proxy:v1.0.0"
 openshift_prometheus_image_prometheus: "openshift/prometheus:v2.0.0-dev"
-openshift_prometheus_image_alertmanager: "openshift/prometheus-alertmanager:dev"
+openshift_prometheus_image_alertmanager: "openshift/prometheus-alertmanager:v0.9.1"
 openshift_prometheus_image_alertbuffer: "openshift/prometheus-alert-buffer:v0.0.1"
 
 # additional prometheus rules file
 openshift_prometheus_additional_rules_file: null
 
-# All the required exports
-openshift_prometheus_pv_exports:
-  - prometheus
-  - prometheus-alertmanager
-  - prometheus-alertbuffer
-# PV template files and their created object names
-openshift_prometheus_pv_data:
-  - pv_name: prometheus
-    pv_template: prom-pv-server.yml
-    pv_label: Prometheus Server PV
-  - pv_name: prometheus-alertmanager
-    pv_template: prom-pv-alertmanager.yml
-    pv_label: Prometheus Alertmanager PV
-  - pv_name: prometheus-alertbuffer
-    pv_template: prom-pv-alertbuffer.yml
-    pv_label: Prometheus Alert Buffer PV
-
-# Hostname/IP of the NFS server. Currently defaults to first master
-openshift_prometheus_nfs_server: "{{ groups.nfs.0 }}"
-
 # storage
 openshift_prometheus_storage_type: pvc
 openshift_prometheus_pvc_name: prometheus
-openshift_prometheus_pvc_size: 10G
+openshift_prometheus_pvc_size: "{{ openshift_prometheus_storage_volume_size | default('10Gi') }}"
 openshift_prometheus_pvc_access_modes: [ReadWriteOnce]
-openshift_prometheus_pvc_pv_selector: {}
+openshift_prometheus_pvc_pv_selector: "{{ openshift_prometheus_storage_labels | default('') }}"
 
 openshift_prometheus_alertmanager_storage_type: pvc
 openshift_prometheus_alertmanager_pvc_name: prometheus-alertmanager
-openshift_prometheus_alertmanager_pvc_size: 10G
+openshift_prometheus_alertmanager_pvc_size: "{{ openshift_prometheus_alertmanager_storage_volume_size | default('10Gi') }}"
 openshift_prometheus_alertmanager_pvc_access_modes: [ReadWriteOnce]
-openshift_prometheus_alertmanager_pvc_pv_selector: {}
+openshift_prometheus_alertmanager_pvc_pv_selector: "{{ openshift_prometheus_alertmanager_storage_labels | default('') }}"
 
 openshift_prometheus_alertbuffer_storage_type: pvc
 openshift_prometheus_alertbuffer_pvc_name: prometheus-alertbuffer
-openshift_prometheus_alertbuffer_pvc_size: 10G
+openshift_prometheus_alertbuffer_pvc_size: "{{ openshift_prometheus_alertbuffer_storage_volume_size | default('10Gi') }}"
 openshift_prometheus_alertbuffer_pvc_access_modes: [ReadWriteOnce]
-openshift_prometheus_alertbuffer_pvc_pv_selector: {}
+openshift_prometheus_alertbuffer_pvc_pv_selector: "{{ openshift_prometheus_alertbuffer_storage_labels | default('') }}"
 
 # container resources
 openshift_prometheus_cpu_limit: null
diff --git a/roles/openshift_prometheus/files/openshift_prometheus.exports b/roles/openshift_prometheus/files/openshift_prometheus.exports
deleted file mode 100644
index 3ccedb1fd..000000000
--- a/roles/openshift_prometheus/files/openshift_prometheus.exports
+++ /dev/null
@@ -1,3 +0,0 @@
-/exports/prometheus *(rw,no_root_squash,no_wdelay)
-/exports/prometheus-alertmanager *(rw,no_root_squash,no_wdelay)
-/exports/prometheus-alertbuffer *(rw,no_root_squash,no_wdelay)
diff --git a/roles/openshift_prometheus/tasks/create_pvs.yaml b/roles/openshift_prometheus/tasks/create_pvs.yaml
deleted file mode 100644
index 4e79da05f..000000000
--- a/roles/openshift_prometheus/tasks/create_pvs.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
----
-# Check for existance and then conditionally:
-# - evaluate templates
-# - PVs
-#
-# These tasks idempotently create required Prometheus PV objects. Do not
-# call this file directly. This file is intended to be ran as an
-# include that has a 'with_items' attached to it. Hence the use below
-# of variables like "{{ item.pv_label }}"
-
-- name: "Check if the {{ item.pv_label }} template has been created already"
-  oc_obj:
-    namespace: "{{ openshift_prometheus_namespace }}"
-    state: list
-    kind: pv
-    name: "{{ item.pv_name }}"
-  register: prom_pv_check
-
-# Skip all of this if the PV already exists
-- block:
-    - name: "Ensure the {{ item.pv_label }} template is evaluated"
-      template:
-        src: "{{ item.pv_template }}.j2"
-        dest: "{{ tempdir }}/templates/{{ item.pv_template }}"
-
-    - name: "Ensure {{ item.pv_label }} is created"
-      oc_obj:
-        namespace: "{{ openshift_prometheus_namespace }}"
-        kind: pv
-        name: "{{ item.pv_name }}"
-        state: present
-        delete_after: True
-        files:
-          - "{{ tempdir }}/templates/{{ item.pv_template }}"
-  when:
-    - not prom_pv_check.results.results.0
diff --git a/roles/openshift_prometheus/tasks/install_prometheus.yaml b/roles/openshift_prometheus/tasks/install_prometheus.yaml
index a9bce2fb1..cb75eedca 100644
--- a/roles/openshift_prometheus/tasks/install_prometheus.yaml
+++ b/roles/openshift_prometheus/tasks/install_prometheus.yaml
@@ -54,15 +54,6 @@
     resource_name: cluster-reader
     user: "system:serviceaccount:{{ openshift_prometheus_namespace }}:prometheus"
 
-
-######################################################################
-# NFS
-# In the case that we are not running on a cloud provider, volumes must be statically provisioned
-
-- include: nfs.yaml
-  when: not (openshift_cloudprovider_kind is defined and (openshift_cloudprovider_kind == 'aws' or openshift_cloudprovider_kind == 'gce'))
-
-
 # create prometheus and alerts services
 # TODO join into 1 task with loop
 - name: Create prometheus service
diff --git a/roles/openshift_prometheus/tasks/nfs.yaml b/roles/openshift_prometheus/tasks/nfs.yaml
deleted file mode 100644
index 0b45f2cee..000000000
--- a/roles/openshift_prometheus/tasks/nfs.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
----
-# Tasks to statically provision NFS volumes
-# Include if not using dynamic volume provisioning
-- name: Ensure the /exports/ directory exists
-  file:
-    path: /exports/
-    state: directory
-    mode: 0755
-    owner: root
-    group: root
-
-- name: Ensure the prom-pv0X export directories exist
-  file:
-    path: "/exports/{{ item }}"
-    state: directory
-    mode: 0777
-    owner: nfsnobody
-    group: nfsnobody
-  with_items: "{{ openshift_prometheus_pv_exports }}"
-
-- name: Ensure the NFS exports for Prometheus PVs exist
-  copy:
-    src: openshift_prometheus.exports
-    dest: /etc/exports.d/openshift_prometheus.exports
-  register: nfs_exports_updated
-
-- name: Ensure the NFS export table is refreshed if exports were added
-  command: exportfs -ar
-  when:
-    - nfs_exports_updated.changed
-
-
-######################################################################
-# Create the required Prometheus PVs. Check out these online docs if you
-# need a refresher on includes looping with items:
-# * http://docs.ansible.com/ansible/playbooks_loops.html#loops-and-includes-in-2-0
-# * http://stackoverflow.com/a/35128533
-#
-# TODO: Handle the case where a PV template is updated in
-# openshift-ansible and the change needs to be landed on the managed
-# cluster.
-
-- include: create_pvs.yaml
-  with_items: "{{ openshift_prometheus_pv_data }}"
diff --git a/roles/openshift_prometheus/templates/prom-pv-alertbuffer.yml.j2 b/roles/openshift_prometheus/templates/prom-pv-alertbuffer.yml.j2
deleted file mode 100644
index 55a5e19c3..000000000
--- a/roles/openshift_prometheus/templates/prom-pv-alertbuffer.yml.j2
+++ /dev/null
@@ -1,15 +0,0 @@
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: prometheus-alertbuffer
-  labels:
-    storage: prometheus-alertbuffer
-spec:
-  capacity:
-    storage: 15Gi
-  accessModes:
-    - ReadWriteOnce
-  nfs:
-    path: /exports/prometheus-alertbuffer
-    server: {{ openshift_prometheus_nfs_server }}
-  persistentVolumeReclaimPolicy: Retain
diff --git a/roles/openshift_prometheus/templates/prom-pv-alertmanager.yml.j2 b/roles/openshift_prometheus/templates/prom-pv-alertmanager.yml.j2
deleted file mode 100644
index 4ee518735..000000000
--- a/roles/openshift_prometheus/templates/prom-pv-alertmanager.yml.j2
+++ /dev/null
@@ -1,15 +0,0 @@
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: prometheus-alertmanager
-  labels:
-    storage: prometheus-alertmanager
-spec:
-  capacity:
-    storage: 15Gi
-  accessModes:
-    - ReadWriteOnce
-  nfs:
-    path: /exports/prometheus-alertmanager
-    server: {{ openshift_prometheus_nfs_server }}
-  persistentVolumeReclaimPolicy: Retain
diff --git a/roles/openshift_prometheus/templates/prom-pv-server.yml.j2 b/roles/openshift_prometheus/templates/prom-pv-server.yml.j2
deleted file mode 100644
index 933bf0f60..000000000
--- a/roles/openshift_prometheus/templates/prom-pv-server.yml.j2
+++ /dev/null
@@ -1,15 +0,0 @@
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: prometheus
-  labels:
-    storage: prometheus
-spec:
-  capacity:
-    storage: 15Gi
-  accessModes:
-    - ReadWriteOnce
-  nfs:
-    path: /exports/prometheus
-    server: {{ openshift_prometheus_nfs_server }}
-  persistentVolumeReclaimPolicy: Retain
-- 
cgit v1.2.3