docker / machine

Machine management for a container-centric world
https://docs.docker.com/machine/
Apache License 2.0
6.63k stars 1.97k forks source link

Pinning Swarm versions #1195

Closed aluzzardi closed 9 years ago

aluzzardi commented 9 years ago

I believe right now we run with the latest swarm tag, however, there are no guarantees that the flags that work today will work in the future.

I'm about unsure what to do: If we pin to swarm:0.2.0, then we'll have a release dependency (swarm must be built and pushed before we release machine).

Thoughts?

nathanleclaire commented 9 years ago

Perhaps a --swarm-tag flag which defaults to latest.

aluzzardi commented 9 years ago

The problem is, in the case of docker/swarm#817 for instance, we might change the --addr flag of Docker join to something less confusing.

Doing so will break machine.

nathanleclaire commented 9 years ago

Ah, I see. So latest tracks swarm master directly? I'm not sure how we would get around pinning the version directly, although I agree it's a difficult proposition for the release. Perhaps we could do a "soft release" of the relevant swarm:x.x.x image on the Hub a while before the official release, e.g. at code freeze (corresponding with when Machine changes the image in master). It wouldn't be fantastic, but it would allow us to get some testing it with breaking changes in before switching over.

In general, I wouldn't worry too much about breaking backwards compat with us as long as you tell us / give us time to prepare first. I'd prefer that you all get the design decisions and interface that you think is best. I'd still be in favor of a way to specify swarm image tags though, just so we can actually use that to write code towards whatever you are going to move master towards next.

@ehazlett Curious to hear your thoughts.

aluzzardi commented 9 years ago

latest tracks the latest release, today 0.2.0. The problem is, the day machine will be released, swarm:latest will be updated as well at the same time.

ehazlett commented 9 years ago

Personally, I would like to match the latest stable of swarm. Perhaps we could just have a quick sync every so often to get up-to-date with changes just to be sure. I think we could also add a master swarm image for testing as well.

EDIT: i would also like to be able to specify the version "just in case".

aluzzardi commented 9 years ago

Yes, would like to match the latest as well. You can get master at dockerswarm/swarm:master

aluzzardi commented 9 years ago

Perhaps integration tests should run using that one? Note though that it's pretty big since it contains go and other crap

ehazlett commented 9 years ago

@aluzzardi +1

nathanleclaire commented 9 years ago

We have --swarm-image now, so I am closing this, but I like your idea for the integration tests @aluzzardi, I will open a separate issue for that.