Browse Source

Update scheduler predicate/priorities vars

- Introduce additional variables for current scheduler config and default
  values to better determine if the values we are getting are user-defined,
  coming from config or are the default values.
Jason DeTiberus 8 years ago
parent
commit
3094794acf
2 changed files with 16 additions and 20 deletions
  1. 6 2
      roles/openshift_master/vars/main.yml
  2. 10 18
      roles/openshift_master_facts/tasks/main.yml

+ 6 - 2
roles/openshift_master/vars/main.yml

@@ -7,8 +7,12 @@ openshift_master_policy: "{{ openshift_master_config_dir }}/policy.json"
 scheduler_config:
   kind: Policy
   apiVersion: v1
-  predicates: "{{ openshift_master_scheduler_predicates }}"
-  priorities: "{{ openshift_master_scheduler_priorities }}"
+  predicates: "{{ openshift_master_scheduler_predicates
+                  | default(openshift_master_scheduler_current_predicates
+                            | default(openshift_master_scheduler_default_predicates)) }}"
+  priorities: "{{ openshift_master_scheduler_priorities
+                  | default(openshift_master_scheduler_current_priorities
+                            | default(openshift_master_scheduler_default_priorities)) }}"
 
 openshift_master_valid_grant_methods:
 - auto

+ 10 - 18
roles/openshift_master_facts/tasks/main.yml

@@ -83,15 +83,9 @@
     path: "{{ openshift_master_scheduler_conf }}"
   register: scheduler_config_stat
 
-- block:
-  - set_fact:
-      openshift_master_scheduler_predicates: "{{ lookup('openshift_master_facts_default_predicates') }}"
-    when: "{{ openshift_master_scheduler_predicates is not defined }}"
-
-  - set_fact:
-      openshift_master_scheduler_priorities: "{{ lookup('openshift_master_facts_default_priorities') }}"
-    when: "{{ openshift_master_scheduler_priorities is not defined }}"
-  when: "{{ not scheduler_config_stat.stat.exists }}"
+- set_fact:
+    openshift_master_scheduler_default_predicates: "{{ lookup('openshift_master_facts_default_predicates') }}"
+    openshift_master_scheduler_default_priorities: "{{ lookup('openshift_master_facts_default_priorities') }}"
 
 - block:
   - name: Retrieve current scheduler config
@@ -99,16 +93,14 @@
       src: "{{ openshift_master_scheduler_conf }}"
     register: current_scheduler_config
 
-  - fail:
-      msg: "Could not decode scheduler config"
-    when: "{{ (current_scheduler_config.content | b64decode | from_json).apiVersion | default(none) != 'v1' }}"
-
   - set_fact:
-      openshift_master_scheduler_predicates: "{{ (current_scheduler_config.content | b64decode | from_json).predicates }}"
-    when: "{{ openshift_master_scheduler_predicates is not defined }}"
+      openshift_master_scheduler_current_config: "{{ current_scheduler_config.content | b64decode | from_json }}"
 
-  - set_fact:
-      openshift_master_scheduler_priorities: "{{ (current_scheduler_config.content | b64decode | from_json).priorities }}"
-    when: "{{ openshift_master_scheduler_priorities is not defined }}"
+  - fail:
+      msg: "Unknown scheduler config apiVersion {{ openshift_master_scheduler_config.apiVersion }}"
+    when: "{{ openshift_master_scheduler_current_config.apiVersion | default(None) != 'v1' }}"
 
+  - set_fact:
+      openshift_master_scheduler_current_predicates: "{{ openshift_master_scheduler_current_config.predicates }}"
+      openshift_master_scheduler_current_priorities: "{{ openshift_master_scheduler_current_config.priorities }}"
   when: "{{ scheduler_config_stat.stat.exists }}"