func runInit(dockerCli *client.DockerCli, flags *pflag.FlagSet, opts initOptions) error { client := dockerCli.Client() ctx := context.Background() req := swarm.InitRequest{ ListenAddr: opts.listenAddr.String(), AdvertiseAddr: opts.advertiseAddr, ForceNewCluster: opts.forceNewCluster, Spec: opts.swarmOptions.ToSpec(), } nodeID, err := client.SwarmInit(ctx, req) if err != nil { if strings.Contains(err.Error(), "could not choose an IP address to advertise") || strings.Contains(err.Error(), "could not find the system's IP address") { return errors.New(err.Error() + " - specify one with --advertise-addr") } return err } fmt.Fprintf(dockerCli.Out(), "Swarm initialized: current node (%s) is now a manager.\n\n", nodeID) if err := printJoinCommand(ctx, dockerCli, nodeID, true, false); err != nil { return err } fmt.Fprint(dockerCli.Out(), "To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.\n\n") return nil }
func runInit(dockerCli *client.DockerCli, flags *pflag.FlagSet, opts initOptions) error { client := dockerCli.Client() ctx := context.Background() req := swarm.InitRequest{ ListenAddr: opts.listenAddr.String(), ForceNewCluster: opts.forceNewCluster, Spec: opts.swarmOptions.ToSpec(), } nodeID, err := client.SwarmInit(ctx, req) if err != nil { return err } fmt.Printf("Swarm initialized: current node (%s) is now a manager.\n", nodeID) return nil }
func runInit(dockerCli *client.DockerCli, opts initOptions) error { client := dockerCli.Client() ctx := context.Background() req := swarm.InitRequest{ ListenAddr: opts.listenAddr.String(), ForceNewCluster: opts.forceNewCluster, } req.Spec.AcceptancePolicy.Policies = opts.autoAccept.Policies(opts.secret) nodeID, err := client.SwarmInit(ctx, req) if err != nil { return err } fmt.Printf("Swarm initialized: current node (%s) is now a manager.\n", nodeID) return nil }
func runInit(dockerCli *client.DockerCli, flags *pflag.FlagSet, opts initOptions) error { client := dockerCli.Client() ctx := context.Background() // If no secret was specified, we create a random one if !flags.Changed("secret") { opts.secret = generateRandomSecret() fmt.Fprintf(dockerCli.Out(), "No --secret provided. Generated random secret:\n\t%s\n\n", opts.secret) } req := swarm.InitRequest{ ListenAddr: opts.listenAddr.String(), ForceNewCluster: opts.forceNewCluster, Spec: opts.swarmOptions.ToSpec(), } nodeID, err := client.SwarmInit(ctx, req) if err != nil { return err } fmt.Fprintf(dockerCli.Out(), "Swarm initialized: current node (%s) is now a manager.\n\n", nodeID) // Fetch CAHash and Address from the API info, err := client.Info(ctx) if err != nil { return err } node, _, err := client.NodeInspectWithRaw(ctx, nodeID) if err != nil { return err } if node.ManagerStatus != nil && info.Swarm.CACertHash != "" { var secretArgs string if opts.secret != "" { secretArgs = "--secret " + opts.secret } fmt.Fprintf(dockerCli.Out(), "To add a worker to this swarm, run the following command:\n\tdocker swarm join %s \\\n\t--ca-hash %s \\\n\t%s\n", secretArgs, info.Swarm.CACertHash, node.ManagerStatus.Addr) } return nil }