diff options
author | Joel Diaz <jdiaz@redhat.com> | 2017-09-12 19:11:37 +0000 |
---|---|---|
committer | Joel Diaz <jdiaz@redhat.com> | 2017-09-12 19:34:19 +0000 |
commit | 3ebc0b591f9445b8fde65bda3f76666bad2c8ca3 (patch) | |
tree | d707b5da1a13e1ae31d021eab58d534b5211d979 /roles/lib_utils | |
parent | 4acdef4af89bf2ccc43f9643a2e72a969d11ed04 (diff) | |
download | openshift-3ebc0b591f9445b8fde65bda3f76666bad2c8ca3.tar.gz openshift-3ebc0b591f9445b8fde65bda3f76666bad2c8ca3.tar.bz2 openshift-3ebc0b591f9445b8fde65bda3f76666bad2c8ca3.tar.xz openshift-3ebc0b591f9445b8fde65bda3f76666bad2c8ca3.zip |
move (and rename) get_dns_ip filter into openshift_node_facts
Due to a combination of unexpected behavior when resolving filter plugins in Ansible and recent changes to filter_plugins/openshift_node.py, when trying to run a current version of the openshift_node_facts role on a system with an older version of the openshift-ansible-filter-plugins RPM, the role will fail.
File "/usr/share/ansible_plugins/filter_plugins/openshift_node.py", line 30, in get_dns_ip
if bool(hostvars['openshift']['common']['use_dnsmasq']):
KeyError: 'use_dnsmasq'
It's not possible for us to have our current RPM version (presently openshift-ansible-filter-plugins-3.5.120-1.git.0.c60f69a.el7.noarch) and a newer RPM installed and run both current openshift-ansible code and older checked-out/vendored releases (for older clusters/releases).
Since only the openshift_node_facts role uses the get_dns_ip filter, move the functionality into a role-specific filter plugin.
In addition, rename the filter plugin to 'node_get_dns_ip' because Ansible is prefering the get_dns_ip from the RPM (ie /usr/share/ansible_plugins/filter_plugins/openshift_node.py) over the role-specific filter plugin of the same name. Ansile prefers the filter plugins in /usr/share/ansible_plugins/filter_plugins/* even when /etc/ansible/ansible.cfg is set to something like:
filter_plugins = filter_plugins:/usr/share/ansible_plugins/filter_plugins:filter_plugins <--- yes, 'filter_plugins' before and after /usr/share/ansible_plugins/filter_plugins (ansible 2.3.1.0)
Renaming the filter plugin function ensures that roles that depend on the old implementation can continue to use it through what the older RPM provides, and the new role can use it's role-specific filter plugin without any variable namespace colisions.
Lastly, remove filter_plugins/openshift_node.py since it is now self-contained in roles/openshift_node_facts.
Diffstat (limited to 'roles/lib_utils')
0 files changed, 0 insertions, 0 deletions