mirror of https://github.com/docker/docs.git
Merge pull request #3365 from ndeloof/master
Fixes #2302 Possibility to create master with manager, but without agent
This commit is contained in:
commit
ae9f392c10
|
|
@ -81,7 +81,7 @@ var (
|
|||
},
|
||||
cli.BoolFlag{
|
||||
Name: "swarm",
|
||||
Usage: "Configure Machine with Swarm",
|
||||
Usage: "Configure Machine to join a Swarm cluster",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "swarm-image",
|
||||
|
|
@ -193,8 +193,9 @@ func cmdCreateInner(c CommandLine, api libmachine.API) error {
|
|||
InstallURL: c.String("engine-install-url"),
|
||||
},
|
||||
SwarmOptions: &swarm.Options{
|
||||
IsSwarm: c.Bool("swarm"),
|
||||
IsSwarm: c.Bool("swarm") || c.Bool("swarm-master"),
|
||||
Image: c.String("swarm-image"),
|
||||
Agent: c.Bool("swarm"),
|
||||
Master: c.Bool("swarm-master"),
|
||||
Discovery: c.String("swarm-discovery"),
|
||||
Address: c.String("swarm-addr"),
|
||||
|
|
|
|||
|
|
@ -112,32 +112,38 @@ func configureSwarm(p Provisioner, swarmOptions swarm.Options, authOptions auth.
|
|||
}
|
||||
}
|
||||
|
||||
workerHostConfig := dockerclient.HostConfig{
|
||||
RestartPolicy: dockerclient.RestartPolicy{
|
||||
Name: "always",
|
||||
MaximumRetryCount: 0,
|
||||
},
|
||||
}
|
||||
if swarmOptions.Agent {
|
||||
workerHostConfig := dockerclient.HostConfig{
|
||||
RestartPolicy: dockerclient.RestartPolicy{
|
||||
Name: "always",
|
||||
MaximumRetryCount: 0,
|
||||
},
|
||||
}
|
||||
|
||||
cmdWorker := []string{
|
||||
"join",
|
||||
"--advertise",
|
||||
advertiseInfo,
|
||||
}
|
||||
for _, option := range swarmOptions.ArbitraryJoinFlags {
|
||||
cmdWorker = append(cmdWorker, "--"+option)
|
||||
}
|
||||
cmdWorker = append(cmdWorker, swarmOptions.Discovery)
|
||||
cmdWorker := []string{
|
||||
"join",
|
||||
"--advertise",
|
||||
advertiseInfo,
|
||||
}
|
||||
for _, option := range swarmOptions.ArbitraryJoinFlags {
|
||||
cmdWorker = append(cmdWorker, "--"+option)
|
||||
}
|
||||
cmdWorker = append(cmdWorker, swarmOptions.Discovery)
|
||||
|
||||
swarmWorkerConfig := &dockerclient.ContainerConfig{
|
||||
Image: swarmOptions.Image,
|
||||
Env: swarmOptions.Env,
|
||||
Cmd: cmdWorker,
|
||||
HostConfig: workerHostConfig,
|
||||
}
|
||||
if swarmOptions.IsExperimental {
|
||||
swarmWorkerConfig.Cmd = append([]string{"--experimental"}, swarmWorkerConfig.Cmd...)
|
||||
}
|
||||
swarmWorkerConfig := &dockerclient.ContainerConfig{
|
||||
Image: swarmOptions.Image,
|
||||
Env: swarmOptions.Env,
|
||||
Cmd: cmdWorker,
|
||||
HostConfig: workerHostConfig,
|
||||
}
|
||||
if swarmOptions.IsExperimental {
|
||||
swarmWorkerConfig.Cmd = append([]string{"--experimental"}, swarmWorkerConfig.Cmd...)
|
||||
}
|
||||
|
||||
return mcndockerclient.CreateContainer(dockerHost, swarmWorkerConfig, "swarm-agent")
|
||||
err = mcndockerclient.CreateContainer(dockerHost, swarmWorkerConfig, "swarm-agent")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ type Options struct {
|
|||
IsSwarm bool
|
||||
Address string
|
||||
Discovery string
|
||||
Agent bool
|
||||
Master bool
|
||||
Host string
|
||||
Image string
|
||||
|
|
|
|||
Loading…
Reference in New Issue