Implement support for Azure storage message queue triggers (#371)
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.
This commit is contained in:
+11
-11
@@ -39,7 +39,7 @@ The following table lists the configurable parameters of the Fission chart and t
|
||||
|
||||
| Parameter | Description | Default |
|
||||
| ------------------- | ------------------------------------------ | ------------------------ |
|
||||
| `serviceType` | Type of service to use | `LoadBalancer`. |
|
||||
| `serviceType` | Type of service to use | `LoadBalancer` |
|
||||
| `image` | Fission image | `fission/fission-bundle` |
|
||||
| `imageTag` | Fission image tag | `alpha20170124` |
|
||||
| `fetcherImage` | Fission fetcher image | `fission/fetcher` |
|
||||
@@ -49,18 +49,18 @@ The following table lists the configurable parameters of the Fission chart and t
|
||||
| `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` |
|
||||
| `nats.authToken` | Nats streaming auth token | `defaultFissionAuthToken` |
|
||||
| `nats.clusterID` | Nats streaming clusterID | `fissionMQTrigger` |
|
||||
|
||||
|
||||
| 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,
|
||||
|
||||
|
||||
@@ -444,6 +444,7 @@ spec:
|
||||
# serviceAccount: fission-svc
|
||||
|
||||
---
|
||||
{{- if eq .Values.messageQueue.type "nats-streaming" }}
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
@@ -469,6 +470,7 @@ spec:
|
||||
- containerPort: 4222
|
||||
hostPort: 4222
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
|
||||
---
|
||||
apiVersion: extensions/v1beta1
|
||||
@@ -492,9 +494,19 @@ spec:
|
||||
args: ["--mqt"]
|
||||
env:
|
||||
- name: MESSAGE_QUEUE_TYPE
|
||||
value: nats-streaming
|
||||
value: {{ .Values.messageQueue.type }}
|
||||
{{- if eq .Values.messageQueue.type "nats-streaming" }}
|
||||
- name: MESSAGE_QUEUE_URL
|
||||
value: nats://{{ .Values.nats.authToken }}@nats-streaming:4222
|
||||
{{- else if eq .Values.messageQueue.type "azure-storage-queue" }}
|
||||
- name: AZURE_STORAGE_ACCOUNT_NAME
|
||||
value: {{ required "An Azure storage account name is required." .Values.azureStorageQueue.accountName }}
|
||||
- name: AZURE_STORAGE_ACCOUNT_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: azure-storage-account-key
|
||||
key: key
|
||||
{{- end }}
|
||||
serviceAccount: fission-svc
|
||||
|
||||
---
|
||||
|
||||
@@ -7,4 +7,17 @@ metadata:
|
||||
type: Opaque
|
||||
data:
|
||||
username: {{ .Values.logger.influxdbAdmin | b64enc | quote }}
|
||||
password: {{ randAlphaNum 20 | b64enc | quote }}
|
||||
password: {{ randAlphaNum 20 | b64enc | quote }}
|
||||
|
||||
---
|
||||
{{- if eq .Values.messageQueue.type "azure-storage-queue" }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: azure-storage-account-key
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
||||
type: Opaque
|
||||
data:
|
||||
key: {{ required "An Azure storage access key is required." .Values.azureStorageQueue.key | b64enc | quote }}
|
||||
{{- end }}
|
||||
|
||||
@@ -36,6 +36,7 @@ spec:
|
||||
svc: controller
|
||||
|
||||
---
|
||||
{{- if eq .Values.messageQueue.type "nats-streaming" }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
@@ -53,6 +54,7 @@ spec:
|
||||
{{ end }}
|
||||
selector:
|
||||
svc: nats-streaming
|
||||
{{- end }}
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
|
||||
@@ -44,12 +44,21 @@ logger:
|
||||
fluentdImage: fission/fluentd
|
||||
fluentdImageTag: 0.5.0
|
||||
|
||||
## Type of Queue you would like to use
|
||||
## currently supports nats-streaming, azure-storage-queue
|
||||
messageQueue:
|
||||
type: nats-streaming
|
||||
|
||||
## Message queue trigger config
|
||||
### NATS Streaming
|
||||
nats:
|
||||
authToken: "defaultFissionAuthToken"
|
||||
clusterID: "fissionMQTrigger"
|
||||
|
||||
## Required if messageQueue type is azure-storage-queue
|
||||
azureStorageQueue:
|
||||
key: ""
|
||||
accountName: ""
|
||||
|
||||
## Persist data to a persistent volume.
|
||||
persistence:
|
||||
|
||||
Reference in New Issue
Block a user