Re: [heat] Bug : Heat cannot create Octavia Load Balancer
Please confirm whether "auth_strategy" is set as ''keystone" in configure file. I remember that the value of "auth_strategy" is set as "noauth" in "/usr/share/octavia/octavia-dist.conf" default if you install octavia by rpm. If the value was set as "noauth", you must manually specify "project_id" for octavia. Jeff Yang <yjf1970231893@gmail.com> 于2019年1月2日周三 下午12:26写道:
Please confirm whether "auth_strategy" is set as ''keystone" in configure file. I remember that the value of "auth_strategy" is set as "noauth" in "/usr/share/octavia/octavia-dist.conf" default if you install octavia by rpm. If the value was set as "noauth", you must manually specify "project_id" for octavia.
Zane Bitter <zbitter@redhat.com> 于2019年1月2日周三 上午11:23写道:
On 2/01/19 1:34 AM, Adam Harwell wrote:
I'm just on my phone over the holidays, but it kinda looks like the code for this was just updated 12 days ago: https://review.openstack.org/#/c/619577/
If you're using that new code, I imagine it's possible there could be a bug that wasn't yet caught... If you're NOT using that code, maybe try it and see if it helps? I'm guessing it's related one way or another. If you come to the #openstack-lbaas channel once more people are around (later this week?), we can probably take a look.
That's only the example template (previously it was an example for LBaaSv2; now it's an example for Octavia); there's been no recent change to the code.
--Adam Harwell (rm_work)
On Sun, Dec 30, 2018, 03:37 Zufar Dhiyaulhaq <zufardhiyaulhaq@gmail.com <mailto:zufardhiyaulhaq@gmail.com>> wrote:
I have try creating load balancer with Heat. but always get this
error :
Resource CREATE failed: OctaviaClientException: resources.loadbalancer: Validation failure: Missing project ID in request where one is required. (HTTP 400) (Request-ID: req-b45208e1-a200-47f9-8aad-b130c4c12272)
OctaviaClientException: resources.loadbalancer: Validation failure: Missing project ID in request where one is required. (HTTP 400) (Request-ID: req-b45208e1-a200-47f9-8aad-b130c4c12272)
What version of OpenStack are you using?
The issue is that Heat is sending a "tenant_id" but Octavia wants a "project_id", which is the new name for the same thing. (I think you likely modified that template after trying it but before uploading it, because there is no "project_id" property in Heat's OS::Octavia::LoadBalancer resource type.)
This bug has been reported and there is a patch up for review in Heat: https://storyboard.openstack.org/#!/story/2004650
There was a change to Octavia in Pike (https://review.openstack.org/455442) to add backwards compatibility, but it was either incomplete or the problem reoccurred and was fixed again in Rocky (https://review.openstack.org/569881). My guess is that it's likely broken in Pike and Queens.
I'd certainly have expected Heat's gate tests to pick up the problem, and it's a bit of a mystery why they didn't. Perhaps we're not exercising the case where a project_id is required (using it at all is an admin-only feature, so that's not too surprising I guess; it's actually more surprising that there's a case where it's _required_).
cheers, Zane.
I create 2 openstack environment :
* Heat with Octavia (Octavia Heat Template : http://paste.opensuse.org/view//33592182 ) * Heat with Neutron Lbaasv2 (Neutron LBaaSv2 Heat Template : http://paste.opensuse.org/view//71741503)
But always error when creating with octavia :
* Octavia Log (https://imgur.com/a/EsuWvla) * LBaaS v2 (https://imgur.com/a/BqNGRPH)
Are Heat code is broken to create Octavia Load Balancer?
Best Regards, Zufar Dhiyaulhaq
On Wed, Jan 2, 2019 at 10:03 AM Jeff Yang <yjf1970231893@gmail.com> wrote:
Please confirm whether "auth_strategy" is set as ''keystone" in configure file. I remember that the value of "auth_strategy" is set as "noauth" in "/usr/share/octavia/octavia-dist.conf" default if you install octavia by rpm. If the value was set as "noauth", you must manually specify "project_id" for octavia.
Yeah, that could be the reason[1] (when deploying with puppet puppet-octavia sets it to keystone[2]), as the error is coming from octavia[3], when you don't specify a project_id in request and the context does not have it either. [1] https://github.com/rdo-packages/octavia-distgit/blob/rpm-master/octavia-dist... [2] https://github.com/openstack/puppet-octavia/blob/master/manifests/api.pp#L65 [3] https://github.com/openstack/octavia/blob/master/octavia/api/v2/controllers/... Jeff Yang <yjf1970231893@gmail.com> 于2019年1月2日周三 下午12:26写道:
Please confirm whether "auth_strategy" is set as ''keystone" in
configure file. I remember that the value of "auth_strategy" is set as "noauth" in "/usr/share/octavia/octavia-dist.conf" default if you install octavia by rpm. If the value was set as "noauth", you must manually specify "project_id" for octavia.
Zane Bitter <zbitter@redhat.com> 于2019年1月2日周三 上午11:23写道:
On 2/01/19 1:34 AM, Adam Harwell wrote:
I'm just on my phone over the holidays, but it kinda looks like the code for this was just updated 12 days ago: https://review.openstack.org/#/c/619577/
If you're using that new code, I imagine it's possible there could be a bug that wasn't yet caught... If you're NOT using that code, maybe try it and see if it helps? I'm guessing it's related one way or another. If you come to the #openstack-lbaas channel once more people are around (later this week?), we can probably take a look.
That's only the example template (previously it was an example for LBaaSv2; now it's an example for Octavia); there's been no recent change to the code.
--Adam Harwell (rm_work)
On Sun, Dec 30, 2018, 03:37 Zufar Dhiyaulhaq <
zufardhiyaulhaq@gmail.com
<mailto:zufardhiyaulhaq@gmail.com>> wrote:
I have try creating load balancer with Heat. but always get this error :
Resource CREATE failed: OctaviaClientException: resources.loadbalancer: Validation failure: Missing project ID in request where one is required. (HTTP 400) (Request-ID: req-b45208e1-a200-47f9-8aad-b130c4c12272)
OctaviaClientException: resources.loadbalancer: Validation failure: Missing project ID in request where one is required. (HTTP 400) (Request-ID: req-b45208e1-a200-47f9-8aad-b130c4c12272)
What version of OpenStack are you using?
The issue is that Heat is sending a "tenant_id" but Octavia wants a "project_id", which is the new name for the same thing. (I think you likely modified that template after trying it but before uploading it, because there is no "project_id" property in Heat's OS::Octavia::LoadBalancer resource type.)
This bug has been reported and there is a patch up for review in Heat: https://storyboard.openstack.org/#!/story/2004650
There was a change to Octavia in Pike (https://review.openstack.org/455442) to add backwards compatibility, but it was either incomplete or the problem reoccurred and was fixed again in Rocky (https://review.openstack.org/569881). My guess is that it's likely broken in Pike and Queens.
I'd certainly have expected Heat's gate tests to pick up the problem, and it's a bit of a mystery why they didn't. Perhaps we're not exercising the case where a project_id is required (using it at all is an admin-only feature, so that's not too surprising I guess; it's actually more surprising that there's a case where it's _required_).
cheers, Zane.
I create 2 openstack environment :
* Heat with Octavia (Octavia Heat Template : http://paste.opensuse.org/view//33592182 ) * Heat with Neutron Lbaasv2 (Neutron LBaaSv2 Heat Template : http://paste.opensuse.org/view//71741503)
But always error when creating with octavia :
* Octavia Log (https://imgur.com/a/EsuWvla) * LBaaS v2 (https://imgur.com/a/BqNGRPH)
Are Heat code is broken to create Octavia Load Balancer?
Best Regards, Zufar Dhiyaulhaq
-- Regards, Rabi Mishra
participants (2)
-
Jeff Yang
-
Rabi Mishra