Files
fission-src/Compiling.md
T
Soam Vasani d248bb89ea Install docs improvements
Keep install docs in one place INSTALL.md instead of two.

Use github releases for all YAMLs and CLIs. This has a few advantages:
 (a) it makes releasess more transparent
 (b) all yaml/cli files are transferred over HTTPS
 (c) CLIs and YAMLs being from the same release ensures that people
     always get compatible versions (we will still occasionally break
     api compatibility, until beta)
2017-06-28 15:00:42 -07:00

1.6 KiB

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. 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