GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - streamnative/function-mesh: The serverless framework purpose-built for event streaming applications.

BranchesTags
Open more actions menu

Latest commit

 

History

524 Commits
524 Commits

Folders and files

NameName
Last commit message
Last commit date
.ci
.ci
 
 
.github
.github
 
 
api
api
 
 
charts
charts
 
 
config
config
 
 
controllers
controllers
 
 
docs
docs
 
 
hack
hack
 
 
images
images
 
 
manifests
manifests
 
 
mesh-worker-service
mesh-worker-service
 
 
pkg
pkg
 
 
testdata
testdata
 
 
tools
tools
 
 
utils
utils
 
 
.gitignore
.gitignore
 
 
.golangci.yml
.golangci.yml
 
 
CHANGELOG.md
CHANGELOG.md
 
 
Dockerfile
Dockerfile
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
PROJECT
PROJECT
 
 
README.md
README.md
 
 
bump_version.sh
bump_version.sh
 
 
go.mod
go.mod
 
 
go.sum
go.sum
 
 
install.sh
install.sh
 
 
license_test.go
license_test.go
 
 
main.go
main.go
 
 
operator.Dockerfile
operator.Dockerfile
 
 
redhat.Dockerfile
redhat.Dockerfile
 
 

Repository files navigation

Function-Mesh

A Kubernetes-Native way to run pulsar functions, connectors and composed function meshes.

Install

curl -sSL https://github.com/streamnative/function-mesh/releases/download/v0.30.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.

Prerequisite

  • Git
  • operator-sdk
  • kubernetes cluster
  • pulsar-cluster
  • pulsar-functions

Compatibility

Kubernetes compatibility matrix

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 ✔ ✔ ✔ ✔ ✔ ✔ ✔

Development

  • install Git and download the repo
git clone https://github.com/streamnative/function-mesh.git
  • install operator-sdk and use it to add CRD, controller or webhooks

Note

The following command will generate the scaffolding files in the api/<version>/ path, in this case api/v1alpha1, and then you need to move the files contained in it to the api/<group>/<version> directory manually, in this case api/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

Multi-platform images

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.

Deployment

  1. make sure connected to a kubernetes cluster(gke, mini-kube etc.)
    gcloud container clusters get-credentials cluster-1 --region $CLUSTER_REGION --project $PROJECT_ID
  2. compile the repo to generate related resources in the root dir of the repo.
    make generate
  3. install the CRD into your k8s cluster.
    make install
  4. 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
    make run
  5. submit a sample CRD to the cluster. You can also submit other CRDs under the ./config/samples directory
    kubectl apply -f config/samples/compute_v1alpha1_function.yaml
  6. verify your submission with 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
  7. in order for function actually work, you need to have a pulsar cluster available for visiting. you can use the helm-chart to deploy one

About

The serverless framework purpose-built for event streaming applications.

functionmesh.io/

Topics

apache-pulsarconnectorsevent-streamingpulsar-functionspulsar-ioserverlessstream-processing

Resources

Readme
Apache-2.0 license

Security policy

Security policy
Activity
Custom properties

Stars

227 stars

Watchers

29 watching

Forks

31 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.