Merge pull request #1647 from agup006/640-azure-docker-machine

Add Azure Swarm Master Port endpoint configuration when using docker …
This commit is contained in:
Evan Hazlett 2015-08-10 10:03:05 -04:00
commit 83743d3134
1 changed files with 21 additions and 3 deletions

View File

@ -28,6 +28,7 @@ type Driver struct {
UserPassword string
Image string
DockerPort int
DockerSwarmMasterPort int
}
func init() {
@ -46,6 +47,11 @@ func GetCreateFlags() []cli.Flag {
Usage: "Azure Docker port",
Value: 2376,
},
cli.IntFlag{
Name: "azure-docker-swarm-master-port",
Usage: "Azure Docker Swarm master port",
Value: 3376,
},
cli.StringFlag{
EnvVar: "AZURE_IMAGE",
Name: "azure-image",
@ -160,6 +166,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
d.SSHUser = username
d.UserPassword = flags.String("azure-password")
d.DockerPort = flags.Int("azure-docker-port")
d.DockerSwarmMasterPort = flags.Int("azure-docker-swarm-master-port")
d.SSHPort = flags.Int("azure-ssh-port")
d.SwarmMaster = flags.Bool("swarm-master")
d.SwarmHost = flags.String("swarm-host")
@ -209,7 +216,7 @@ func (d *Driver) Create() error {
}
log.Debug("Authorizing ports...")
if err := d.addDockerEndpoint(vmConfig); err != nil {
if err := d.addDockerEndpoints(vmConfig); err != nil {
return err
}
@ -372,7 +379,7 @@ func (d *Driver) setUserSubscription() error {
return azure.ImportPublishSettings(d.SubscriptionID, d.SubscriptionCert)
}
func (d *Driver) addDockerEndpoint(vmConfig *vmClient.Role) error {
func (d *Driver) addDockerEndpoints(vmConfig *vmClient.Role) error {
configSets := vmConfig.ConfigurationSets.ConfigurationSet
if len(configSets) == 0 {
return errors.New("no configuration set")
@ -385,7 +392,18 @@ func (d *Driver) addDockerEndpoint(vmConfig *vmClient.Role) error {
Name: "docker",
Protocol: "tcp",
Port: d.DockerPort,
LocalPort: d.DockerPort}
LocalPort: d.DockerPort,
}
if d.SwarmMaster {
swarm_ep := vmClient.InputEndpoint{
Name: "docker swarm",
Protocol: "tcp",
Port: d.DockerSwarmMasterPort,
LocalPort: d.DockerSwarmMasterPort,
}
configSets[i].InputEndpoints.InputEndpoint = append(configSets[i].InputEndpoints.InputEndpoint, swarm_ep)
log.Debugf("added Docker swarm master endpoint (port %d) to configuration", d.DockerSwarmMasterPort)
}
configSets[i].InputEndpoints.InputEndpoint = append(configSets[i].InputEndpoints.InputEndpoint, ep)
log.Debugf("added Docker endpoint (port %d) to configuration", d.DockerPort)
}