Update README, create separate install instructions
This commit is contained in:
+112
@@ -0,0 +1,112 @@
|
|||||||
|
* [Running Fission on your Cluster](#running-fission-on-your-cluster)
|
||||||
|
* [Setup Kubernetes](#setup-kubernetes)
|
||||||
|
* [Mac](#install-and-start-kubernetes-on-osx)
|
||||||
|
* [Linux](#or-install-and-start-kubernetes-on-linux)
|
||||||
|
* [Verify access to the cluster](#verify-access-to-the-cluster)
|
||||||
|
* [Get and Run Fission: Minikube or Local cluster](#get-and-run-fission-minikube-or-local-cluster)
|
||||||
|
* [Get and Run Fission: GKE or other Cloud](#get-and-run-fission-gke-or-other-cloud)
|
||||||
|
* [Install the client CLI](#install-the-client-cli)
|
||||||
|
* [Run an example](#run-an-example)
|
||||||
|
|
||||||
|
## Running Fission on your Cluster
|
||||||
|
|
||||||
|
### Setup Kubernetes
|
||||||
|
|
||||||
|
You can install Kubernetes on your laptop with [minikube](https://github.com/kubernetes/minikube):
|
||||||
|
|
||||||
|
#### Install and start Kubernetes on OSX:
|
||||||
|
```bash
|
||||||
|
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin
|
||||||
|
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.14.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
|
||||||
|
$ minikube start
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Or, install and start Kubernetes on Linux:
|
||||||
|
```bash
|
||||||
|
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin
|
||||||
|
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.14.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
|
||||||
|
$ minikube start
|
||||||
|
```
|
||||||
|
|
||||||
|
Or, you can use [Google Container Engine's](https://cloud.google.com/container-engine/) free trial to get a 3 node cluster.
|
||||||
|
|
||||||
|
### Verify access to the cluster
|
||||||
|
|
||||||
|
```
|
||||||
|
$ kubectl version
|
||||||
|
```
|
||||||
|
|
||||||
|
### Get and Run Fission: Minikube or Local cluster
|
||||||
|
|
||||||
|
If you're using minikube or no cloud provider, use these commands to
|
||||||
|
set up services with NodePort. This exposes fission on ports 31313
|
||||||
|
and 31314.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ kubectl create -f http://fission.io/fission.yaml
|
||||||
|
$ kubectl create -f http://fission.io/fission-nodeport.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
Set the FISSION_URL and FISSION_ROUTER environment variables.
|
||||||
|
FISSION_URL is used by the fission CLI to find the server.
|
||||||
|
FISSION_URL should be prefixed with a `http://`. (FISSION_ROUTER is
|
||||||
|
only needed for the examples below to work.)
|
||||||
|
|
||||||
|
If you're using minikube, use these commands:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ export FISSION_URL=http://$(minikube ip):31313
|
||||||
|
$ export FISSION_ROUTER=$(minikube ip):31314
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Get and Run Fission: GKE or other Cloud
|
||||||
|
|
||||||
|
If you're using GKE or any other cloud provider that supports the
|
||||||
|
LoadBalancer service type, use these commands:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ kubectl create -f http://fission.io/fission.yaml
|
||||||
|
$ kubectl create -f http://fission.io/fission-cloud.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
Save the external IP addresses of controller and router services in
|
||||||
|
FISSION_URL and FISSION_ROUTER, respectively. Wait for services to
|
||||||
|
get IP addresses (check this with ```kubectl --namespace fission get
|
||||||
|
svc```). Then:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ export FISSION_URL=http://$(kubectl --namespace fission get svc controller -o=jsonpath='{..ip}')
|
||||||
|
$ export FISSION_ROUTER=$(kubectl --namespace fission get svc router -o=jsonpath='{..ip}')
|
||||||
|
```
|
||||||
|
|
||||||
|
### Install the client CLI
|
||||||
|
|
||||||
|
Get the CLI binary for Mac:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ curl http://fission.io/mac/fission > fission && chmod +x fission && sudo mv fission /usr/local/bin/
|
||||||
|
```
|
||||||
|
|
||||||
|
Or Linux:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ curl http://fission.io/linux/fission > fission && chmod +x fission && sudo mv fission /usr/local/bin/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run an example
|
||||||
|
|
||||||
|
Finally, you're ready to use Fission!
|
||||||
|
|
||||||
|
```
|
||||||
|
$ fission env create --name nodejs --image fission/node-env
|
||||||
|
|
||||||
|
$ echo 'module.exports = function(context, callback) { callback(200, "Hello, world!\n"); }' > hello.js
|
||||||
|
|
||||||
|
$ fission function create --name hello --env nodejs --code hello.js
|
||||||
|
|
||||||
|
$ fission route create --method GET --url /hello --function hello
|
||||||
|
|
||||||
|
$ curl http://$FISSION_ROUTER/hello
|
||||||
|
Hello, world!
|
||||||
|
```
|
||||||
@@ -76,6 +76,7 @@ Usage
|
|||||||
Hello, world!
|
Hello, world!
|
||||||
```
|
```
|
||||||
|
|
||||||
|
See the [examples](examples) directory for more.
|
||||||
|
|
||||||
Running Fission on your Cluster
|
Running Fission on your Cluster
|
||||||
===============================
|
===============================
|
||||||
@@ -226,9 +227,12 @@ If you're changing the CLI:
|
|||||||
Status
|
Status
|
||||||
======
|
======
|
||||||
|
|
||||||
Fission is in early alpha. Don't use it in production just yet!
|
Fission is in early alpha. It's not suitable for production use just
|
||||||
|
yet.
|
||||||
|
|
||||||
Right now, we're looking for developer feedback -- tell us which
|
We're looking for early developer feedback -- if you do use Fission,
|
||||||
languages you care about, what use cases you might use it for, and so
|
we'd love to hear how it's working for you, what parts in particular
|
||||||
on.
|
you'd like to see improved, and so on. Talk to us on
|
||||||
|
[slack](http://slack.fission.io) or
|
||||||
|
[twitter](https://twitter.com/fissionio).
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user