Machine id option to deploy

Gustavo Niemeyer gustavo.niemeyer at canonical.com
Mon Apr 8 22:16:00 UTC 2013


On Mon, Apr 8, 2013 at 7:05 PM, Mark Ramm
<mark.ramm-christensen at canonical.com> wrote:
> On 04/08/2013 04:19 PM, Gustavo Niemeyer wrote:
>>
>> On Mon, Apr 8, 2013 at 5:09 PM, roger peppe <roger.peppe at canonical.com>
>> wrote:
>>>
>>> I think this is only a problem if units are ever recycled.
>>> I think we're leaning towards the approach that a unit, once
>>> added, lives once only and then dies forever.
>>>
>>> If that's the case, then the service's metadata doesn't
>>> matter so much - it's used once to work out where to put
>>> the unit and then is irrelevant.
>>
>> That's a radically different view of the metadata for an environment.
>> Units are a by-product of a configuration.. not the configuration
>> itself.  If there are changes going in that break that rule, you'll
>> reach a situation where orthogonal juju goals will become harder: no
>> more trivial add-units, no more unit-less stack configurations, no
>> more entangled expansions of units (scale A with B), etc.
>
> This is a good point.  I think it is a very solid design goal of Juju to
> make the state data the single point of truth about the system -- if it's an
> important part of re-creating an environment it should probably be recorded
> in the state somewhere.
>
> With that said, in this particular case: Once you --force-machine a unit,
> you will definitely get some limitations, but you don't loose all of good
> things you mention either.

> You can still add-unit trivially to a service where the first machine was
> forced to be somewhere.

That's unfortunately not true, because the reason why you deployed that unit
on that machine is lost. There are many examples of why this is the case:

- If that machine died because of a hardware failure, X is gone for
good. Juju can't
  take any reasonable actions to recreate that unit onto a proper
location because
  the reason it was placed there is lost.

- If we implement the stack feature, it doesn't make sense to be talking about
  machine X because there are no machines or unit-specific configurations.

- If the reason why it was placed in machine X is because of other
services in there,
  once you add-unit that service, it will fall onto another arbitrary
location because
  the reasoning, again, was lost.

and so on.


gustavo @ http://niemeyer.net



More information about the Juju mailing list