Browse Source

Merge pull request #921 from sakshiarora13/timezone

Issue#913: iDRAC telemetry data reflects in future timestamps on grafana
Sujit Jadhav 3 years ago
parent
commit
f9284d1f73

+ 2 - 0
control_plane/input_params/base_vars.yml

@@ -94,6 +94,8 @@ awx_organization: "DellEMC"
 
 ### Usage: webui_grafana ###
 # At this location grafana persistent volume will be created.
+# If using telemetry, all telemetry related files will also be stored and
+# both timescale and mysql databases will be mounted to this location.
 mount_location: /opt/omnia/
 
 ### Usage: provision_cobbler, provision_idrac ###

+ 0 - 4
telemetry/input_params/base_vars.yml

@@ -13,10 +13,6 @@
 # limitations under the License.
 ---
 
-# At this location all telemetry related files will be stored and
-# both timescale and mysql databases will be mounted.
-mount_location: /opt/omnia/
-
 # This variable is used to enable iDRAC telemetry support and visualizations
 # Accepted values:  "true" or "false"
 idrac_telemetry_support: true

telemetry/input_params/login_vars.yml → telemetry/input_params/telemetry_login_vars.yml


+ 2 - 2
telemetry/roles/common/tasks/main.yml

@@ -16,10 +16,10 @@
 - name: Check pre-requisites for telemetry and visualizations
   include_tasks: pre-requisites.yml
 
-- name: Validate base_vars.yml
+- name: Validate telemetry_base_vars.yml
   include_tasks: validate_base_vars.yml
 
-- name: Validate login_vars.yml
+- name: Validate telemetry_login_vars.yml
   include_tasks: validate_login_vars.yml
 
 - name: Create k8s secrets for database credentials

+ 4 - 4
telemetry/roles/common/tasks/pre-requisites.yml

@@ -50,22 +50,22 @@
 
   when: os_supported_leap not in mgmt_os
 
-- name: Check that the base_vars.yml exists
+- name: Check that the telemetry_base_vars.yml exists
   stat:
     path: "{{ base_vars_file }}"
   register: stat_result
 
-- name: Fail if base_vars.yml file doesn't exist
+- name: Fail if telemetry_base_vars.yml file doesn't exist
   fail:
     msg: "{{ fail_msg_base_vars }}"
   when: not stat_result.stat.exists
 
-- name: Check that telemetry/login_vars.yml exists
+- name: Check that telemetry_login_vars.yml exists
   stat:
     path: "{{ login_vars_file }}"
   register: stat_result
 
-- name: Fail if telemetry/login_vars.yml file doesn't exist
+- name: Fail if telemetry_login_vars.yml file doesn't exist
   fail:
     msg: "{{ fail_msg_login_vars }}"
   when: not stat_result.stat.exists

+ 4 - 16
telemetry/roles/common/tasks/validate_base_vars.yml

@@ -13,25 +13,13 @@
 # limitations under the License.
 ---
 
-- name: Include telemetry base_vars.yml file
+- name: Include telemetry_base_vars.yml file
   include_vars: "{{ base_vars_file }}"
   no_log: true
 
-- name: Create mount directory if it doesn't exist
-  block:
-    - name: Checking directory
-      stat:
-        path: "{{ mount_location }}"
-      register: stat_result
-
-    - name: Creating directory
-      file:
-        path: "{{ mount_location }}"
-        state: directory
-        mode: "{{ folder_perm }}"
-        group: root
-        owner: root
-      when: not stat_result.stat.exists
+- name: Include control_plane base_vars.yml file
+  include_vars: "{{ control_plane_base_vars_file }}"
+  no_log: true
 
 - name: Assert idrac telemetry support
   assert:

+ 6 - 6
telemetry/roles/common/tasks/validate_login_vars.yml

@@ -13,25 +13,25 @@
 # limitations under the License.
 ---
 
-# Include telemetry/login_vars.yml
-- name: Check login_vars file is encrypted
+# Include telemetry_login_vars.yml
+- name: Check telemetry_login_vars file is encrypted
   command: cat {{ login_vars_file }}
   changed_when: false
   register: config_content
   no_log: true
 
-- name: Decrpyt login_vars.yml
+- name: Decrpyt telemetry_login_vars.yml
   command: >-
     ansible-vault decrypt {{ login_vars_file }}
     --vault-password-file {{ vault_filename }}
   changed_when: false
   when: "'$ANSIBLE_VAULT;' in config_content.stdout"
 
-- name: Include variable file telemetry/login_vars.yml
+- name: Include variable file telemetry_login_vars.yml
   include_vars: "{{ login_vars_file }}"
   no_log: true
 
-- name: Assert usernames and passwords in login_vars.yml
+- name: Assert usernames and passwords in telemetry_login_vars.yml
   block:
   - name: Assert timescaledb user name
     assert:
@@ -84,7 +84,7 @@
     no_log: true
 
   rescue:
-    - name: Validation issue in login/vars.yml
+    - name: Validation issue in telemetry_login_vars.yml
       fail:
         msg: "{{ login_vars_fail_msg }}"
 

+ 6 - 5
telemetry/roles/common/vars/main.yml

@@ -19,12 +19,13 @@ control_plane_installation_required: "AWX and grafana installation through contr
 os_supported_leap: "leap"
 selinux_warning: "Warning! SELinux status is disabled by user. No SELinux policy is loaded"
 
-base_vars_file: "{{ role_path }}/../../input_params/base_vars.yml"
-login_vars_file: "{{ role_path }}/../../input_params/login_vars.yml"
+base_vars_file: "{{ role_path }}/../../input_params/telemetry_base_vars.yml"
+login_vars_file: "{{ role_path }}/../../input_params/telemetry_login_vars.yml"
+control_plane_base_vars_file: "{{ role_path }}/../../../control_plane/input_params/base_vars.yml"
 ctrl_plane_login_vars_filename: "{{ role_path }}/../../../control_plane/input_params/login_vars.yml"
 
-fail_msg_base_vars: "telemetry/base_vars.yml file doesn't exist."
-fail_msg_login_vars: "telemetry/login_vars.yml file doesn't exist."
+fail_msg_base_vars: "telemetry_base_vars.yml file doesn't exist."
+fail_msg_login_vars: "telemetry_login_vars.yml file doesn't exist."
 ctrl_plane_fail_msg_login_vars: "control_plane/login_vars.yml file doesn't exist"
 pip_packages:
   - openshift
@@ -56,7 +57,7 @@ mysqldb_fail_msg: "MySQL DB name should have minimum length of 2"
 
 # Usage: validate_login_vars.yml
 vault_filename: "{{ role_path }}/../../input_params/.login_vault_key"
-login_vars_fail_msg: "Usernames and passwords in input_params/login_vars.yml should have minimum length 2"
+login_vars_fail_msg: "Usernames and passwords in input_params/telemetry_login_vars.yml should have minimum length 2"
 
 ctrl_plane_login_vault_filename: "{{ role_path }}/../../../control_plane/input_params/.login_vault_key"
 min_length_grafana: 5

+ 7 - 7
telemetry/roles/idrac_telemetry/tasks/initiate_telemetry.yml

@@ -15,8 +15,8 @@
 
 # Include and initialize variables
 
-- name: Include telemetry base_vars.yml
-  include_vars: "{{ playbook_dir }}/input_params/base_vars.yml"
+- name: Include telemetry_base_vars.yml
+  include_vars: "{{ playbook_dir }}/input_params/telemetry_base_vars.yml"
   no_log: true
 
 - name: Initiate telemetry process if idrac_support is enabled
@@ -42,7 +42,7 @@
       idrac_telemetry_scripting_folder: iDRAC-Telemetry-Scripting
       idrac_login_input_filename: "{{ playbook_dir }}/../control_plane/input_params/login_vars.yml"
       idrac_login_vault_filename: "{{ playbook_dir }}/../control_plane/input_params/.login_vault_key"
-      login_vars_file: "{{ playbook_dir }}/input_params/login_vars.yml"
+      login_vars_file: "{{ playbook_dir }}/input_params/telemetry_login_vars.yml"
       vault_filename: "{{ playbook_dir }}/input_params/.login_vault_key"
       min_firmware_version_reqd: 3
       datacenter_license: false
@@ -167,20 +167,20 @@
 # Get mysqldb credentials
   - name: Get mysqldb credentials
     block:
-    - name: Check login_vars file is encrypted
+    - name: Check telemetry_login_vars file is encrypted
       command: cat {{ login_vars_file }}
       changed_when: false
       register: config_content
       # no_log: true
 
-    - name: Decrpyt login_vars.yml
+    - name: Decrpyt telemetry_login_vars.yml
       command: >-
         ansible-vault decrypt {{ login_vars_file }}
         --vault-password-file {{ vault_filename }}
       changed_when: false
       when: "'$ANSIBLE_VAULT;' in config_content.stdout"
 
-    - name: Include variable file telemetry/login_vars.yml
+    - name: Include variable file telemetry_login_vars.yml
       include_vars: "{{ login_vars_file }}"
       no_log: true
 
@@ -190,7 +190,7 @@
         --vault-password-file {{ vault_filename }}
       changed_when: false
 
-    - name: Update login_vars.yml permission
+    - name: Update telemetry_login_vars.yml permission
       file:
         path: "{{ login_vars_file }}"
         mode: "{{ file_perm }}"

+ 7 - 0
telemetry/roles/timescaledb/tasks/timescaledb_pod.yml

@@ -43,6 +43,11 @@
                 persistentVolumeClaim:
                   claimName: "{{ pvc_name }}"
 
+              - name: timezone
+                hostPath:
+                  path: "{{ zoneinfo_dir + timezone }}"
+                  type: File
+
             containers:
               - name: timescale
                 image: timescale/timescaledb:latest-pg12
@@ -52,6 +57,8 @@
                     name: telemetry-reference-tools
                   - mountPath: /var/lib/postgresql/
                     name: timescaledb-pvc
+                  - mountPath: /etc/localtime
+                    name: timezone
                 workingDir: /go/src/github.com/telemetry-reference-tools
                 env:
                   - name: node.name

+ 1 - 0
telemetry/roles/timescaledb/vars/main.yml

@@ -24,3 +24,4 @@ timescaledb_container_port: 5432
 retries: 10
 delay: 10
 reference_tools_stable_commit: "0016fcb"
+zoneinfo_dir: "/usr/share/zoneinfo/"