Skip to content

cardil/openshift-serverless-pres-notes

Repository files navigation

OpenShift Serverless - Demo notes

Install & Hello World

DEMO: Serverless

# serverless-subscription.yaml
# OpenShift Serverless subcription
---
apiVersion: v1
kind: Namespace
metadata:
  name: openshift-serverless
---
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
  name: openshift-serverless
  namespace: openshift-serverless
spec: {}
---
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: serverless-operator
  namespace: openshift-serverless
spec:
  channel: stable
  name: serverless-operator
  source: redhat-operators
  sourceNamespace: openshift-marketplace

Check:

oc get csv

Deploy knative serving

# knative-serving.yaml
---
apiVersion: v1
kind: Namespace
metadata:
  name: knative-serving
---
apiVersion: operator.knative.dev/v1beta1
kind: KnativeServing
metadata:
  name: knative-serving
  namespace: knative-serving
spec:
  high-availability:
    replicas: 1

Check:

oc get knativeserving knative-serving -n knative-serving

Create ksvc

kubectl create ns demo
kubens demo
kn service create hello --image=quay.io/rhdevelopers/knative-tutorial-greeter:quarkus
http $(kn service list demo -o jsonpath='{.items[].status.url}')
kn service delete hello

DEMO: Autoscalling

Deploy service with limit

kn service create showcase \
  --image quay.io/cardil/knative-serving-showcase:2-send-event \
  --env DELAY=1500 \
  --concurrency-limit 1

Observe with k9s.

Call with hey

http $(kn service list showcase -o jsonpath='{.items[].status.url}')/hello
hey -c 10 -n 200 $(kn service list showcase -o jsonpath='{.items[].status.url}')/hello

DEMO: Eventing system

Deploy knative eventing

# knative-eventing.yaml
---
apiVersion: v1
kind: Namespace
metadata:
  name: knative-eventing
---
apiVersion: operator.knative.dev/v1beta1
kind: KnativeEventing
metadata:
  name: knative-eventing
  namespace: knative-eventing

Check:

oc get knativeeventing knative-eventing -n knative-eventing

Deploy a default broker

oc label namespace demo eventing.knative.dev/injection=enabled
oc get broker default

Remove a showcase ksvc template metadata name

NOTE: SinkBinding will not work if template metadata name is set on Ksvc (knative/serving#9544).

kn service update showcase --revision-name ''

Add SinkBinding to Broker

kn source binding create showcase \
  --subject Service:serving.knative.dev/v1:showcase \
  --sink broker:default

Deploy two event displays

kn service create event-display-1 \
  --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
kn service create event-display-2 \
  --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest

Add trigger

kn trigger create showcase-1 \
  --broker default \
  --sink ksvc:event-display-1
#  --filter <KEY=VALUE>
kn trigger create showcase-2 \
  --broker default \
  --sink ksvc:event-display-2

About

OpenShift Serverless - Demo notes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published