These commits implement support for consuming messages from an Azure storage queue to trigger Fission functions. * Add stubbed Azure message queue implementation and modify Helm charts. This commit stubs an implementation for an Azure storage message queue trigger that will be completed by future commits. It also modifies the Helm chart to add support for deploying Fission with an mqtrigger configured for Azure storage queue triggers. * Add Azure Go SDK to glide. This commit adds the Azure Go SDK to glide for the upcoming work to support Azure storage queue triggers. * Implement Azure message queue trigger. This commit implements a message queue trigger based on Azure storage queues. Required message queue trigger manager environment variables: * AZURE_STORAGE_ACCOUNT_NAME - the Azure storage account to use. * AZURE_STORAGE_ACCOUNT_KEY - the Azure storage account key. When creating a message queue trigger, the topic will be the Azure storage queue to receive messages from. * Add CA certificates to fission-bundle. This commit adds the root CA certificates to the fission-bundle image. This allows Fission to contact third-party APIs that use HTTPS with root CA signed certificates. * Add Makefile to build and test. This commit adds a simple Makefile for building the client and bundle, running tests, creating the Docker image, and pushing the Docker image.
3.8 KiB
3.8 KiB
Fission
Fission is a framework for serverless functions on Kubernetes.
Prerequisites
- Kubernetes 1.8 or later
Helm charts
The following table lists two helm charts for Fission.
| Parameter | Description |
|---|---|
fission-core |
FaaS essentials, and triggers for HTTP, Timers and Kubernetes Watches |
fission-all |
Log aggregation with fluentd and InfluxDB; NATS for message queue triggers; Fission-UI |
Installing the chart
To install the chart with the release name my-release,
$ helm install --name my-release fission-all
Uninstalling the chart
To uninstall/delete chart,
$ helm delete my-release
Configuration
The following table lists the configurable parameters of the Fission chart and their default values.
| Parameter | Description | Default |
|---|---|---|
serviceType |
Type of service to use | LoadBalancer |
image |
Fission image | fission/fission-bundle |
imageTag |
Fission image tag | alpha20170124 |
fetcherImage |
Fission fetcher image | fission/fetcher |
fetcherImageTag |
Fission fetcher image tag | latest |
controllerPort |
Fission Controller Service Port | 31313 |
routerPort |
Fission Router Service Port | 31314 |
functionNamespace |
Namespace for Fission functions | fission-function |
builderNamespace |
Namespace for Fission environment builders | fission-builder |
- Extra configuration for
fission-all
| Parameter | Description | Default |
|---|---|---|
logger.influxdbAdmin |
Log database admin username | admin |
logger.fluentdImage |
Logger fluentd image | fission/fluentd |
fissionUiImage |
Fission ui image | fission/fission-ui:0.1.0 |
messageQueue |
Message queue type | nats-streaming |
nats.authToken |
Nats streaming auth token | defaultFissionAuthToken |
nats.clusterID |
Nats streaming clusterID | fissionMQTrigger |
azureStorageQueue.accountName |
Azure storage account name | None (required if messageQueue is azure-storage-queue) |
azureStorageQueue.key |
Azure storage access key | None (required if messageQueue is azure-storage-queue) |
Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,
$ helm install --name my-release --set image=custom/fission-bundle,imageTag=v1 fission-all
If you're using minikube, set serviceType to NodePort:
$ helm install --name my-release --set serviceType=NodePort fission-all
You can also set parameters with a yaml file (see values.yaml for what it should look like):
$ helm install --name my-release -f values.yaml fission-all