Is it possible you can show the exact bundle you’re deploy to juju and is it possible you can show more of juju status so we can see why things are still in a pending state.
All the individual OpenStack applications are then deploy directly to those machines, or to lxd containers on those machines with to directives. For example, starting on line 220, you can see that keystone is deployed to a lxd container on machine 0:
The short answer is that you’re only getting three nodes because the openstack-base bundle only deploys to three nodes. To expand to more nodes, you’d need to do some thinking about which applications you want to deploy where, and edit the bundle accordingly – e.g., add more machines to the machines list, then update the -to directives to place the machines.
You can follow my howtos - in French - that I do with my students here. There are howtos by practice : MAAS, JUJU OPENSTACK-VAULT, KUBERNETES, LANDSCAPE …