Chapter 2. Creating functions
Before you can build and deploy a function, you must create it. You can create functions using the Knative (kn
) CLI.
2.1. Creating a function by using the Knative CLI
You can specify the path, runtime, template, and image registry for a function as flags on the command line, or use the -c
flag to start the interactive experience in the terminal.
Prerequisites
- The OpenShift Serverless Operator and Knative Serving are installed on the cluster.
-
You have installed the Knative (
kn
) CLI.
Procedure
Create a function project:
$ kn func create -r <repository> -l <runtime> -t <template> <path>
-
Accepted runtime values include
quarkus
,node
,typescript
,go
,python
,springboot
, andrust
. Accepted template values include
http
andcloudevents
.Example command
$ kn func create -l typescript -t cloudevents examplefunc
Example output
Created typescript function in /home/user/demo/examplefunc
Alternatively, you can specify a repository that contains a custom template.
Example command
$ kn func create -r https://github.com/boson-project/templates/ -l node -t hello-world examplefunc
Example output
Created node function in /home/user/demo/examplefunc
-
Accepted runtime values include
2.2. Creating a function in the web console
You can create a function from a Git repository by using the Developer perspective of the Red Hat OpenShift Serverless web console.
Prerequisites
Before you can create a function by using the web console, a cluster administrator must complete the following steps:
- Install the OpenShift Serverless Operator and Knative Serving on the cluster.
- Install the OpenShift Pipelines Operator on the cluster.
Create the following pipeline tasks so that they are available for all namespaces on the cluster:
func-s2i task
$ oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.30/pkg/pipelines/resources/tekton/task/func-s2i/0.1/func-s2i.yaml
func-deploy task
$ oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.30/pkg/pipelines/resources/tekton/task/func-s2i/0.1/func-s2i.yaml
Node.js function
$ oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.30/pkg/pipelines/resources/tekton/task/func-s2i/0.1/func-s2i.yaml
- You must log into the Red Hat OpenShift Serverless web console.
- You must create a project or have access to a project with the appropriate roles and permissions to create applications and other workloads in Red Hat OpenShift Serverless.
-
You must create or have access to a Git repository that contains the code for your function. The repository must contain a
func.yaml
file and use thes2i
build strategy.
Procedure
-
In the Developer perspective, navigate to +Add
Create Serverless function. The Create Serverless function page is displayed. - Enter a Git Repo URL that points to the Git repository that contains the code for your function.
In the Pipelines section:
- Select the Build, deploy and configure a Pipeline Repository radio button to create a new pipeline for your function.
- Select the Use Pipeline from this cluster radio button to connect your function to an existing pipeline in the cluster.
- Click Create.
Verification
- After you have created a function, you can view it in the Topology view of the Developer perspective.