Compiling Fission ================= [You only need to do this if you're making Fission changes; if you're just deploying Fission, use fission.yaml which points to prebuilt images.] You'll need the `go` compiler and tools installed, along with the [glide dependency management tool](https://github.com/Masterminds/glide#install). You'll also need docker for building images. The server side is compiled as one binary ("fission-bundle") which contains controller, poolmgr and router; it invokes the right one based on command-line arguments. To build fission-bundle: clone this repo to `$GOPATH/src/github.com/fission/fission`, then from the top level directory (if you want to build the image with the docker inside minikube, you'll need to set the proper environment variables with `eval $(minikube docker-env)`): ``` # Get dependencies $ glide install # Build fission server and an image $ pushd fission-bundle $ ./build.sh ``` You now need to build the docker image for fission. You can use `push.sh` and push it to a docker hub account. But it's easiest to use minikube and its built-in docker daemon: ``` $ eval $(minikube docker-env) $ docker build -t minikube/fission-bundle . ``` Next, install fission on your kubernetes cluster: ``` # To install, update fission.yaml to point to the image you just made: "minikube/fission-bundle" $ $EDITOR fission.yaml $ kubectl create -f fission.yaml $ kubectl create -f fission-nodeport.yaml ``` And if you're changing the CLI too, you can build it with: ``` # Build Fission CLI $ cd fission && go install ```