{"id":13742399,"url":"https://github.com/streamnative/function-mesh","last_synced_at":"2026-04-02T21:14:03.611Z","repository":{"id":36986053,"uuid":"298439529","full_name":"streamnative/function-mesh","owner":"streamnative","description":"The serverless framework purpose-built for event streaming applications.","archived":false,"fork":false,"pushed_at":"2025-04-03T03:27:00.000Z","size":58224,"stargazers_count":215,"open_issues_count":35,"forks_count":27,"subscribers_count":33,"default_branch":"master","last_synced_at":"2025-04-12T14:56:32.685Z","etag":null,"topics":["apache-pulsar","connectors","event-streaming","pulsar-functions","pulsar-io","serverless","stream-processing"],"latest_commit_sha":null,"homepage":"https://functionmesh.io/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/streamnative.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-25T01:47:15.000Z","updated_at":"2025-04-12T05:05:28.000Z","dependencies_parsed_at":"2023-02-17T13:01:37.398Z","dependency_job_id":"5b20da64-a69e-4a28-aa5f-733a5b8a8e54","html_url":"https://github.com/streamnative/function-mesh","commit_stats":null,"previous_names":[],"tags_count":165,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamnative%2Ffunction-mesh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamnative%2Ffunction-mesh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamnative%2Ffunction-mesh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamnative%2Ffunction-mesh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/streamnative","download_url":"https://codeload.github.com/streamnative/function-mesh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248586248,"owners_count":21128996,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache-pulsar","connectors","event-streaming","pulsar-functions","pulsar-io","serverless","stream-processing"],"created_at":"2024-08-03T05:00:31.355Z","updated_at":"2026-04-02T21:14:03.604Z","avatar_url":"https://github.com/streamnative.png","language":"Go","readme":"# Function-Mesh\nA Kubernetes-Native way to run pulsar functions, connectors and composed function meshes.\n\n## Install\n\n```bash\ncurl -sSL https://github.com/streamnative/function-mesh/releases/download/v0.27.2/install.sh | bash\n```\n\nThe 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.\n\nNote:\n\n\u003e 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.\n\n## Prerequisite\n- Git\n- [operator-sdk](https://sdk.operatorframework.io/)\n- [kubernetes cluster](https://kubernetes.io/)\n- [pulsar-cluster](https://pulsar.apache.org/docs/en/pulsar-2.0/)\n- [pulsar-functions](https://pulsar.apache.org/docs/en/functions-overview/)\n\n## Compatibility\n\n### Kubernetes compatibility matrix\n\nThis table outlines the supported Kubernetes versions. We have tested these versions in their respective branches. But note that other versions might work as well.\n\n| Function Mesh operator                                                          | Kubernetes 1.19 | Kubernetes 1.20 | Kubernetes 1.21 | Kubernetes 1.22 | Kubernetes 1.23 | Kubernetes 1.24 | Kubernetes 1.25 |\n|---------------------------------------------------------------------------------|---------------|--------------|---------------|----------------|-----------------| --------------- | --------------- |\n| [`v0.20.0`](https://github.com/streamnative/function-mesh/releases/tag/v0.20.0) | ✔             | ✔            | ✔             | ✔               | ✔               | ✔               | ✔               |\n| [`v0.19.0`](https://github.com/streamnative/function-mesh/releases/tag/v0.19.0) | ✔             | ✔            | ✔             | ✔               | ✔               | ✔               | ✔               |\n| [`v0.18.0`](https://github.com/streamnative/function-mesh/releases/tag/v0.18.0) | ✔             | ✔            | ✔             | ✔               | ✔               | ✔               | ✔               |\n| [`v0.17.0`](https://github.com/streamnative/function-mesh/releases/tag/v0.17.0) | ✔             | ✔            | ✔             | ✔               | ✔               | ✔               | ✔               |\n| [`v0.16.0`](https://github.com/streamnative/function-mesh/releases/tag/v0.16.0) | ✔             | ✔            | ✔             | ✔               | ✔               | ✔               | ✔               |\n| [`v0.15.0`](https://github.com/streamnative/function-mesh/releases/tag/v0.15.0) | ✔             | ✔            | ✔             | ✔               | ✔               | ✔               | ✔               |\n| [`v0.14.0`](https://github.com/streamnative/function-mesh/releases/tag/v0.14.0) | ✔             | ✔            | ✔             | ✔              | ✔               | ✔               | ✔               |\n| [`v0.13.0`](https://github.com/streamnative/function-mesh/releases/tag/v0.13.0) | ✔             | ✔            | ✔             | ✔              | ✔               | ✔               | ✔               |\n| [`v0.12.0`](https://github.com/streamnative/function-mesh/releases/tag/v0.12.0) | ✔             | ✔            | ✔             | ✔              | ✔               | ✔               | ✔               |\n| [`v0.11.2`](https://github.com/streamnative/function-mesh/releases/tag/v0.11.2) | ✔             | ✔            | ✔             | ✔              | ✔               | ✔               | ✔               |\n| [`Master`](https://github.com/streamnative/function-mesh/tree/master)           | ✔             | ✔            | ✔             | ✔               | ✔               | ✔               | ✔               |\n\n## Development\n\n- install Git and download the repo\n\n```bash\ngit clone https://github.com/streamnative/function-mesh.git\n```\n\n- install operator-sdk and use it to add CRD, controller or webhooks\n\n\u003e **Note**\n\u003e\n\u003e The following command will generate the scaffolding files in the `api/\u003cversion\u003e/` path, in this case `api/v1alpha1`, and then you need to move the files contained in it to the `api/\u003cgroup\u003e/\u003cversion\u003e` directory manually, in this case `api/compute/v1alpha1`.\n\n```bash\noperator-sdk create api --group compute --version v1alpha1 --kind Function --resource=true --controller=true\n```\n\n```bash\noperator-sdk create webhook --group compute.functionmesh.io --version v1alpha1 --kind Function --defaulting --programmatic-validation\n```\n\n### Multi-platform images\n\nThe image build targets accept `PLATFORMS` as a comma-separated Docker platform list.\n\n```bash\nmake docker-build PLATFORMS=linux/amd64,linux/arm64\nmake operator-docker-image PLATFORMS=linux/amd64,linux/arm64\nPLATFORMS=linux/amd64,linux/arm64 PUSH=true images/build.sh\n```\n\nSingle-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.\n\n## Deployment\n\n1. make sure connected to a kubernetes cluster(gke, mini-kube etc.)\n    ```bash\n    gcloud container clusters get-credentials cluster-1 --region $CLUSTER_REGION --project $PROJECT_ID\n    ```\n2. compile the repo to generate related resources in the root dir of the repo.\n    ```bash\n    make generate\n    ```\n3. install the CRD into your k8s cluster.\n    ```bash\n    make install\n    ```\n4. start the controller locally. Only the controller itself is running in your local terminal, all the resources will be running inside the connected kubernetes cluster\n    ```bash\n    make run\n    ```\n5. submit a sample CRD to the cluster. You can also submit other CRDs under the `./config/samples` directory\n    ```bash\n    kubectl apply -f config/samples/compute_v1alpha1_function.yaml\n    ```\n6. verify your submission with `kubectl`, and you will see the function pod is running\n    ```bash\n    $ kubectl get all\n    NAME                                READY   STATUS      RESTARTS   AGE\n    pod/function-sample-0               1/1     Running     0          77s\n    ```\n7. in order for function actually work, you need to have a pulsar cluster available for visiting. you can use the [helm-chart](https://pulsar.apache.org/docs/en/helm-overview/) to deploy one\n","funding_links":[],"categories":["Repository is obsolete"],"sub_categories":["Awesome Operators in the Wild"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstreamnative%2Ffunction-mesh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstreamnative%2Ffunction-mesh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstreamnative%2Ffunction-mesh/lists"}