albertrdixon / romulus

A kubernetes ingress controller
MIT License
103 stars 12 forks source link

Add build & install quick-start instructions #23

Open willmore opened 8 years ago

willmore commented 8 years ago

Please add minimal install instructions that assume little-to-no knowledge of the Go environment.

After cloning the project, I ran make install (after a quick peak at the Makefile). The install failed with hard-to-follow (for non-gopher) errors.

After googling around I was able to piece together commands and setup required to install Romulus. I, and assumedly others, would appreciate some "quick-start" instructions.

cmoad commented 8 years ago

I second this. I'm having a hard time building based on instructions I have found for godep.

~/Source/romulus: export GOPATH=$(godep path)
~/Source/romulus: make build
--> Building romulusd with ldflags '-s -X main.SHA=c3608443'
engine.go:16:2: cannot find package "github.com/timelinelabs/romulus/kubernetes" in any of:
    /usr/local/Cellar/go/1.5.3/libexec/src/github.com/timelinelabs/romulus/kubernetes (from $GOROOT)
    /Users/cmoad/Source/romulus/Godeps/_workspace/src/github.com/timelinelabs/romulus/kubernetes (from $GOPATH)
    /Users/cmoad/Source/romulus/Godeps/_workspace/src/github.com/timelinelabs/romulus/kubernetes
engine.go:17:2: cannot find package "github.com/timelinelabs/romulus/loadbalancer" in any of:
    /usr/local/Cellar/go/1.5.3/libexec/src/github.com/timelinelabs/romulus/loadbalancer (from $GOROOT)
    /Users/cmoad/Source/romulus/Godeps/_workspace/src/github.com/timelinelabs/romulus/loadbalancer (from $GOPATH)
    /Users/cmoad/Source/romulus/Godeps/_workspace/src/github.com/timelinelabs/romulus/loadbalancer
main.go:15:2: cannot find package "github.com/timelinelabs/romulus/loadbalancer/traefik" in any of:
    /usr/local/Cellar/go/1.5.3/libexec/src/github.com/timelinelabs/romulus/loadbalancer/traefik (from $GOROOT)
    /Users/cmoad/Source/romulus/Godeps/_workspace/src/github.com/timelinelabs/romulus/loadbalancer/traefik (from $GOPATH)
    /Users/cmoad/Source/romulus/Godeps/_workspace/src/github.com/timelinelabs/romulus/loadbalancer/traefik
main.go:16:2: cannot find package "github.com/timelinelabs/romulus/loadbalancer/vulcand" in any of:
    /usr/local/Cellar/go/1.5.3/libexec/src/github.com/timelinelabs/romulus/loadbalancer/vulcand (from $GOROOT)
    /Users/cmoad/Source/romulus/Godeps/_workspace/src/github.com/timelinelabs/romulus/loadbalancer/vulcand (from $GOPATH)
    /Users/cmoad/Source/romulus/Godeps/_workspace/src/github.com/timelinelabs/romulus/loadbalancer/vulcand
godep: go exit status 1
make: *** [build] Error 1
cescoferraro commented 8 years ago

@cmoad I think you need to run the below code, it will download all dependencies. go get -v github.com/timelinelabs/romulus Other thing that you might try is to GO15VENDOREXPERIMENT=1 make build a quick read on this will show you what it does. Make sure you use go 1.5 or higher

pinootto commented 8 years ago

I also have trouble to build the project. I am a beginner of Go.

First error is:

[root@localhost romulus]# make
--> Running all tests

make: godep: Command not found
make: *** [test] Error 127

Then I tried to install godep:

[root@localhost romulus]# go get github.com/tools/godep
package github.com/tools/godep: cannot download, $GOPATH not set. For more details see: go help gopath

Then I export:

[root@localhost romulus]# export GOPATH=/opt/romulus

But I also get the same error:

[root@localhost romulus]# make
--> Running all tests

godep: [WARNING]: godep should only be used inside a valid go package directory and
godep: [WARNING]: may not function correctly. You are probably outside of your $GOPATH.
godep: [WARNING]:       Current Directory: /opt/romulus
godep: [WARNING]:       $GOPATH: /opt/romulus
engine.go:16:2: cannot find package "github.com/timelinelabs/romulus/kubernetes" in any of:
        /usr/lib/golang/src/github.com/timelinelabs/romulus/kubernetes (from $GOROOT)
        /opt/romulus/Godeps/_workspace/src/github.com/timelinelabs/romulus/kubernetes (from $GOPATH)
        /opt/romulus/src/github.com/timelinelabs/romulus/kubernetes
engine.go:17:2: cannot find package "github.com/timelinelabs/romulus/loadbalancer" in any of:
        /usr/lib/golang/src/github.com/timelinelabs/romulus/loadbalancer (from $GOROOT)
        /opt/romulus/Godeps/_workspace/src/github.com/timelinelabs/romulus/loadbalancer (from $GOPATH)
        /opt/romulus/src/github.com/timelinelabs/romulus/loadbalancer
main.go:15:2: cannot find package "github.com/timelinelabs/romulus/loadbalancer/traefik" in any of:
        /usr/lib/golang/src/github.com/timelinelabs/romulus/loadbalancer/traefik (from $GOROOT)
        /opt/romulus/Godeps/_workspace/src/github.com/timelinelabs/romulus/loadbalancer/traefik (from $GOPATH)
        /opt/romulus/src/github.com/timelinelabs/romulus/loadbalancer/traefik
main.go:16:2: cannot find package "github.com/timelinelabs/romulus/loadbalancer/vulcand" in any of:
        /usr/lib/golang/src/github.com/timelinelabs/romulus/loadbalancer/vulcand (from $GOROOT)
        /opt/romulus/Godeps/_workspace/src/github.com/timelinelabs/romulus/loadbalancer/vulcand (from $GOPATH)
        /opt/romulus/src/github.com/timelinelabs/romulus/loadbalancer/vulcand
godep: go exit status 1
make: *** [test] Error 1
cescoferraro commented 8 years ago

@pinootto try the GO15VENDOREXPERIMENT

pinootto commented 8 years ago

OK.

I tried and I got the following error:

[root@localhost romulus]# GO15VENDOREXPERIMENT=1 make build
--> Building romulusd with ldflags '-s -X main.SHA=c3608443'
godep: [WARNING]: godep should only be used inside a valid go package directory and
godep: [WARNING]: may not function correctly. You are probably outside of your $GOPATH.
godep: [WARNING]:       Current Directory: /opt/romulus
godep: [WARNING]:       $GOPATH: /opt/romulus
# command-line-arguments
./engine.go:59: too many arguments in call to kubernetes.GenResources
./engine.go:73: too many arguments in call to kubernetes.GenResources
./engine.go:78: e.Cache.ServiceDeleted undefined (type *kubernetes.Cache has no field or method ServiceDeleted)
./engine.go:92: too many arguments in call to kubernetes.GenResources
./engine.go:98: too many arguments in call to kubernetes.GenResources
godep: go exit status 2
make: *** [build] Error 1
cescoferraro commented 8 years ago

you need to clone this repo at $GOPATH/src/github.com/timelinelabs/romulus the import on the go files must match the repo location @pinootto

pinootto commented 8 years ago

OK. I built the romulusd.

Thanks.

minikiller commented 8 years ago

@cescoferraro
where is this command come from go get -v github.com/timelinelabs/romulus? Thanks.

cescoferraro commented 8 years ago

this command install romulus at the $GOPATH/src/github.com/timelinelabs/romulus. but in go there is no -v flag that I know of. I think you mean -u which download all the dependencies. the you can get into the directory and build it with a simple make build, because go will find all the dependencies you have just installed on your gopath