A Kubernetes-Native way to run pulsar functions, connectors and composed function meshes.
curl -sSL https://github.com/streamnative/function-mesh/releases/download/v0.28.0/install.sh | bash
The above command installs all the CRDs, required service account configuration, and all function-mesh operator components. Before you start running a function-mesh example, verify if Function Mesh is installed correctly.
Note:
install.sh is suitable for trying Function Mesh out. If you want to use Function Mesh in production or other serious scenarios, Helm is the recommended deployment method.
This table outlines the supported Kubernetes versions. We have tested these versions in their respective branches. But note that other versions might work as well.
| Function Mesh operator | Kubernetes 1.19 | Kubernetes 1.20 | Kubernetes 1.21 | Kubernetes 1.22 | Kubernetes 1.23 | Kubernetes 1.24 | Kubernetes 1.25 |
|---|---|---|---|---|---|---|---|
v0.20.0 |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
v0.19.0 |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
v0.18.0 |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
v0.17.0 |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
v0.16.0 |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
v0.15.0 |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
v0.14.0 |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
v0.13.0 |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
v0.12.0 |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
v0.11.2 |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Master |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
git clone https://github.com/streamnative/function-mesh.git
Note
The following command will generate the scaffolding files in the
api/<version>/path, in this caseapi/v1alpha1, and then you need to move the files contained in it to theapi/<group>/<version>directory manually, in this caseapi/compute/v1alpha1.
operator-sdk create api --group compute --version v1alpha1 --kind Function --resource=true --controller=true
operator-sdk create webhook --group compute.functionmesh.io --version v1alpha1 --kind Function --defaulting --programmatic-validation
The image build targets accept PLATFORMS as a comma-separated Docker platform list.
make docker-build PLATFORMS=linux/amd64,linux/arm64
make operator-docker-image PLATFORMS=linux/amd64,linux/arm64
PLATFORMS=linux/amd64,linux/arm64 PUSH=true images/build.sh
Single-platform builds still default to linux/amd64. Multi-platform builds use docker buildx and push a manifest list directly, so they require an authenticated registry session.
gcloud container clusters get-credentials cluster-1 --region $CLUSTER_REGION --project $PROJECT_ID
make generate
make install
make run
./config/samples directory
kubectl apply -f config/samples/compute_v1alpha1_function.yaml
kubectl, and you will see the function pod is running
$ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/function-sample-0 1/1 Running 0 77s