Apply this file:
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
name: event-display
spec:
template:
metadata:
annotations:
# Target 1 request in-flight per pod.
autoscaling.knative.dev/target: "1"
spec:
containers:
- image: gcr.io/knative-releases/github.com/knative/eventing-sources/cmd/event_display@sha256:bf45b3eb1e7fc4cb63d6a5a6416cf696295484a7662e0cf9ccdf5c080542c21d
Inject the broker into the namespace:
kubectl label namespace default knative-eventing-injection=enabled
Now, define a trigger for your events:
apiVersion: eventing.knative.dev/v1alpha1
kind: Trigger
metadata:
name: wss-events-trigger
namespace: default
spec:
filter:
sourceAndType:
type: my.custom.event
subscriber:
ref:
apiVersion: serving.knative.dev/v1alpha1
kind: Service
name: event-display
In order to be able to reach the URL outside of the cluster:
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: urbanobservatory-api
spec:
hosts:
- api.usb.urbanobservatory.ac.uk
ports:
- number: 443
name: https
protocol: HTTPS
resolution: DNS
location: MESH_EXTERNAL
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: urbanobservatory-api
spec:
hosts:
- api.usb.urbanobservatory.ac.uk
tls:
- match:
- port: 443
sni_hosts:
- api.usb.urbanobservatory.ac.uk
route:
- destination:
host: api.usb.urbanobservatory.ac.uk
port:
number: 443
weight: 100
apiVersion: sources.eventing.knative.dev/v1alpha1
kind: ContainerSource
metadata:
name: urbanobservatory-event-source
spec:
image: quay.io/openshift-knative/knative-eventing-sources-websocketsource:v0.5.0
args:
- '--source=wss://api.usb.urbanobservatory.ac.uk/stream'
- '--eventType=my.custom.event'
sink:
apiVersion: eventing.knative.dev/v1alpha1
kind: Broker
name: default
account access