Description of problem: As a user, I would like to access the undercloud API (UI or CLI) from a remote host, outside of the PXE booting subnet (i.e. a machine NOT managed by the undercloud) Specifying such address in "undercloud_admin_host" is currently not allowed. This is problematic, because in most scenarios, the overcloud's PXE subnet is the least likely place for a user to be in. Version-Release number of selected component (if applicable): 11 How reproducible: In undercloud.conf follow $subject: undercloud_public_vip = 10.35.65.52 network_cidr = 192.168.24.0/24 Actual results: stdout: 2017-02-27 02:50:40,257 INFO: Logging to /home/stack/.instack/install-undercloud.log 2017-02-27 02:50:40,270 INFO: Checking for a FQDN hostname... 2017-02-27 02:50:40,297 INFO: Static hostname detected as ironic-0.redhat.local 2017-02-27 02:50:40,306 INFO: Transient hostname detected as ironic-0.redhat.local 2017-02-27 02:50:40,307 ERROR: Undercloud configuration validation failed: undercloud_public_host "10.35.65.52" not in defined CIDR "192.168.24.0/24" 2017-02-27 02:50:40,307 ERROR: ############################################################################# Undercloud install failed. Reason: undercloud_public_host "10.35.65.52" not in defined CIDR "192.168.24.0/24" See the previous output for details about what went wrong. The full install log can be found at /home/stack/.instack/install-undercloud.log. ############################################################################# Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib/python2.7/site-packages/instack_undercloud/undercloud.py", line 1425, in install _validate_configuration() File "/usr/lib/python2.7/site-packages/instack_undercloud/undercloud.py", line 683, in _validate_configuration _validate_network() File "/usr/lib/python2.7/site-packages/instack_undercloud/undercloud.py", line 646, in _validate_network validator.validate_config(params, error_handler) File "/usr/lib/python2.7/site-packages/instack_undercloud/validator.py", line 33, in validate_config _validate_in_cidr(local_params, error_callback) File "/usr/lib/python2.7/site-packages/instack_undercloud/validator.py", line 99, in _validate_in_cidr require_ip=False) File "/usr/lib/python2.7/site-packages/instack_undercloud/validator.py", line 81, in validate_addr_in_cidr error_callback(message) File "/usr/lib/python2.7/site-packages/instack_undercloud/undercloud.py", line 643, in error_handler raise validator.FailedValidation(message) instack_undercloud.validator.FailedValidation: undercloud_public_host "10.35.65.52" not in defined CIDR "192.168.24.0/24" Command 'instack-install-undercloud' returned non-zero exit status 1 Expected results: Undercloud should be up with API (stackrc) and UI listening on specified address.
How about - before running verification, check if address is assigned to an actual NIC on machine? Can we use "import netifaces" in tripleo code? This would make for a very simple fix without breaking anything
Patch has been merged master upstream (and currently being backported in upstream stable/ocata). Moving it to POST until next donwstream build that contains the fix.
dropping upstream/master patch which has the stable/ocata backport and attached as external tracker
Passes validation on RC build
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/RHEA-2017:1245