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{
|
cli.BoolFlag{
|
||||||
Name: "swarm",
|
Name: "swarm",
|
||||||
Usage: "Configure Machine with Swarm",
|
Usage: "Configure Machine to join a Swarm cluster",
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "swarm-image",
|
Name: "swarm-image",
|
||||||
|
|
@ -193,8 +193,9 @@ func cmdCreateInner(c CommandLine, api libmachine.API) error {
|
||||||
InstallURL: c.String("engine-install-url"),
|
InstallURL: c.String("engine-install-url"),
|
||||||
},
|
},
|
||||||
SwarmOptions: &swarm.Options{
|
SwarmOptions: &swarm.Options{
|
||||||
IsSwarm: c.Bool("swarm"),
|
IsSwarm: c.Bool("swarm") || c.Bool("swarm-master"),
|
||||||
Image: c.String("swarm-image"),
|
Image: c.String("swarm-image"),
|
||||||
|
Agent: c.Bool("swarm"),
|
||||||
Master: c.Bool("swarm-master"),
|
Master: c.Bool("swarm-master"),
|
||||||
Discovery: c.String("swarm-discovery"),
|
Discovery: c.String("swarm-discovery"),
|
||||||
Address: c.String("swarm-addr"),
|
Address: c.String("swarm-addr"),
|
||||||
|
|
|
||||||
|
|
@ -112,32 +112,38 @@ func configureSwarm(p Provisioner, swarmOptions swarm.Options, authOptions auth.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
workerHostConfig := dockerclient.HostConfig{
|
if swarmOptions.Agent {
|
||||||
RestartPolicy: dockerclient.RestartPolicy{
|
workerHostConfig := dockerclient.HostConfig{
|
||||||
Name: "always",
|
RestartPolicy: dockerclient.RestartPolicy{
|
||||||
MaximumRetryCount: 0,
|
Name: "always",
|
||||||
},
|
MaximumRetryCount: 0,
|
||||||
}
|
},
|
||||||
|
}
|
||||||
|
|
||||||
cmdWorker := []string{
|
cmdWorker := []string{
|
||||||
"join",
|
"join",
|
||||||
"--advertise",
|
"--advertise",
|
||||||
advertiseInfo,
|
advertiseInfo,
|
||||||
}
|
}
|
||||||
for _, option := range swarmOptions.ArbitraryJoinFlags {
|
for _, option := range swarmOptions.ArbitraryJoinFlags {
|
||||||
cmdWorker = append(cmdWorker, "--"+option)
|
cmdWorker = append(cmdWorker, "--"+option)
|
||||||
}
|
}
|
||||||
cmdWorker = append(cmdWorker, swarmOptions.Discovery)
|
cmdWorker = append(cmdWorker, swarmOptions.Discovery)
|
||||||
|
|
||||||
swarmWorkerConfig := &dockerclient.ContainerConfig{
|
swarmWorkerConfig := &dockerclient.ContainerConfig{
|
||||||
Image: swarmOptions.Image,
|
Image: swarmOptions.Image,
|
||||||
Env: swarmOptions.Env,
|
Env: swarmOptions.Env,
|
||||||
Cmd: cmdWorker,
|
Cmd: cmdWorker,
|
||||||
HostConfig: workerHostConfig,
|
HostConfig: workerHostConfig,
|
||||||
}
|
}
|
||||||
if swarmOptions.IsExperimental {
|
if swarmOptions.IsExperimental {
|
||||||
swarmWorkerConfig.Cmd = append([]string{"--experimental"}, swarmWorkerConfig.Cmd...)
|
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
|
IsSwarm bool
|
||||||
Address string
|
Address string
|
||||||
Discovery string
|
Discovery string
|
||||||
|
Agent bool
|
||||||
Master bool
|
Master bool
|
||||||
Host string
|
Host string
|
||||||
Image string
|
Image string
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue