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 | http://10.100.0.30:8989/v2 |
| 6c2e38ff90e6432dabc029ec85a63e6d | RegionOne | mistral | workflowv2 | True | internal | http://10.100.0.30:8989/v2 |
| bb6ed7d236c749499adc23a0161ecbc0 | RegionOne | mistral | workflowv2 | True | public | http://10.100.0.30:8989/v2 |
And here is what I see when I curl for Mistral server IP and port:
[root@controller techbart(keystone)]# curl http://10.100.0.30:8989/
{"versions": [{"id": "v2.0", "status": "CURRENT", "links": [{"href": "http://10.100.0.30:8989/v2", "target": "v2", "rel": "self"}]}]}[
For reference, setup is as follows:
OpenStack Controller: 10.100.0.250
OpenStack Mistral: 10.100.0.30
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?
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...
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?
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.