Skip to content

kyma-project/serverless

Serverless

Status

GitHub tag checks state

REUSE status

Overview

Serverless Operator allows deploying the Serverless component in the Kyma cluster in compatibility with Lifecycle Manager.

Architecture Diagram

Architecture

Install

Create the kyma-system namespace:

kubectl create namespace kyma-system

Apply the following script to install Serverless Operator:

kubectl apply -f https://github.com/kyma-project/serverless/releases/latest/download/serverless-operator.yaml

To get Serverless installed, apply the sample Serverless CR:

kubectl apply -f https://github.com/kyma-project/serverless/releases/latest/download/default-serverless-cr.yaml

Development

Prerequisites

Installation in the k3d Cluster Using Make Targets

  1. Clone the project.

    git clone https://github.com/kyma-project/serverless.git && cd serverless/
  2. Create a new k3d cluster and run Serverless from the main branch:

    make run-main

NOTE: To clean up the k3d cluster, use the make delete-k3d make target.

NOTE: If you have k3d already running, you can use the install-* targets to install Serverless in different flavors.

Using Serverless Operator

  • Create a Serverless instance.

    kubectl apply -f config/samples/default-serverless-cr.yaml
  • Delete a Serverless instance.

    kubectl delete -f config/samples/default-serverless-cr.yaml
  • Use external registry.

    The following example shows how you can modify the Serverless Docker registry address using the serverless.operator.kyma-project.io CR:

    kubectl create secret generic my-secret \
        --namespace kyma-system \
        --from-literal username="<USERNAME>" \
        --from-literal password="<PASSWORD>" \
        --from-literal serverAddress="<SERVER_ADDRESS>" \
        --from-literal registryAddress="<REGISTRY_ADDRESS>"

    NOTE: For DockerHub:

    cat <<EOF | kubectl apply -f -
    apiVersion: operator.kyma-project.io/v1alpha1
    kind: Serverless
    metadata:
    name: serverless-sample
    spec:
        dockerRegistry:
            enableInternal: false
            secretName: my-secret
    EOF