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. runtime for synchronous functions.
Kourier0. default network layer for Knative.
Serving Default Domain0. default DNS layout for Knative.
Dapr1. distributed application runtime for asynchronous functions.
KEDA2. autoscaler of asynchronous function runtime.
Shipwright0. function build framework.
Tekton Pipelines0. function build pipeline.
Cert Manager1. webhook certificate manager (for OpenFunction v0.4.0+ only).
Ingress NginxN/AN/A1. 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

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