The Fn project is an open source, container native, and cloud agnostic serverless platform. It’s easy to use, supports every programming language, and is extensible and performant.
This chart deploys a fully functioning instance of the Fn platform on a Kubernetes cluster using the Helm package manager.
-
PV provisioner support in the underlying infrastructure (for persistent data, see below )
-
Install Helm
-
Initialize Helm by installing Tiller, the server portion of Helm, to your Kubernetes cluster
helm init
Clone the fn-helm repo:
git clone git@github.com:fnproject/fn-helm.git && cd fn-helm
Install chart dependencies from requirements.yaml:
helm dep build fn
Grant the following Docker EE permissions by using this guide:
Namespace | Service Account | Role | Resource Set |
---|---|---|---|
default | default | Restricted Control | kubernetesnamespaces |
kube-system | default | Full Control | kubernetesnamespaces |
To install the chart with the release name my-release
:
helm install --name my-release fn
Note: if you do not pass the --name flag, a release name will be auto-generated. You can view releases by running helm list (or helm ls, for short).
Assuming your release is named my-release
:
helm delete --purge my-release
The command removes all the Kubernetes components associated with the chart and deletes the release.
Key | Description | Default |
---|---|---|
fn.service.type |
ClusterIP, NodePort, LoadBalancer | LoadBalancer |
fn.service.port |
Fn service port | 80 |
fn.service.annotations |
Fn Service annotations | {} |
fnserver.resources |
Per-node resource requests, see Kubernetes Pod Resources | {} |
fnserver.nodeSelector |
Fn node selectors, see Kubernetes Assigning Pods to Nodes | {} |
fnserver.tolerations |
Node taint tolerations, see Kubernetes Taints and Tolerations | {} |
flow.service.type |
ClusterIP, NodePort, LoadBalancer | ClusterIP |
flow.service.port |
Flow Service port | 80 |
flow.service.annotations |
Flow Service annotations | {} |
ui.enabled |
Enable UI components | true |
ui.service.flowuiPort |
Fn Flow UI port for ui service | 3000 |
ui.service.fnuiPort |
Fn UI port for ui service | 4000 |
ui.service.type |
UI Service type | LoadBalancer |
rbac.enabled |
Whether to enable RBAC with a specific cluster role and binding for Fn | false |
mysql.* |
See the MySQL chart docs | |
redis.* |
See the Redis chart docs |
Fn persists application data in MySQL. This is configured using the MySQL Helm Chart.
By default this uses container storage. To configure a persistent volume, set mysql.*
values in the chart values to that which corresponds to your storage requirements.
e.g. to use an existing persistent volume claim for MySQL storage:
helm install --name testfn --set mysql.persistence.enabled=true,mysql.persistence.existingClaim=tc-fn-mysql fn