Customize OpenFunction Component Versions

Learn how to customize OpenFunction component versions.

This document describes how to customize OpenFunction component versions.

Component Compatibility Matrix

OpenFunction relies on several components, including Knative Serving, Dapr, KEDA, Shipwright, and Tekton. Some of these components require a specific Kubernetes version. The OpenFunction CLI installs the default versions of components based on a specific Kubernetes version.

The following table describes the default compatibility matrix of OpenFunction components.

ComponentKubernetes 1.17Kubernetes 1.18Kubernetes 1.19Kubernetes 1.20+CLI ParameterDescription
Knative Serving0.21.10.23.30.25.21.0.1—knativeThe runtime for synchronous functions.
Kourier0.21.00.23.00.25.01.0.1—knativeThe default network layer for Knative.
Serving Default Domain0.21.00.23.00.25.01.0.1—knativeThe default DNS layout for Knative.
Dapr1.5.11.5.11.5.11.5.1—asyncThe distributed application runtime for asynchronous functions.
KEDA2.4.02.4.02.4.02.4.0—asyncThe autoscaler of asynchronous function runtime.
Shipwright0.6.10.6.10.6.10.6.1—shipwrightThe function build framework.
Tekton Pipelines0.23.00.26.00.29.00.30.0—shipwrightThe function build pipeline.
Cert Manager1.5.41.5.41.5.41.5.4—cert-managerOpenFunction webhook certificate manager (for OpenFunction v0.4.0+ only).
Ingress NginxN/AN/A1.1.01.1.0—ingressFunction ingress controller (for OpenFunction v0.4.0+ only).

Customize Component Versions

The OpenFunction CLI keeps the details about installed component in $home/.ofn/<cluster name>-inventory.yaml. To make installation more flexible, the OpenFunction CLI supports using environment variables to customize component versions. The following table describes these environment variables.

Environment VariableDescriptionExample Value
DAPR_VERSIONThe version of Dapr1.4.3, 1.5.1
KEDA_VERSIONThe version of KEDA2.4.0, 2.5.0
KNATIVE_SERVING_VERSIONThe version of Knative Serving0.23.3, 1.0.1
KOURIER_VERSIONThe version of Kourier0.23.0, 0.26.0
DEFAULT_DOMAIN_VERSIONThe version of Serving Default Domain0.23.0, 0.26.0
SHIPWRIGHT_VERSIONThe version of Shipwright (under development)0.6.1
TEKTON_PIPELINES_VERSIONThe version of Tekton Pipelines0.26.0, 0.29.0
INGRESS_NGINX_VERSIONThe version of Ingress Nginx1.1.0
CERT_MANAGER_VERSIONThe version of Cert Manager1.5.4

Note

  • Make sure the customized component versions are compatible with your Kubernetes version before using these environment variables.
  • If you use environment variables when installing OpenFunction, make sure that you set the environment variables to the same value when uninstalling OpenFunction.
  • When installing a component, the customized component information will be obtained in the following order: YAML file environment variables > version environment variables > $home/.ofn/inventory.yaml.

Customize YAML File Paths of Components

The following table describes the environment variables in a YAML file for a component.

Environment VariableDescription
KEDA_YAMLThe path of KEDA YAML file
KNATIVE_SERVING_CRD_YAMLThe path of Knative Serving CRDs YAML file
KNATIVE_SERVING_CORE_YAMLThe path of Knative Serving core YAML file
KOURIER_YAMLThe path of Kourier YAML file
DEFAULT_DOMAIN_YAMLThe path of Serving Default Domain YAML file
SHIPWRIGHT_YAMLThe path of Shipwright YAML file (under development)
TEKTON_PIPELINES_YAMLThe path of Tekton Pipelines YAML file
INGRESS_NGINX_YAMLThe path of Ingress Nginx YAML file
CERT_MANAGER_YAMLThe path of Cert Manager YAML file
OPENFUNCTION_YAMLThe path of OpenFunction YAML file

Note

You can use any value supported by the --filename parameter of kubectl.

Last modified March 17, 2022: Update EN Documents (#45) (7174604)