Bug 1656124 - [CI] TLS everywhere deployments fail with: Invalid input for field/attribute compact_services
Summary: [CI] TLS everywhere deployments fail with: Invalid input for field/attribute ...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-tripleo-heat-templates
Version: 14.0 (Rocky)
Hardware: x86_64
OS: Linux
urgent
urgent
Target Milestone: ga
: 14.0 (Rocky)
Assignee: Raildo Mascena de Sousa Filho
QA Contact: Jeremy Agee
URL:
Whiteboard:
Depends On: 1659464
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-12-04 18:24 UTC by Waldemar Znoinski
Modified: 2023-09-14 04:43 UTC (History)
11 users (show)

Fixed In Version: openstack-tripleo-heat-templates-9.0.1-0.20181013060906.el7ost
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1659464 1659596 (view as bug list)
Environment:
Last Closed: 2019-01-11 11:55:18 UTC
Target Upstream Version:
Embargoed:
rmascena: needinfo-


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
OpenStack gerrit 623316 0 'None' MERGED Spliting compact services in multiples lines 2020-11-02 11:34:15 UTC
OpenStack gerrit 624502 0 'None' MERGED Handle compact services on multiple lines 2020-11-02 11:34:15 UTC
Red Hat Product Errata RHEA-2019:0045 0 None None None 2019-01-11 11:55:28 UTC

Description Waldemar Znoinski 2018-12-04 18:24:31 UTC
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

Comment 2 Ade Lee 2018-12-11 20:58:40 UTC
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.

Comment 3 Raildo Mascena de Sousa Filho 2018-12-12 13:01:55 UTC
Novajoin change is here: https://review.openstack.org/#/c/624502/

Comment 14 errata-xmlrpc 2019-01-11 11:55:18 UTC
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

Comment 15 Red Hat Bugzilla 2023-09-14 04:43:17 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 1000 days


Note You need to log in before you can comment on or make changes to this bug.