Incorrect ironic publicURL endpoint when using different regions

asked 2016-12-22 06:51:42 -0500

midekra gravatar image

updated 2017-01-16 15:07:38 -0500

rbowen gravatar image

Hi,

I stumbled on a weird problem. In my setup I have different regions. All my services are working correctly for each region and all the endpoints are listed correctly for each region. But whenever I use ironic it seems it only uses the first public endpoint it encounters. For example:

+----------------------------------+-----------+--------------+--------------+---------+-----------+----------------------------------------+
| ID                               | Region    | Service Name | Service Type | Enabled | Interface | URL                                    |
+----------------------------------+-----------+--------------+--------------+---------+-----------+----------------------------------------+
| 1be5bd393d9544a8933d80028cf386d6 | RegionOne | ironic       | baremetal    | True    | public    | http://region.one.nl:6385   |
| 692a282279594684b7d9e4b3c39645d4 | RegionTwo  | ironic       | baremetal    | True    | public    | http://region.two.nl:6385  |

All of my ironic commands (like ironic node-list) will use the endpoint of RegionOne. If I disable the endpoint RegionOne It will use RegionTwo. If I delete the endpoint RegionOne and re-create it and making sure the ID has a higher number, for example:

+----------------------------------+-----------+--------------+--------------+---------+-----------+----------------------------------------+
| ID                               | Region    | Service Name | Service Type | Enabled | Interface | URL                                    |
+----------------------------------+-----------+--------------+--------------+---------+-----------+----------------------------------------+
| 692a282279594684b7d9e4b3c39645d4 | RegionTwo  | ironic       | baremetal    | True    | public    | http://region.two.nl:6385  |
| 87df78bc84d341bea07eb4dcaf4345a1 | RegionOne | ironic       | baremetal    | True    | public    | http://region.one.nl:6385   |

It will ALWAYS use RegionTwo when I use ironic commands. It seems like it is ignoring the different public endpoints. If I use the --debug argument with my ironic commands I can see that the curl XGET command is using the wrong endpoint for that region.

My environment settings are correctly set, e.g.: OS_REGION_NAME etc. The rest of my openstack services (nova, neutron, designate etc.) are working correctly when using different regions.

I'm running Openstack Mitaka.

Anyone has an idea?

edit retag flag offensive close merge delete