From 48498f580743db076d43c4668bb8b838e09744a3 Mon Sep 17 00:00:00 2001 From: Simon Woodman Date: Tue, 27 Nov 2018 12:51:48 +0000 Subject: [PATCH] WIP to make AMQP EventSource work --- Dockerfile | 19 +++++++++++-------- samples/01-channel.yaml | 11 +++++++++++ samples/02-eventsource.yaml | 14 ++++++++++++++ samples/03-service.yaml | 12 ++++++++++++ samples/04-subscription.yaml | 16 ++++++++++++++++ 5 files changed, 64 insertions(+), 8 deletions(-) create mode 100644 samples/01-channel.yaml create mode 100644 samples/02-eventsource.yaml create mode 100644 samples/03-service.yaml create mode 100644 samples/04-subscription.yaml diff --git a/Dockerfile b/Dockerfile index b0a8d7b..19f78fe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,10 @@ # ko is (currently) incomptible with cgo, so the AMQP receive adapter is built via Docker. # ko uses a debian:stretch-slim -FROM debian:stretch-slim as build_stage +FROM debian:stretch-slim +# AS build_stage ENV DEBIAN_FRONTEND noninteractive RUN apt-get update -RUN apt-get install -y cmake uuid-dev libssl-dev libsasl2-2 libsasl2-dev libsasl2-modules git gcc python-dev wget +RUN apt-get install -y cmake uuid-dev libssl-dev libsasl2-2 libsasl2-dev libsasl2-modules git gcc python-dev wget libssl-dev libsasl2-2 libsasl2-modules RUN wget -q https://dl.google.com/go/go1.10.4.linux-amd64.tar.gz && echo fa04efdb17a275a0c6e137f969a1c4eb878939e91e1da16060ce42f02c2ec5ec go1.10.4.linux-amd64.tar.gz | sha256sum -c --quiet && tar -C /usr/local -xzf go1.10.4.linux-amd64.tar.gz && git clone git://git.apache.org/qpid-proton.git ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin ENV GOPATH=/qpid-proton/build/go CGO_CFLAGS=-I/qpid-proton/build/c/include CGO_LDFLAGS='-L/qpid-proton/build/c -lssl -lcrypto -lsasl2' @@ -19,12 +20,14 @@ COPY pkg qpid-proton/build/go/src/github.com/knative/eventing-sources/pkg/ RUN rm -f qpid-proton/build/go/pkg/linux_amd64/qpid.apache.org/*.a && rm -rf /root/.cache/go-build RUN cd qpid-proton/build/go/src/github.com/knative/eventing-sources/cmd/amqpsource && go install -x +RUN mv /qpid-proton/build/go/bin/amqpsource /amqpsource + # Insert here 2nd stage build step for thinner image. # Bonus points if can be done via a small increment to gcr.io/distroless/cc, i.e. sasl libs -FROM debian:stretch-slim -ENV DEBIAN_FRONTEND noninteractive -RUN apt-get update && apt-get install -y \ - libssl-dev libsasl2-2 libsasl2-modules \ - && rm -rf /var/lib/apt/lists/* -COPY --from=build_stage qpid-proton/build/go/bin/amqpsource /amqpsource +# FROM debian:stretch-slim +# ENV DEBIAN_FRONTEND noninteractive +# RUN apt-get update && apt-get install -y \ +# libssl-dev libsasl2-2 libsasl2-modules \ +# && rm -rf /var/lib/apt/lists/* +# COPY --from=build_stage qpid-proton/build/go/bin/amqpsource /amqpsource ENTRYPOINT ["/amqpsource"] diff --git a/samples/01-channel.yaml b/samples/01-channel.yaml new file mode 100644 index 0000000..e91c7ae --- /dev/null +++ b/samples/01-channel.yaml @@ -0,0 +1,11 @@ +apiVersion: eventing.knative.dev/v1alpha1 +kind: Channel +metadata: + name: testchannel +spec: + provisioner: + apiVersion: eventing.knative.dev/v1alpha1 + kind: ClusterChannelProvisioner + name: in-memory-channel + + diff --git a/samples/02-eventsource.yaml b/samples/02-eventsource.yaml new file mode 100644 index 0000000..1f0cc10 --- /dev/null +++ b/samples/02-eventsource.yaml @@ -0,0 +1,14 @@ +apiVersion: sources.eventing.knative.dev/v1alpha1 +kind: ContainerSource +metadata: + labels: + controller-tools.k8s.io: "1.0" + name: containersource-sample +spec: + image: sjwoodman/amqp-adaptor:latest + args: + - '--amqpurl=amqp://artemis.myproject.svc.cluster.local:5672/knqueue' + sink: + apiVersion: eventing.knative.dev/v1alpha1 + kind: Channel + name: testchannel \ No newline at end of file diff --git a/samples/03-service.yaml b/samples/03-service.yaml new file mode 100644 index 0000000..33ec2e0 --- /dev/null +++ b/samples/03-service.yaml @@ -0,0 +1,12 @@ +apiVersion: serving.knative.dev/v1alpha1 +kind: Service +metadata: + name: message-dumper + namespace: myproject +spec: + runLatest: + configuration: + revisionTemplate: + spec: + container: + image: github.com/knative/eventing-sources/cmd/message_dumper diff --git a/samples/04-subscription.yaml b/samples/04-subscription.yaml new file mode 100644 index 0000000..fe70722 --- /dev/null +++ b/samples/04-subscription.yaml @@ -0,0 +1,16 @@ +apiVersion: eventing.knative.dev/v1alpha1 +kind: Subscription +metadata: + name: testeventssubscription + namespace: myproject +spec: + channel: + apiVersion: eventing.knative.dev/v1alpha1 + kind: Channel + name: testchannel + subscriber: + ref: + apiVersion: serving.knative.dev/v1alpha1 + kind: Service + name: message-dumper +