summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDiego Castro <spinolacastro@gmail.com>2015-08-04 11:10:35 -0300
committerDiego Castro <spinolacastro@gmail.com>2015-08-04 11:10:35 -0300
commitb497f7a2a77c3ef1434a5f0bd11fccf9d81b44aa (patch)
tree012b76f4c8b828136b076f7dccbace9fb32e1016
parentbec613a2237df25164de03524414224779fcab4c (diff)
downloadopenshift-b497f7a2a77c3ef1434a5f0bd11fccf9d81b44aa.tar.gz
openshift-b497f7a2a77c3ef1434a5f0bd11fccf9d81b44aa.tar.bz2
openshift-b497f7a2a77c3ef1434a5f0bd11fccf9d81b44aa.tar.xz
openshift-b497f7a2a77c3ef1434a5f0bd11fccf9d81b44aa.zip
Fix node labeling. Issue #305
-rw-r--r--filter_plugins/oo_filters.py11
-rw-r--r--playbooks/common/openshift-node/config.yml5
-rw-r--r--roles/openshift_manage_node/tasks/main.yml7
3 files changed, 22 insertions, 1 deletions
diff --git a/filter_plugins/oo_filters.py b/filter_plugins/oo_filters.py
index 47033a88e..9c263f0dd 100644
--- a/filter_plugins/oo_filters.py
+++ b/filter_plugins/oo_filters.py
@@ -130,6 +130,16 @@ class FilterModule(object):
rval.append("%s%s%s" % (item['key'], joiner, item['value']))
return rval
+
+ @staticmethod
+ def oo_combine_dict(data, in_joiner='=', out_joiner=' '):
+ '''Take a dict in the form of { 'key': 'value', 'key': 'value' } and
+ arrange them as a string 'key=value key=value'
+ '''
+ if not issubclass(type(data), dict):
+ raise errors.AnsibleFilterError("|failed expects first param is a dict")
+
+ return out_joiner.join([ in_joiner.join([k, v]) for k, v in data.items() ])
@staticmethod
def oo_ami_selector(data, image_name):
@@ -309,6 +319,7 @@ class FilterModule(object):
"oo_ami_selector": self.oo_ami_selector,
"oo_ec2_volume_definition": self.oo_ec2_volume_definition,
"oo_combine_key_value": self.oo_combine_key_value,
+ "oo_combine_dict": self.oo_combine_dict,
"oo_split": self.oo_split,
"oo_filter_list": self.oo_filter_list,
"oo_parse_heat_stack_outputs": self.oo_parse_heat_stack_outputs
diff --git a/playbooks/common/openshift-node/config.yml b/playbooks/common/openshift-node/config.yml
index 6ef375bbb..122cfbf92 100644
--- a/playbooks/common/openshift-node/config.yml
+++ b/playbooks/common/openshift-node/config.yml
@@ -126,9 +126,12 @@
- name: Set scheduleability
hosts: oo_first_master
vars:
+ openshift_node_labels: "{{ hostvars
+ | oo_select_keys(groups['oo_nodes_to_config'])
+ | oo_collect('openshift.node.labels') }}"
openshift_nodes: "{{ hostvars
| oo_select_keys(groups['oo_nodes_to_config'])
- | oo_collect('openshift.common.hostname') }}"
+ | oo_collect('openshift.common.hostname') }}"
openshift_unscheduleable_nodes: "{{ hostvars | oo_select_keys(groups['oo_nodes_to_config'] | default([]))
| oo_collect('openshift.common.hostname', {'openshift_scheduleable': False}) }}"
pre_tasks:
diff --git a/roles/openshift_manage_node/tasks/main.yml b/roles/openshift_manage_node/tasks/main.yml
index d17f3f532..e64d6e713 100644
--- a/roles/openshift_manage_node/tasks/main.yml
+++ b/roles/openshift_manage_node/tasks/main.yml
@@ -16,3 +16,10 @@
command: >
{{ openshift.common.admin_binary }} manage-node {{ item }} --schedulable=true
with_items: openshift_scheduleable_nodes
+
+- name: Tag schedulable nodes
+ command: >
+ {{ openshift.common.client_binary }} label --overwrite node {{ item.0 }} {{ item.1 | oo_combine_dict }}
+ with_nested:
+ - openshift_scheduleable_nodes
+ - openshift_node_labels \ No newline at end of file