Trusting that the machine *number* is stable is not appropriate because of how numbers are applied. As soon as any machine needs to be replaced the numbers will be wrong. Doing it by tag or some other user appropriate mechanism is far more correct. That sort of tagging can last as the environment evolves over time. Juju never re-uses a machine number, so while you can trust that they will be unique within a model, etc. In Bundles the machine id you use is a logical identity, and Juju is always allowed to remap it to a new number (since that number could easily already have been burned in an initial deployment in a model.) Your described "--map-machines existing , 0=0..." 'existing' is exactly 0=0,1=1,2=2, etc You certainly shouldn't have to supply both. I doubt what you *want* is "machine 0 should run unit A". I think taking a step back and thinking about what you're actual requirement is (I want 3 units running A, 2 running B, etc). It is nice sometimes when you can have them grouped, but as soon as you have to do any maintenance or replace something you'll lose your pretty numbers unless you destroy it and reprovision everything. Better to find a way to give you the grouping you want and the actual promises that you want. What is it about '