6.8 KiB
6.8 KiB
Fission
Fission is a framework for serverless functions on Kubernetes.
Prerequisites
- Kubernetes 1.9 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 Fission Controller service to use. For minikube, set this to NodePort, elsewhere use LoadBalancer or ClusterIP. | ClusterIP |
routerServiceType |
Type of Fission Router service to use. For minikube, set this to NodePort, elsewhere use LoadBalancer or ClusterIP. | LoadBalancer |
repository |
Image base repository | index.docker.io |
image |
Fission image repository | fission/fission-bundle |
imageTag |
Fission image tag | 1.8.0 |
pullPolicy |
Image pull policy | IfNotPresent |
fetcher.image |
Fission fetcher repository | fission/fetcher |
fetcher.imageTag |
Fission fetcher image tag | 1.8.0 |
controllerPort |
Fission Controller service port | 31313 |
routerPort |
Fission Router service port | 31314 |
functionNamespace |
Namespace in which to run fission functions (this is different from the release namespace) | fission-function |
builderNamespace |
Namespace in which to run fission builders (this is different from the release namespace) | fission-builder |
enableIstio |
Enable istio integration | false |
persistence.enabled |
If true, persist data to a persistent volume | true |
persistence.existingClaim |
Provide an existing PersistentVolumeClaim instead of creating a new one | nil |
persistence.storageClass |
PersistentVolumeClaim storage class | nil |
persistence.accessMode |
PersistentVolumeClaim access mode | ReadWriteOnce |
persistence.size |
PersistentVolumeClaim size | 8Gi |
analytics |
Analytics let us count how many people installed fission. Set to false to disable analytics | true |
analyticsNonHelmInstall |
Internally used for generating an analytics job for non-helm installs | false |
pruneInterval |
The frequency of archive pruner (in minutes) | 60 |
preUpgradeChecksImage |
Fission pre-install/pre-upgrade checks live in this image | fission/pre-upgrade-checks |
debugEnv |
If there are any pod specialization errors when a function is triggered and this flag is set to true, the error summary is returned as part of http response | true |
prometheus.enabled |
Set to true if prometheus needs to be deployed along with fission | true in fission-all, false in fission-core |
prometheus.serviceEndpoint |
If prometheus.enabled is false, please assign the prometheus service URL that is accessible by components. | nil |
canaryDeployment.enabled |
Set to true if you need canary deployment feature | true in fission-all, false in fission-core |
extraCoreComponentPodConfig |
Extend the container specs for the core fission pods. Can be used to add things like affinty/tolerations/nodeSelectors/etc. | None |
executor.adoptExistingResources |
If true, executor will try to adopt existing resources created by the old executor instance. | false |
router.deployAsDaemonSet |
Deploy router as DaemonSet instead of Deployment | false |
router.svcAddressMaxRetries |
Max retries times for router to retry on a certain service URL returns from cache/executor | 5 |
router.svcAddressUpdateTimeout |
The length of update lock expiry time for router to get a service URL returns from executor | 30 |
router.svcAnnotations |
Annotations for router service | None |
router.useEncodedPath |
For router to match encoded path. If true, "/foo%2Fbar" will match the path "/{var}"; Otherwise, it will match the path "/foo/bar". | false |
router.traceSamplingRate |
Uniformly sample traces with the given probabilistic sampling rate | 0.5 |
router.roundTrip.disableKeepAlive |
Disable transport keep-alive for fast switching function version | true |
router.roundTrip.keepAliveTime |
The keep-alive period for an active network connection to function pod | 30s |
router.roundTrip.timeout |
HTTP transport request timeout | 50ms |
router.roundTrip.timeoutExponent |
The length of request timeout will multiply with timeoutExponent after each retry | 2 |
router.roundTrip.maxRetries |
Max retries times of a failed request | 10 |
Extra configuration for fission-all
| Parameter | Description | Default |
|---|---|---|
createNamespace |
If true, create fission-function and fission-builder namespaces |
true |
logger.influxdbAdmin |
Log database admin username | admin |
logger.fluentdImageRepository |
Logger fluentbit image repository | index.docker.io |
logger.fluentdImage |
Logger fluentbit image | fluent/fluent-bit |
logger.fluentdImageTag |
Logger fluentbit image tag | 1.0.4 |
nats.enabled |
Nats streaming enabled | true |
nats.authToken |
Nats streaming auth token | defaultFissionAuthToken |
nats.clusterID |
Nats streaming clusterID | fissionMQTrigger |
natsStreamingPort |
Nats streaming service port | 31316 |
azureStorageQueue.enabled |
Azure storage account name | false |
azureStorageQueue.key |
Azure storage account name | "" |
azureStorageQueue.accountName |
Azure storage access key | "" |
kafka.enabled |
Kafka trigger enabled | false |
kafka.brokers |
Kafka brokers uri | broker.kafka:9092 |
kafka.version |
Kafka broker version | nil |
heapster |
Enable Heapster (only enable this in clusters where heapster does not exist already) | false |
Please note that deploying of Azure Storage Queue or Kafka is not done by Fission chart and you will have to explicitly deploy them.
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 and routerServiceType to NodePort:
$ helm install --name my-release --set serviceType=NodePort,routerServiceType=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