Integrating Mistral with remote Ussuri controller

asked 2020-08-17 19:07:30 -0600

Techbart gravatar image

updated 2020-08-31 08:41:35 -0600

Hey guys,

So, seems I've hit a snag. My goal is to setup OpenStack with Cloudband MANO support (Tacker being the target NFVO). However, it seems I jumped the gun by picking the latest OpenStack and CentOS release, which apparently doesn't yet have support for Mistral.

I'm still learning the ropes, but so far have OoenStack up and running with minimal setup + Heat, so I'm wondering how doable it would be to setup another OpenStack VIM on Ubuntu with only Mistral service, and connect it to my main VIM to work with Tacker (also on main VIM).

Anyone have any hints on how possible this would be/how to go about it? Cheers in advance!

edit retag flag offensive close merge delete


So I've gone ahead and setup an Ubuntu box for holding Mistral. However, when following the few guides I can find from OpenStack, there's not a great deal of information on how to consider remote integration.

I got Mistral server engine running, but was unable to populate DB...

Techbart gravatar imageTechbart ( 2020-08-28 03:22:04 -0600 )edit

From the error output, I assume this is due to it being unable to find a database to connect to, even though my mistral.conf is set to use my central Controller DB and connect via Keystone. Any ideas?

Techbart gravatar imageTechbart ( 2020-08-28 03:23:12 -0600 )edit

I don't pretend I know anything about VNFs, Tacker and Mistral, but very generally it might help if you shared the command you issue to populate the DB and the corresponding error message.

Bernd Bausch gravatar imageBernd Bausch ( 2020-08-28 04:17:58 -0600 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2020-08-31 08:24:34 -0600

Techbart gravatar image

updated 2020-08-31 08:54:52 -0600

Thanks for responding Bernd Bausch. Some progress has been made, although I've had to do a lot of guesswork since there aren't any guides on setting up a remote Mistral instance to connect to OpenStack.

What I appeared to be missing was having OpenStack installed on the host containing Mistral server. Once OpenStack service was installed, I was able to get mistral-db-manage to populate my controller DB without error (I also installed keystone on Mistral server, as I wasn't entirely sure if keystone is needed on a "client" OpenStack instance for connecting to a central controller which hosts DB).

So, current status is that I can get Mistral server to connect to my controller, however now I can't seem to get the Mistral client (on Controller) to find its service endpoint:

[root@controller techbart(keystone)]# mistral workbook-list
ERROR (app) Could not find requested endpoint in Service Catalog.

Here's how my API endpoints list for Mistral:

[root@controller techbart(keystone)]# openstack endpoint list |grep mistral
| 018b345eba1e43429871c6af55058874 | RegionOne | mistral      | workflowv2     | True    | admin     |              |
| 6c2e38ff90e6432dabc029ec85a63e6d | RegionOne | mistral      | workflowv2     | True    | internal  |              |
| bb6ed7d236c749499adc23a0161ecbc0 | RegionOne | mistral      | workflowv2     | True    | public    |              |

And here is what I see when I curl for Mistral server IP and port:

[root@controller techbart(keystone)]# curl
{"versions": [{"id": "v2.0", "status": "CURRENT", "links": [{"href": "", "target": "v2", "rel": "self"}]}]}[

For reference, setup is as follows:

OpenStack Controller: OpenStack Mistral:

So, Controller is hosting Keystone, Heat, Neutron, Glance, Placement and Mistral. Mistral instance is only running Mistral server, and I'm trying to get it connecting to Controller instance for Keystone validation and integration with Heat.

With regard to the command I used to populate DB, it was as follows:

mistral-db-manage --config-file /etc/mistral/mistral.conf populate
2020-08-31 13:28:09.961 2121 INFO mistral.db.sqlalchemy.migration.cli [-] Populating db
2020-08-31 13:28:10.897 2121 INFO mistral.expressions.yaql_expression [-] YAQL engine has been initialized with the options:
{'yaql.limitIterators': -1, 'yaql.memoryQuota': -1, 'yaql.convertTuplesToLists': True, 'yaql.convertSetsToLists': False, 'yaql.iterableDicts': False, 'yaql.convertOutputData': True, 'keyword_operator': '=>', 'allow_delegates': False}

Any suggestions on how I might troubleshoot this? Cheers!

UPDATE: The reason I couldn't get mistral client on Controller instance to access its API on Mistral host instance, is because I hadn't formatted my auth file correctly - I was missing "http://".

Now I'm able to have Mistral client on Controller instance contact its API on dedicated Mistral host. However, while I now have connectivity, I'm not seeing any workbooks returned:

[root@controller techbart(keystone)]# mistral workbook-list
| Name | Namespace | Tags | Scope | Created at | Updated at |
|      |           |      |       |            |            |

I assume this is likely something missing on Mistral host instance, so does anyone have any tips on how I might correctly setup workbooks for this scenario?

edit flag offensive delete link more


Ah, found the problem. I hadn't included "http://" in my auth cert OS_MISTRAL_URL definition. Now I'm able to have it read mistral workbooks with correct href added.

Techbart gravatar imageTechbart ( 2020-08-31 08:51:10 -0600 )edit

Get to know Ask OpenStack

Resources for moderators

Question Tools

1 follower


Asked: 2020-08-17 18:59:02 -0600

Seen: 186 times

Last updated: Aug 31 '20