|
@@ -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
|