This project follows the contributing guide for OpenFaaS.
The project-level contributing guide contains instructions specifically relating to faas-netes.
Any changes to the helm chart will also need a corresponding change in the Chart.yml file to bump up the version.
-
How to generate new charts
This step should only be run by a maintainer, and not by contributors because it causes merge conflicts which are hard to unpick.
This currently requires helm3 to be in your
PATH
. The arkade tool can download helm, if you need it viaarkade get helm
.Run:
make charts
-
Plain YAML files
The plain YAML files are generated by
make charts
, this includes ARMHF/ARM64. -
Picking a version
For version updates please review the Semantic Versioning guidelines.
Arm builds are provided on a best effort basis by OpenFaaS Ltd. If you need an updated Arm build or have run into an issue, then please contact the project team by creating an Issue.
A Makefile and a series of scripts automates the creation of a local Kubernetes cluster with OpenFaaS preinstalled. Kubernetes in Docker (KinD) is used to create a single-node cluster and install the latest version of OpenFaaS via the Helm chart.
make start-kind
This environment has two goals:
- match the environment we use in CI for integration tests and validating the Helm chart. We use the same scripts in CI to setup and test function deployments in faas-netes.
- as much as is possible, enable completely offline and cost-free development, i.e. Airplane mode. If you have the latest base images for Go, you should not require an internet connection.
You can use OF_DEV_ENV
to set a custom name for the cluster. The default value is kind
.
As you are developing on faas-netes
, you will want to build and test your own local images. This can easily be done using the following commands
make build
kind load docker-image --name="${OF_DEV_ENV:-kind}" openfaas/faas-netes:latest
helm upgrade openfaas --install openfaas/openfaas \
--namespace openfaas \
--set basic_auth=true \
--set openfaasImagePullPolicy=IfNotPresent \
--set faasnetes.image=openfaas/faas-netes:latest \
--set functionNamespace=openfaas-fn
Note that this technique can also be used to test locally built functions, thus avoiding the need to push the image to a remote registry.
This command will port-forward the OpenFaaS Gateway to your local port 31112.
You can stop the forwarding with:
kill $(<"of_${OF_DEV_ENV:-kind}_portforward.pid")
To manually restart the port-forward, use:
kubectl port-forward deploy/gateway -n openfaas 31112:8080 &>/dev/null & echo -n "$!" > "of_${OF_DEV_ENV:-kind}_portforward.pid"
For simplicity, a restart script is provided in contrib
./contrib/restart_port_forward.sh
Or stop the entire environment and cleanup using
make stop-kind