Description of problem: every deployment of OSP14 with tls-everywhere enabled fails on overcloud deploy stage with: overcloud.Controller.1.Controller: resource_type: OS::TripleO::ControllerServer physical_resource_id: status: CREATE_FAILED status_reason: | BadRequest: resources.Controller: Invalid input for field/attribute compact_services. Value: {"ovs": ["internalapi"], "HTTP": ["ctlplane", "storage", "storagemgmt", "internalapi", "external", "management"], "libvirt-vnc": ["internalapi"], "rabbitmq": ["internalapi"], "odl": ["internalapi"], "mysql": ["internalapi"], "novnc-proxy": ["internalapi"], "neutron": ["internalapi"]}. u'{"ovs": ["internalapi"], "HTTP": ["ctlplane", "storage", "storagemgmt", "internalapi", "external", "management"], "libvirt-vnc": ["internalapi"], "rabbitmq": ["internalapi"], "odl": ["internalapi"], "mysql": ["internalapi"], "novnc-proxy": ["internalapi"], "neutron": ["internalapi"]}' is too long (HTTP 400) (Request-ID: req-f5c8b045-5c74-4850-ad28-5abf22b2fad3) overcloud.Controller.0.Controller: resource_type: OS::TripleO::ControllerServer physical_resource_id: status: CREATE_FAILED status_reason: | BadRequest: resources.Controller: Invalid input for field/attribute compact_services. Value: {"ovs": ["internalapi"], "HTTP": ["ctlplane", "storage", "storagemgmt", "internalapi", "external", "management"], "libvirt-vnc": ["internalapi"], "rabbitmq": ["internalapi"], "odl": ["internalapi"], "mysql": ["internalapi"], "novnc-proxy": ["internalapi"], "neutron": ["internalapi"]}. u'{"ovs": ["internalapi"], "HTTP": ["ctlplane", "storage", "storagemgmt", "internalapi", "external", "management"], "libvirt-vnc": ["internalapi"], "rabbitmq": ["internalapi"], "odl": ["internalapi"], "mysql": ["internalapi"], "novnc-proxy": ["internalapi"], "neutron": ["internalapi"]}' is too long (HTTP 400) (Request-ID: req-8e7ed022-26a9-47a1-9ddb-4b63205141e7) overcloud.Controller.2.Controller: resource_type: OS::TripleO::ControllerServer physical_resource_id: status: CREATE_FAILED status_reason: | BadRequest: resources.Controller: Invalid input for field/attribute compact_services. Value: {"ovs": ["internalapi"], "HTTP": ["ctlplane", "storage", "storagemgmt", "internalapi", "external", "management"], "libvirt-vnc": ["internalapi"], "rabbitmq": ["internalapi"], "odl": ["internalapi"], "mysql": ["internalapi"], "novnc-proxy": ["internalapi"], "neutron": ["internalapi"]}. u'{"ovs": ["internalapi"], "HTTP": ["ctlplane", "storage", "storagemgmt", "internalapi", "external", "management"], "libvirt-vnc": ["internalapi"], "rabbitmq": ["internalapi"], "odl": ["internalapi"], "mysql": ["internalapi"], "novnc-proxy": ["internalapi"], "neutron": ["internalapi"]}' is too long (HTTP 400) (Request-ID: req-5ba54950-af61-4bcf-8fd9-ce3ab8166737) Version-Release number of selected component (if applicable): OSP14 puddle 2018-11-29.3 + opendaylight 8.3.0-7 (odl is probably irrelevant here) How reproducible: 100% Steps to Reproduce: 1. deploy OSP + ODL (OSP without ODL will probably have the same problem) 2. 3. Actual results: overcloud deploy fails Expected results: overcloud to deploy successfully Additional info: CI jobs showing the problem: https://rhos-qe-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/view/DFG/view/opendaylight/view/odl-netvirt/job/DFG-opendaylight-odl-netvirt-14_director-rhel-virthost-3cont_2comp_1ipa-ipv4-vxlan-ha-tls-tempest/ note the deployment passes the undercloud installation step which was previously blocked by https://bugzilla.redhat.com/show_bug.cgi?id=1645136
The issue here is as follows: * In THT, we construct data to be passed to novajoin for all the services to be configured. The data is passed as nova metadata fields. * There can be any number of these fields, but each field cannot exceed 256 bytes. * In particular, the services on a controller not related to a VIP are passed in a field called "compact_services" * If there are additional services added (as ODL does), we can exceed the 256 byte restriction. * We see that happen in the log snippet above .. BadRequest: resources.Controller: Invalid input for field/attribute compact_services. Value: {"ovs": ["internalapi"], "HTTP": ["ctlplane", "storage", "storagemgmt", "internalapi", "external", "management"], "libvirt-vnc": ["internalapi"], "rabbitmq": ["internalapi"], "odl": ["internalapi"], "mysql": ["internalapi"], "novnc-proxy": ["internalapi"], "neutron": ["internalapi"]}. u'{"ovs": ["internalapi"], "HTTP": ["ctlplane", "storage", "storagemgmt", "internalapi", "external", "management"], "libvirt-vnc": ["internalapi"], "rabbitmq": ["internalapi"], "odl": ["internalapi"], "mysql": ["internalapi"], "novnc-proxy": ["internalapi"], "neutron": ["internalapi"]}' is too long (HTTP 400) The solution to this problem is to instead send the services as individual entries, rather than collecting them as above. This requires changes to both THT to construct the new metadata to be passed, and novajoin to parse it correctly. The upstream review for the THT change is here: https://review.openstack.org/#/c/623316/ The upstream change to novajoin is being worked on.
Novajoin change is here: https://review.openstack.org/#/c/624502/
TLS Job passed on puddle 2018-12-20.4: https://rhos-qe-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/view/DFG/view/opendaylight/view/odl-netvirt/job/DFG-opendaylight-odl-netvirt-14_director-rhel-virthost-3cont_2comp_1ipa-ipv4-vxlan-ha-tls-tempest/24/
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-2019:0045
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 1000 days