Chapter 12. Using ContainerSource with Service Mesh
You can use container source with Service Mesh.
12.1. Configuring ContainerSource with Service Mesh
This procedure describes how to configure container source with Service Mesh.
Prerequisites
- You have set up integration of Service Mesh and Serverless.
Procedure
Create a
Service
in a namespace that is member of theServiceMeshMemberRoll
:Example
event-display-service.yaml
configuration file
Copy to clipboardCopiedapiVersion: serving.knative.dev/v1 kind: Service metadata: name: event-display namespace: <namespace> 1 spec: template: metadata: annotations: sidecar.istio.io/inject: "true" 2 sidecar.istio.io/rewriteAppHTTPProbers: "true" spec: containers: - image: quay.io/openshift-knative/knative-eventing-sources-event-display:latest
Apply the
Service
resource:
Copy to clipboardCopied$ oc apply -f event-display-service.yaml
Create a
ContainerSource
object in a namespace that is member of theServiceMeshMemberRoll
and sink set to theevent-display
:Example
test-heartbeats-containersource.yaml
configuration file
Copy to clipboardCopiedapiVersion: sources.knative.dev/v1 kind: ContainerSource metadata: name: test-heartbeats namespace: <namespace> 1 spec: template: metadata: 2 annotations: sidecar.istio.io/inject": "true" sidecar.istio.io/rewriteAppHTTPProbers: "true" spec: containers: # This corresponds to a heartbeats image URI that you have built and published - image: quay.io/openshift-knative/heartbeats name: heartbeats args: - --period=1s env: - name: POD_NAME value: "example-pod" - name: POD_NAMESPACE value: "event-test" sink: ref: apiVersion: serving.knative.dev/v1 kind: Service name: event-display-service
Apply the
ContainerSource
resource:
Copy to clipboardCopied$ oc apply -f test-heartbeats-containersource.yaml
Optional: Verify that the events were sent to the Knative event sink by looking at the message dumper function logs:
Example command
Copy to clipboardCopied$ oc logs $(oc get pod -o name | grep event-display) -c user-container
Example output
Copy to clipboardCopied☁️ cloudevents.Event Validation: valid Context Attributes, specversion: 1.0 type: dev.knative.eventing.samples.heartbeat source: https://knative.dev/eventing-contrib/cmd/heartbeats/#event-test/mypod id: 2b72d7bf-c38f-4a98-a433-608fbcdd2596 time: 2019-10-18T15:23:20.809775386Z contenttype: application/json Extensions, beats: true heart: yes the: 42 Data, { "id": 1, "label": "" }