if err := http.ListenAndServe(debugAddr, nil); err != nil { panic(err) } }() } n, err := agent.NewNode(&agent.NodeConfig{ Hostname: hostname, ForceNewCluster: forceNewCluster, ListenControlAPI: unix, ListenRemoteAPI: addr, JoinAddr: managerAddr, StateDir: stateDir, CAHash: caHash, Secret: secret, ExternalCAs: externalCAOpt.Value(), Executor: executor, HeartbeatTick: hb, ElectionTick: election, IsManager: ismanager, }) if err != nil { return err } if err := n.Start(ctx); err != nil { return err } c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt)
} flags := cmd.Flags() spec := &cluster.Spec var rotation api.KeyRotation if flags.Changed("certexpiry") { cePeriod, err := flags.GetDuration("certexpiry") if err != nil { return err } ceProtoPeriod := ptypes.DurationProto(cePeriod) spec.CAConfig.NodeCertExpiry = ceProtoPeriod } if flags.Changed("external-ca") { spec.CAConfig.ExternalCAs = externalCAOpt.Value() } if flags.Changed("taskhistory") { taskHistory, err := flags.GetInt64("taskhistory") if err != nil { return err } spec.Orchestration.TaskHistoryRetentionLimit = taskHistory } if flags.Changed("heartbeatperiod") { hbPeriod, err := flags.GetDuration("heartbeatperiod") if err != nil { return err } spec.Dispatcher.HeartbeatPeriod = ptypes.DurationProto(hbPeriod) }