From 8fd0bcfaa48b8fb62585dc96aa87741c58afe5cd Mon Sep 17 00:00:00 2001
From: Russell Teague <rteague@redhat.com>
Date: Wed, 8 Feb 2017 09:26:51 -0500
Subject: Modify playbooks to use oadm_manage_node module

---
 roles/openshift_manage_node/meta/main.yml  | 15 +++++++
 roles/openshift_manage_node/tasks/main.yml | 69 +++++++++++-------------------
 2 files changed, 41 insertions(+), 43 deletions(-)
 create mode 100644 roles/openshift_manage_node/meta/main.yml

(limited to 'roles/openshift_manage_node')

diff --git a/roles/openshift_manage_node/meta/main.yml b/roles/openshift_manage_node/meta/main.yml
new file mode 100644
index 000000000..d90cd28cf
--- /dev/null
+++ b/roles/openshift_manage_node/meta/main.yml
@@ -0,0 +1,15 @@
+---
+galaxy_info:
+  author: OpenShift Red Hat
+  description: OpenShift Manage Node
+  company: Red Hat, Inc.
+  license: Apache License, Version 2.0
+  min_ansible_version: 2.2
+  platforms:
+  - name: EL
+    versions:
+    - 7
+  categories:
+  - cloud
+dependencies:
+- role: lib_openshift
diff --git a/roles/openshift_manage_node/tasks/main.yml b/roles/openshift_manage_node/tasks/main.yml
index c06758833..73f55df12 100644
--- a/roles/openshift_manage_node/tasks/main.yml
+++ b/roles/openshift_manage_node/tasks/main.yml
@@ -1,23 +1,4 @@
 ---
-- name: Create temp directory for kubeconfig
-  command: mktemp -d /tmp/openshift-ansible-XXXXXX
-  register: mktemp
-  changed_when: False
-  delegate_to: "{{ openshift_master_host }}"
-  run_once: true
-
-- set_fact:
-    openshift_manage_node_kubeconfig: "{{ mktemp.stdout }}/admin.kubeconfig"
-  delegate_to: "{{ openshift_master_host }}"
-  run_once: true
-
-- name: Copy the admin client config(s)
-  command: >
-    cp {{ openshift.common.config_base }}/master/admin.kubeconfig {{ openshift_manage_node_kubeconfig }}
-  changed_when: False
-  delegate_to: "{{ openshift_master_host }}"
-  run_once: true
-
 # Necessary because when you're on a node that's also a master the master will be
 # restarted after the node restarts docker and it will take up to 60 seconds for
 # systemd to start the master again
@@ -46,38 +27,40 @@
   run_once: true
 
 - name: Wait for Node Registration
-  command: >
-    {{ hostvars[openshift_master_host].openshift.common.client_binary }} get node {{ openshift.node.nodename }}
-    --config={{ openshift_manage_node_kubeconfig }}
-    -n default
-  register: omd_get_node
-  until: omd_get_node.rc == 0
+  oc_obj:
+    name: "{{ openshift.node.nodename }}"
+    kind: node
+    state: list
+    kubeconfig: "{{ openshift.common.config_base }}/master/admin.kubeconfig"
+  register: get_node
+  until: "'metadata' in get_node.results.results[0]"
   retries: 50
   delay: 5
-  changed_when: false
   when: "'nodename' in openshift.node"
   delegate_to: "{{ openshift_master_host }}"
 
 - name: Set node schedulability
-  command: >
-    {{ hostvars[openshift_master_host].openshift.common.client_binary }} adm manage-node {{ openshift.node.nodename }} --schedulable={{ 'true' if openshift.node.schedulable | bool else 'false' }}
-    --config={{ openshift_manage_node_kubeconfig }}
-    -n default
+  oadm_manage_node:
+    node: "{{ openshift.node.nodename | lower }}"
+    schedulable: "{{ 'true' if openshift.node.schedulable | bool else 'false' }}"
+    kubeconfig: "{{ openshift.common.config_base }}/master/admin.kubeconfig"
+  retries: 10
+  delay: 5
+  register: node_schedulable
+  until: node_schedulable|succeeded
   when: "'nodename' in openshift.node"
   delegate_to: "{{ openshift_master_host }}"
 
 - name: Label nodes
-  command: >
-    {{ hostvars[openshift_master_host].openshift.common.client_binary }} label --overwrite node {{ openshift.node.nodename }} {{ openshift.node.labels | oo_combine_dict  }}
-    --config={{ openshift_manage_node_kubeconfig }}
-    -n default
-  when: "'nodename' in openshift.node and 'labels' in openshift.node and openshift.node.labels != {}"
-  delegate_to: "{{ openshift_master_host }}"
-
-- name: Delete temp directory
-  file:
-    name: "{{ mktemp.stdout }}"
-    state: absent
-  changed_when: False
+  oc_label:
+    name: "{{ openshift.node.nodename }}"
+    kind: node
+    state: add
+    labels: "{{ openshift.node.labels | oo_dict_to_list_of_dict }}"
+    kubeconfig: "{{ openshift.common.config_base }}/master/admin.kubeconfig"
+    namespace: default
+  when:
+    - "'nodename' in openshift.node"
+    - "'labels' in openshift.node"
+    - openshift.node.labels != {}
   delegate_to: "{{ openshift_master_host }}"
-  run_once: true
-- 
cgit v1.2.3