diff --git a/cmd/rudder/rudder.go b/cmd/rudder/rudder.go index e1ba4736a..30ece3998 100644 --- a/cmd/rudder/rudder.go +++ b/cmd/rudder/rudder.go @@ -26,9 +26,9 @@ import ( "google.golang.org/grpc/grpclog" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + "github.com/spf13/pflag" "k8s.io/helm/pkg/kube" rudderAPI "k8s.io/helm/pkg/proto/hapi/rudder" - "k8s.io/helm/pkg/rudder" "k8s.io/helm/pkg/tiller" "k8s.io/helm/pkg/version" ) @@ -36,24 +36,43 @@ import ( var kubeClient *kube.Client var clientset internalclientset.Interface +type options struct { + listen string +} + +func (opts *options) registerFlags() { + pflag.StringVarP(&opts.listen, "listen", "l", "127.0.0.1:10001", + "Socket for rudder grpc server (default: 127.0.0.1:10001).") +} + +func (opts *options) parseFlags() { + pflag.Parse() +} + +func (opts *options) regAndParseFlags() { + opts.registerFlags() + opts.parseFlags() +} + func main() { + opts := new(options) + opts.regAndParseFlags() var err error kubeClient = kube.New(nil) clientset, err = kubeClient.ClientSet() if err != nil { grpclog.Fatalf("Cannot initialize Kubernetes connection: %s", err) } - - lis, err := net.Listen("tcp", fmt.Sprintf(":%d", rudder.GrpcPort)) + grpclog.Printf("Creating tcp socket on %s\n", opts.listen) + lis, err := net.Listen("tcp", opts.listen) if err != nil { grpclog.Fatalf("failed to listen: %v", err) } grpcServer := grpc.NewServer() rudderAPI.RegisterReleaseModuleServiceServer(grpcServer, &ReleaseModuleServiceServer{}) - grpclog.Print("Server starting") + grpclog.Printf("Starting server on %s\n", opts.listen) grpcServer.Serve(lis) - grpclog.Print("Server started") } // ReleaseModuleServiceServer provides implementation for rudderAPI.ReleaseModuleServiceServer