Docs update (#542)

* Misc doc updates

* Some theme updates: no all caps headers, remove blue arrows
This commit is contained in:
Soam Vasani
2018-03-09 11:26:15 -08:00
committed by GitHub
parent e7c9a67a68
commit 1ea665386a
11 changed files with 85 additions and 64 deletions
@@ -1,28 +1,38 @@
---
title: "Accessing Secret/configmap in function"
title: "Accessing Secrets in Functions"
draft: false
weight: 47
---
From fission v0.5.0 and later, functions are able to access [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/) and [ConfigMaps](https://kubernetes.io/docs/concepts/storage/volumes/#configmap) specified by users.
Functions can access Kubernetes
[Secrets](https://kubernetes.io/docs/concepts/configuration/secret/)
and
[ConfigMaps](https://kubernetes.io/docs/concepts/storage/volumes/#configmap).
### Create Secret and ConfigMap
Use secrets for things like API keys, authentication tokens, and so
on.
You can create Secret and ConfigMap with CLI.
Use config maps for any other configuration that doesn't need to be a
secret.
### Create A Secret or a ConfigMap
You can create a Secret or ConfigMap with the Kubernetes CLI:
``` bash
$ kubectl -n default create secret generic foo --from-literal=TEST_KEY="TESTVALUE"
$ kubectl -n default create configmap bar --from-literal=TEST_KEY=TESTVALUE
$ kubectl -n default create secret generic my-secret --from-literal=TEST_KEY="TESTVALUE"
$ kubectl -n default create configmap my-configmap --from-literal=TEST_KEY="TESTVALUE"
```
Or use `kubectl create -f <filename.yaml>` to create these from a YAML file.
Or, use `kubectl create -f <filename.yaml>` to create these from a YAML file.
``` yaml
apiVersion: v1
kind: Secret
metadata:
namespace: default
name: foo
name: my-secret
data:
TEST_KEY: VEVTVFZBTFVF # value after base64 encode
type: Opaque
@@ -32,14 +42,16 @@ apiVersion: v1
kind: ConfigMap
metadata:
namespace: default
name: bar
name: my-configmap
data:
TEST_KEY: TESTVALUE
```
### Access Secret and ConfigMap
### Accessing Secrets and ConfigMaps
Since content of Secret and ConfigMap are key-value pairs, functions can access them with following paths:
Secrets and configmaps are accessed similarly. Each secret or
configmap is a set of key value pairs. Fission sets these up as files
you can read from your function.
``` bash
# Secret path
@@ -52,24 +64,25 @@ Since content of Secret and ConfigMap are key-value pairs, functions can access
From the previous example, the paths are:
``` bash
# secret foo
/secrets/default/foo/TEST_KEY
# secret my-secret
/secrets/default/my-secret/TEST_KEY
# confimap bar
/configs/default/bar/TEST_KEY
# confimap my-configmap
/configs/default/my-configmap/TEST_KEY
```
Now, let's create a simple python function (leaker.py) that return value of Secret `foo` and ConfigMap `bar`.
Now, let's create a simple python function (leaker.py) that returns
the value of Secret `my-secret` and ConfigMap `my-configmap`.
``` python
# leaker.py
def main():
path = "/configs/default/bar/TEST_KEY"
path = "/configs/default/my-configmap/TEST_KEY"
f = open(path, "r")
config = f.read()
path = "/secrets/default/foo/TEST_KEY"
path = "/secrets/default/my-secret/TEST_KEY"
f = open(path, "r")
secret = f.read()
@@ -79,27 +92,29 @@ def main():
```
Create environment, function and http trigger.
Create an environment and a function:
``` bash
# create python env
$ fission env create --name python --image fission/python-env
# create function named "leaker"
$ fission fn create --name leaker --env python --code leaker.py --secret foo --configmap bar
# create route(http trigger)
$ fission route create --function leaker --url /leaker --method GET
$ fission fn create --name leaker --env python --code leaker.py --secret my-secret --configmap my-configmap
```
Try to access the function, the output should look like following.
Run the function, and the output should look like this:
``` bash
$ curl http://$FISSION_ROUTER/leaker
$ fission function test --name leaker
ConfigMap: TESTVALUE
Secret: TESTVALUE
```
Note: If the Secret or ConfigMap value is updated, the function may not get the updated value for some time; it may get a cached older value.
{{% notice note %}}
If the Secret or ConfigMap value is updated, the function may
not get the updated value for some time; it may get a cached older
value.
{{% /notice %}}
@@ -22,7 +22,7 @@ When you create an environment, you can specify a builder image and builder comm
fission env create --name python --image fission/python-env:latest --builder fission/python-builder:latest
```
### Viweing environment information
### Viewing environment information
You can list the environments or view information of an individual environment:
@@ -34,4 +34,4 @@ $
$ fission env get --name node
NAME UID IMAGE
node ac84d62e-001f-11e8-85c9-42010aa00010 fission/node-env:0.4.0
```
```
@@ -1,5 +1,5 @@
---
title: "Trigger"
title: "Triggers"
draft: false
weight: 44
---
@@ -38,11 +38,16 @@ halfhourly 0 30 * * * hello
minute @every 1m hello
```
### Create a MQ Trigger
### Create a Message Queue Trigger
For creating a MQ based trigger which will invoke the function when a new message arrives in newfile topic, you can use the syntax below. The response of the function execution will be sent to topic newfileresponse.
A message queue trigger invokes a function based on messages from an
message queue. Currently, NATS and Azure Storage Queue are supported
queues. (Kafka support is under development.)
```
$ fission mqt create --name hellomsg --function hello --mqtype nats-streaming --topic newfile --resptopic newfileresponse
trigger 'hellomsg' created
```
```
You can list or update message queue triggers with `fission mqt list`,
or `fission mqt update`.