Microstack.init Compute node fail to join

I installed microstack following instructions on Ubuntu site for “Multi-node OpenStack deployment” on Ubuntu Desktop 20.02 LTS on Intel NUC hardware.
Install results were successful.
Latest microstack version ussuri was installed in devmode
Initialised Control node successfully with IP address
Compute node with IP address failed to join microstack with control node.
Key Traceback statements are:
Exception: Failed to get info from control node:
subprocess.CalledProcessError: Command ‘(microstack_join’,) returned non-zero exit status 1.

Any idea on cause of problems?
Are there any known issues with latest version of microstack on latest LTS?

It sounds like the MicroStack compute node might be having some trouble routing requests to the control node. I just dropped a comment on a bug tracking egress issues in MicroStack here:

MicroStack could definitely do more sophisticated things with networking config, especially on machines with multiple NICs. You might look through the system logs (journalctl -xe) to see if there are any obvious errors in MicroStack services, or any interesting networking related messages in the log.

When I ran microstack.init again, there were NO Microstack service errors reported in system logs.
The full transcript is:

$ sudo microstack.init
[sudo] password for doug:
Do you want to setup clustering? (yes/no) [default=no] > yes
2020-10-07 17:33:03,441 - microstack_init - INFO - Configuring clustering …
What is this machines’ role? (control/compute) > compute
Please enter a cluster password >
Please re-enter password >
Please enter the ip address of the control node [default=] >
Please enter the ip address of this node [default=] >
2020-10-07 17:33:59,009 - microstack_init - INFO - I am a compute node.
Traceback (most recent call last):
File “/snap/microstack/210/bin/microstack_join”, line 11, in
load_entry_point(‘microstack-cluster==0.0.1’, ‘console_scripts’, ‘microstack_join’)()
File “/snap/microstack/210/lib/python3.8/site-packages/cluster/client.py”, line 26, in join
raise Exception(‘Failed to get info from control node: {}’.format(
Exception: Failed to get info from control node: <bound method Response.json of <Response [500]>>
Traceback (most recent call last):
File “/snap/microstack/210/bin/microstack_init”, line 11, in
load_entry_point(‘microstack-init==0.0.1’, ‘console_scripts’, ‘microstack_init’)()
File “/snap/microstack/210/lib/python3.8/site-packages/init/main.py”, line 55, in wrapper
return func(*args, **kwargs)
File “/snap/microstack/210/lib/python3.8/site-packages/init/main.py”, line 171, in init
File “/snap/microstack/210/lib/python3.8/site-packages/init/questions/question.py”, line 210, in ask
File “/snap/microstack/210/lib/python3.8/site-packages/init/questions/init.py”, line 84, in yes
File “/snap/microstack/210/lib/python3.8/site-packages/init/shell.py”, line 80, in check_output
return subprocess.check_output(args, env=env,
File “/usr/lib/python3.8/subprocess.py”, line 411, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File “/usr/lib/python3.8/subprocess.py”, line 512, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command ‘(‘microstack_join’,)’ returned non-zero exit status 1.

I just had issues with Microstack and trying to get compute nodes to join. VERY FRUSTRATING!

The current workaround that I have found is to use the control node syntax – which will also fails since you already have a domain created by the actual control node — THEN after you get that failure, you need to run the join syntax to actually complete adding the compute node.


  1. Type (without quotes) “sudo microstack init --auto --control” **This will fail if you already have a control node
  2. Use this same command for ALL nodes
  3. Any node added after the first control node will fail – this is expected for this workaround. 4)On the compute nodes type (without quotes) “sudo microstack init --auto --compute --join <JOIN_STRING>”

After that, it should join and you should be able to view your nodes in your cloud dashboard (or however you choose).