Back to Charts

⚠️ Repo Archive Notice

incubator/kubeless/README.md

latest9.4 KB
Original Source

⚠️ Repo Archive Notice

As of Nov 13, 2020, charts in this repo will no longer be updated. For more information, see the Helm Charts Deprecation and Archive Notice, and Update.

Kubeless

Kubeless is a Kubernetes-native serverless framework. It runs on top of your Kubernetes cluster and allows you to deploy small unit of code without having to build container images. With kubeless you can build advanced applications that tie together services using functions.

DEPRECATION NOTICE

This chart is deprecated and no longer supported.

TL;DR;

bash
$ helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/
$ helm install --namespace kubeless incubator/kubeless

Introduction

This chart bootstraps a Kubeless and a Kubeless-UI deployment on a Kubernetes cluster using the Helm package manager.

Prerequisites

  • Kubernetes 1.7+ with Beta APIs enabled

Installing the Chart

To install the chart with the release name my-release:

bash
$ helm install --name my-release --namespace kubeless incubator/kubeless

NOTE

While the chart supports deploying Kubeless to any namespace, Kubeless expects to be deployed under a namespace named kubeless.

The command deploys Kubeless on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.

Tip: List all releases using helm list

Uninstalling the Chart

To uninstall/delete the my-release deployment:

bash
$ helm delete my-release

The command removes all the Kubernetes components associated with the chart and deletes the release.

Kafka Trigger

Kubeless supports triggering functions via Kafka events. More info here: https://kubeless.io/docs/use-existing-kafka/. An existing Kafka cluster needs to be accessible to kubeless -- if you like, you may look into setting Kafka up via the Kafka chart. Once Kafka is running, to enable the Kafka trigger you must configure the following values: rbac.create: true, kafkaTrigger.enabled: true, kafkaTrigger.env.kafkaBrokers: <your_kafka_brokers>.

Configuration

The following table lists the configurable parameters of the Kubeless chart and their default values.

ParameterDescriptionDefault
rbac.createCreate RBAC backed ServiceAccountfalse
config.functionsNamespaceFunctions namespace""
config.builderImageFunction builder imagekubeless/function-image-builder
config.builderImagePullSecretSecret to pull builder image""
config.provisionImageProvision imagekubeless/unzip
config.provisionImagePullSecretSecret to pull provision image""
config.deploymentTemplateDeployment template for functions{}
config.enableBuildStepEnable builder functionalityfalse
config.functionRegistryTLSVerifyEnable TLS verification for image registry{}
config.runtimeImagesRuntimes availablepython, nodejs, ruby, php and go
controller.deployment.functionController.image.repositoryFunction Controller imagekubeless/function-controller
controller.deployment.functionController.image.pullPolicyFunction Controller image pull policyIfNotPresent
controller.deployment.httpTriggerController.image.repositoryHTTP Controller imagebitnami/bitnami/http-trigger-controller
controller.deployment.httpTriggerController.image.pullPolicyHTTP Controller image pull policyIfNotPresent
controller.deployment.cronJobTriggerController.image.repositoryCronJob Controller imagebitnami/cronjob-trigger-controller
controller.deployment.cronJobTriggerController.image.pullPolicyCronJob Controller image pull policyIfNotPresent
controller.deployment.replicaCountNumber of replicas1
ui.enabledKubeless UI componentfalse
ui.deployment.ui.image.repositoryKubeless UI imagebitnami/kubeless-ui
ui.deployment.ui.image.pullPolicyKubeless UI image pull policyIfNotPresent
ui.deployment.proxy.image.repositoryProxy imagekelseyhightower/kubectl
ui.deployment.proxy.image.pullPolicyProxy image pull policyIfNotPresent
ui.deployment.replicaCountNumber of replicas1
ui.service.nameService nameui-port
ui.service.typeKubernetes service nameNodePort
ui.service.externalPortService external port3000
ui.ingress.enabledKubeless UI ingress switchfalse
ui.ingress.annotationsKubeless UI ingress annotations{}
ui.ingress.pathKubeless UI ingress path{}
ui.ingress.hostsKubeless UI ingress hosts[chart-example.local]
ui.ingress.tlsKubeless UI ingress TLS[]
kafkaTrigger.enabledKubeless Kafka Triggerfalse
kafkaTrigger.env.kafkaBrokersKafka Brokers Environment Variablelocalhost:9092
kafkaTrigger.deployment.ui.image.repositoryKubeless Kafka Trigger imagebitnami/kubeless-ui
kafkaTrigger.deployment.ui.image.pullPolicyKubeless Kafka Trigger image pull policyIfNotPresent
kafkaTrigger.deployment.ui.image.tagKubeless Kafka Trigger image tagv1.0.1

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,

bash
$ helm install --name my-release --set service.name=ui-service,service,externalPort=4000 --namespace kubeless incubator/kubeless

The above command sets the Kubeless service name to ui-service and the external port to 4000.

Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,

bash
$ helm install --name my-release -f values.yaml --namespace kubeless incubator/kubeless

Tip: You can use the default values.yaml

Kubeless UI

The Kubeless UI component is disabled by default. In order to enable it set the ui.enabled property to true. For example,

bash
$ helm install --name my-release --set ui.enabled=true --namespace kubeless incubator/kubeless