function-mesh

command module
v0.23.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 25, 2024 License: Apache-2.0 Imports: 26 Imported by: 0

README

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.23.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

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

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

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api module
Package controllers define k8s operator controllers
Package controllers define k8s operator controllers
spec
Package spec define the specs
Package spec define the specs
pkg
webhook
Package webhook defines mutate and validate webhook for FunctionMesh types
Package webhook defines mutate and validate webhook for FunctionMesh types
Package utils define some common used functions&structs
Package utils define some common used functions&structs

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL