Description of problem: No recommended version of Open vSwitch for OCP 3.7 during run ovs_version health check. Check failed. Version-Release number of the following components: openshift-ansible-3.7.0-0.190.0.git.0.129e91a.el7 How reproducible: 100% Steps to Reproduce: 1. Run ovs_version health check. # ansible-playbook -i inventory -v /usr/share/ansible/openshift-ansible/playbooks/byo/openshift-checks/adhoc.yml -e openshift_checks=ovs_version 2. 3. Actual results: # ansible-playbook -i inventory -v /usr/share/ansible/openshift-ansible/playbooks/byo/openshift-checks/adhoc.yml -e openshift_checks=ovs_version ... TASK [Run health checks (adhoc)] ************************************************************************************************************************************************************* CHECK [ovs_version : ec2-xx-xx-xx-xx.compute-1.amazonaws.com] ***************************************************************************************************************************** fatal: [ec2-xx-xx-xx-xx.compute-1.amazonaws.com]: FAILED! => {"changed": false, "checks": {"ovs_version": {"failed": true, "failures": [["OpenShiftCheckException", "There is no recommended version of Open vSwitch for the current version of OpenShift: 3.7"]], "msg": "There is no recommended version of Open vSwitch for the current version of OpenShift: 3.7"}}, "failed": true, "msg": "One or more checks failed", "playbook_context": "adhoc"} CHECK [ovs_version : ec2-xx-xx-xx-xx.compute-1.amazonaws.com] ***************************************************************************************************************************** fatal: [ec2-xx-xx-xx-xx.compute-1.amazonaws.com]: FAILED! => {"changed": false, "checks": {"ovs_version": {"failed": true, "failures": [["OpenShiftCheckException", "There is no recommended version of Open vSwitch for the current version of OpenShift: 3.7"]], "msg": "There is no recommended version of Open vSwitch for the current version of OpenShift: 3.7"}}, "failed": true, "msg": "One or more checks failed", "playbook_context": "adhoc"} ... Expected results: Should have recommended version for OCP 3.7 Additional info: # cat /usr/share/ansible/openshift-ansible/roles/openshift_health_checker/openshift_checks/ovs_version.py ... openshift_to_ovs_version = { "3.6": ["2.6", "2.7"], "3.5": ["2.6", "2.7"], "3.4": "2.4", } ... # cat /usr/share/ansible/openshift-ansible/roles/openshift_health_checker/openshift_checks/package_version.py ... openshift_to_ovs_version = { (3, 4): "2.4", (3, 5): ["2.6", "2.7"], (3, 6): ["2.6", "2.7"], } ...
There should have a correct recommended version in 3.7 when release it.
I seem to recall there was some logic to use the most recent recommendation if there wasn't one. Maybe that was in a different check though. Apparently not here. We don't particularly want to have to update this for each release...
PR: https://github.com/openshift/openshift-ansible/pull/6023
Verified with version openshift-ansible-3.7.4-1.git.0.254e849.el7. works well~ # ansible-playbook -i inventory -v /usr/share/ansible/openshift-ansible/playbooks/byo/openshift-checks/adhoc.yml -e openshift_checks=ovs_version ... TASK [Run health checks (adhoc)] ************************************************************************************************************************************************************* CHECK [ovs_version : ec2-xx-xx-xx-xx.compute-1.amazonaws.com] ****************************************************************************************************************************** CHECK [ovs_version : ec2-xx-xx-xx-xx.compute-1.amazonaws.com] ****************************************************************************************************************************** ok: [ec2-xx-xx-xx-xx.compute-1.amazonaws.com] => {"changed": false, "checks": {"ovs_version": {"changed": false, "invocation": {"module_args": {"package_list": [{"name": "openvswitch", "version": ["2.6", "2.7", "2.8"]}]}}}}, "failed": false, "playbook_context": "adhoc"} ok: [ec2-xx-xx-xx-xx.compute-1.amazonaws.com] => {"changed": false, "checks": {"ovs_version": {"changed": false, "invocation": {"module_args": {"package_list": [{"name": "openvswitch", "version": ["2.6", "2.7", "2.8"]}]}}}}, "failed": false, "playbook_context": "adhoc"} ... # vim /usr/share/ansible/openshift-ansible/roles/openshift_health_checker/openshift_checks/ovs_version.py ... openshift_to_ovs_version = { "3.7": ["2.6", "2.7", "2.8"], ... # vim /usr/share/ansible/openshift-ansible/roles/openshift_health_checker/openshift_checks/package_version.py ... openshift_to_ovs_version = { (3, 4): "2.4", (3, 5): ["2.6", "2.7"], (3, 6): ["2.6", "2.7", "2.8"], (3, 7): ["2.6", "2.7", "2.8"], } ... # vim /usr/share/ansible/openshift-ansible/roles/openshift_health_checker/test/ovs_version_test.py ... @pytest.mark.parametrize('openshift_release,expected_ovs_version', [ ("3.7", ["2.6", "2.7", "2.8"]), ...
No need to document this since it is only an issue that arises from the increase in the version number.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2017:3188