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