80 lines
2.8 KiB
Markdown
80 lines
2.8 KiB
Markdown
|
|
# Developing gorealis
|
|
|
|
|
|
### Installing Docker
|
|
|
|
For our developer environment we leverage of Docker containers.
|
|
|
|
First you must have Docker installed. Instructions on how to install Docker
|
|
vary from platform to platform and can be found [here](https://docs.docker.com/install/).
|
|
|
|
### Installing docker-compose
|
|
|
|
To make the creation of our developer environment as simple as possible, we leverage
|
|
docker-compose to bring up all independent components up separately.
|
|
|
|
This also allows us to delete and recreate our development cluster very quickly.
|
|
|
|
To install docker-compose please follow the instructions for your platform
|
|
[here](https://docs.docker.com/compose/install/).
|
|
|
|
### Getting the source code
|
|
|
|
`$ git clone https://github.com/aurora-scheduler/gorealis`
|
|
|
|
Inside of the newly cloned repo you may download dependencies to the local cache using go mod
|
|
|
|
`$ go mod download`
|
|
|
|
### Bringing up the cluster
|
|
|
|
To develop gorealis, you will need a fully functioning Mesos cluster along with
|
|
the Aurora Scheduler.
|
|
|
|
In order to bring up our docker-compose set up execute the following command from the root
|
|
of the git repository:
|
|
|
|
`$ docker-compose up -d`
|
|
|
|
### Testing code
|
|
|
|
Since Docker does not work well using host mode under MacOS, a workaround has been employed:
|
|
docker-compose brings up a bridged network.
|
|
|
|
* The ports 8081 is exposed for Aurora. http://localhost:8081 will load the Aurora Web UI.
|
|
* The port 5050 is exposed for Mesos. http://localhost:5050 will load the Mesos Web UI.
|
|
|
|
#### Note for developers on MacOS:
|
|
Running the cluster using a bridged network on MacOS has some side effects.
|
|
Since Aurora exposes it's internal IP location through Zookeeper, gorealis will determine
|
|
the address to be 192.168.33.7. The address 192.168.33.7 is valid when running in a Linux
|
|
environment but not when running under MacOS. To run code involving the ZK leader fetcher
|
|
(such as the tests), a container connected to the network needs to be launched.
|
|
|
|
For example, running the tests in a container can be done through the following command from
|
|
the root of the git repository:
|
|
|
|
`$ docker run -t -v $(pwd):/go/src/github.com/aurora-scheduler/gorealis --network gorealis_aurora_cluster golang:1.14.3-alpine go test github.com/paypal/gorealis`
|
|
|
|
Or
|
|
|
|
`$ ./runTestsMac.sh`
|
|
|
|
Alternatively, if an interactive shell is necessary, the following command may be used:
|
|
`$ docker run -it -v $(pwd):/go/src/github.com/paypal/gorealis --network gorealis_aurora_cluster golang:1.14.3-alpine /bin/sh`
|
|
|
|
### Cleaning up the cluster
|
|
|
|
If something went wrong while developing and a clean environment is desired, perform the
|
|
following command from the root of the git directory:
|
|
|
|
`$ docker-compose down && docker-compose up -d`
|
|
|
|
|
|
### Tearing down the cluster
|
|
|
|
Once development is done, the environment may be torn down by executing (from the root of the
|
|
git directory):
|
|
|
|
`$ docker-compose down`
|