This is an automated email from the ASF dual-hosted git repository. marat pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
The following commit(s) were added to refs/heads/main by this push: new 92e6a11 Tekton first try (#375) 92e6a11 is described below commit 92e6a11569bab91ca50182945e0b5b6031c3c958 Author: Marat Gubaidullin <marat.gubaidul...@gmail.com> AuthorDate: Fri Jun 17 14:56:55 2022 -0400 Tekton first try (#375) --- karavan-builder/Dockerfile | 15 +++ karavan-builder/README.md | 4 + .../openshift/karavan-builder-pipeline.yaml | 24 ++++ karavan-builder/openshift/karavan-builder-pvc.yaml | 23 ++++ karavan-builder/openshift/karavan-builder-sa.yaml | 12 ++ .../openshift/karavan-builder-task.yaml | 60 ++++++++++ karavan-builder/openshift/karavan-git-secret.yaml | 7 ++ karavan-builder/openshift/kustomization.yaml | 9 ++ karavan-demo/hello-world/application.properties | 11 ++ .../hello-world/hello-world.yaml | 1 + karavan-docker/Dockerfile | 22 ---- karavan-docker/README.md | 9 -- karavan-docker/demo/application.properties | 2 - karavan-docker/postman/CustomProcessor.java | 11 -- karavan-docker/postman/application.properties | 8 -- karavan-docker/postman/docker-compose.yaml | 64 ---------- karavan-docker/postman/postgres_db.sql | 6 - karavan-docker/postman/postman.yaml | 133 --------------------- karavan-docker/postman/start.sh | 7 -- 19 files changed, 166 insertions(+), 262 deletions(-) diff --git a/karavan-builder/Dockerfile b/karavan-builder/Dockerfile new file mode 100644 index 0000000..388f5b6 --- /dev/null +++ b/karavan-builder/Dockerfile @@ -0,0 +1,15 @@ +FROM jbangdev/jbang-action + +# Add Camel-JBang +RUN jbang trust add -o --fresh --quiet https://github.com/apache/camel/blob/HEAD/dsl/camel-jbang/camel-jbang-main/dist/CamelJBang.java + +# Add Maven Daemon +ADD https://github.com/mvndaemon/mvnd/releases/download/0.7.1/mvnd-0.7.1-linux-amd64.zip . + +RUN mkdir /opt/mvnd && \ + apt-get update -y && apt-get install unzip git -y && apt-get clean && \ + unzip mvnd-0.7.1-linux-amd64.zip && \ + mv mvnd-0.7.1-linux-amd64/* /opt/mvnd + +WORKDIR /scripts +ENTRYPOINT ["entrypoint", "-Dcamel.jbang.version=3.18.0-SNAPSHOT", "camel@apache/camel"] \ No newline at end of file diff --git a/karavan-builder/README.md b/karavan-builder/README.md new file mode 100644 index 0000000..b782152 --- /dev/null +++ b/karavan-builder/README.md @@ -0,0 +1,4 @@ +### Build docker image +``` +docker build -t apache/camel-karavan-builder . +``` diff --git a/karavan-builder/openshift/karavan-builder-pipeline.yaml b/karavan-builder/openshift/karavan-builder-pipeline.yaml new file mode 100644 index 0000000..c28c4b3 --- /dev/null +++ b/karavan-builder/openshift/karavan-builder-pipeline.yaml @@ -0,0 +1,24 @@ +apiVersion: tekton.dev/v1beta1 +kind: Pipeline +metadata: + name: karavan-pipeline +spec: + params: + - name: GIT_REPO + type: string + - name: PROJECT_NAME + type: string + tasks: + - name: karavan-build-deploy + params: + - name: runtime + value: quarkus + - name: gav + value: 'com.acme:demo:1.0.0' + - name: project + value: $(params.PROJECT_NAME) + - name: git + value: $(params.GIT_REPO) + taskRef: + kind: Task + name: karavan-builder diff --git a/karavan-builder/openshift/karavan-builder-pvc.yaml b/karavan-builder/openshift/karavan-builder-pvc.yaml new file mode 100644 index 0000000..6c1e772 --- /dev/null +++ b/karavan-builder/openshift/karavan-builder-pvc.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: karavan-m2-cache +spec: + resources: + requests: + storage: 10Gi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: karavan-jbang-cache +spec: + resources: + requests: + storage: 10Gi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce diff --git a/karavan-builder/openshift/karavan-builder-sa.yaml b/karavan-builder/openshift/karavan-builder-sa.yaml new file mode 100644 index 0000000..91935b6 --- /dev/null +++ b/karavan-builder/openshift/karavan-builder-sa.yaml @@ -0,0 +1,12 @@ +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: karavan-builder +subjects: + - kind: ServiceAccount + name: pipeline + namespace: karavan +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: 'edit' \ No newline at end of file diff --git a/karavan-builder/openshift/karavan-builder-task.yaml b/karavan-builder/openshift/karavan-builder-task.yaml new file mode 100644 index 0000000..28346bf --- /dev/null +++ b/karavan-builder/openshift/karavan-builder-task.yaml @@ -0,0 +1,60 @@ +apiVersion: tekton.dev/v1beta1 +kind: Task +metadata: + name: karavan-builder +spec: + params: + - name: runtime + type: string + - name: gav + type: string + - name: project + type: string + - name: git + type: string + steps: + - name: karavan-build-deploy + script: | + #!/usr/bin/env bash + CHECKOUT_DIR="/scripts" + + git clone --depth 1 --branch main $(inputs.params.git) ${CHECKOUT_DIR} + + cd ${CHECKOUT_DIR}/$(inputs.params.project) + + entrypoint -Dcamel.jbang.version=3.18.0-SNAPSHOT camel@apache/camel export + + export TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token) + /opt/mvnd/bin/mvnd package \ + -Dquarkus.container-image.build=true \ + -Dquarkus.container-image.push=true \ + -Dquarkus.container-image.insecure=true \ + -Dquarkus.container-image.username=sa \ + -Dquarkus.container-image.password=${TOKEN} \ + -Dquarkus.kubernetes-client.master-url=kubernetes.default.svc \ + -Dquarkus.kubernetes-client.token=${TOKEN} \ + -Dquarkus.openshift.deployment-kind=Deployment \ + -Dquarkus.kubernetes.deploy=true \ + -Dquarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000 \ + -Dquarkus.container-image.builder=jib \ + -Dquarkus.openshift.route.expose=true + image: 'entropy1/camel-karavan-builder:3.18.0-SNAPSHOT' + resources: {} + volumeMounts: + - mountPath: /root/.m2 + name: m2-cache + - mountPath: /jbang/.jbang/cache + name: jbang-cache + env: + - name: GITHUB_TOKEN + valueFrom: + secretKeyRef: + name: karavan-git-secret + key: token + volumes: + - name: m2-cache + persistentVolumeClaim: + claimName: karavan-m2-cache + - name: jbang-cache + persistentVolumeClaim: + claimName: karavan-jbang-cache diff --git a/karavan-builder/openshift/karavan-git-secret.yaml b/karavan-builder/openshift/karavan-git-secret.yaml new file mode 100644 index 0000000..53ac839 --- /dev/null +++ b/karavan-builder/openshift/karavan-git-secret.yaml @@ -0,0 +1,7 @@ +kind: Secret +apiVersion: v1 +metadata: + name: karavan-git-secret +data: + token: ZGVtbw== +type: Opaque diff --git a/karavan-builder/openshift/kustomization.yaml b/karavan-builder/openshift/kustomization.yaml new file mode 100644 index 0000000..c136ac6 --- /dev/null +++ b/karavan-builder/openshift/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: +- karavan-builder-pvc.yaml +- karavan-builder-sa.yaml +- karavan-builder-task.yaml +- karavan-git-secret.yaml +- karavan-builder-pipeline.yaml \ No newline at end of file diff --git a/karavan-demo/hello-world/application.properties b/karavan-demo/hello-world/application.properties new file mode 100644 index 0000000..e02093c --- /dev/null +++ b/karavan-demo/hello-world/application.properties @@ -0,0 +1,11 @@ +message=HELLO WORLD +quarkus.package.type=uber-jar +camel.jbang.dependencies=mvn:io.quarkus:quarkus-container-image-jib:2.9.2.Final,mvn:io.quarkus:quarkus-openshift:2.9.2.Final +camel.main.sourceLocationEnabled=true +camel.main.tracing=false + +quarkus.container-image.group=karavan-demo +quarkus.container-image.name=hello-world +quarkus.container-image.tag=1.0.0 + + diff --git a/karavan-docker/demo/demo.yaml b/karavan-demo/hello-world/hello-world.yaml similarity index 99% rename from karavan-docker/demo/demo.yaml rename to karavan-demo/hello-world/hello-world.yaml index 222464c..da1dd38 100644 --- a/karavan-docker/demo/demo.yaml +++ b/karavan-demo/hello-world/hello-world.yaml @@ -7,3 +7,4 @@ parameters: period: 2000 message: '{{message}}' + \ No newline at end of file diff --git a/karavan-docker/Dockerfile b/karavan-docker/Dockerfile deleted file mode 100644 index ff7357c..0000000 --- a/karavan-docker/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -FROM adoptopenjdk/maven-openjdk11 - -# Install JBang -RUN curl -Ls "https://github.com/jbangdev/jbang/releases/download/v0.95.0/jbang-0.95.0.zip" --output jbang-0.95.0.zip && \ - apt-get update -y && apt-get install unzip git -y && apt-get clean && \ - unzip jbang-0.95.0.zip && \ - rm jbang-0.95.0.zip && \ - chmod +x jbang-0.95.0/bin/jbang - -# Environment variables -ENV PATH="${PATH}:/jbang-0.95.0/bin" -ENV JBANG_VERSION 0.95.0 -ENV JBANG_PATH=/jbang/bin -ENV PATH="${PATH}:/jbang/bin" -ENV JBANG_DIR="/jbang/.jbang" - -# Install Camel-JBang -RUN jbang trust add -o --fresh --quiet https://github.com/apache/camel/blob/HEAD/dsl/camel-jbang/camel-jbang-main/dist/CamelJBang.java && \ - jbang -Dcamel.jbang.version=3.18.0-SNAPSHOT camel@apache/camel --version - -WORKDIR /ws -ENTRYPOINT ["/jbang-0.95.0/bin/jbang"] \ No newline at end of file diff --git a/karavan-docker/README.md b/karavan-docker/README.md deleted file mode 100644 index 35d8449..0000000 --- a/karavan-docker/README.md +++ /dev/null @@ -1,9 +0,0 @@ -### Build docker image -``` -docker build -t apache/camel-jbang . -``` - -### Export postman -``` -docker run -v `pwd`/postman:/ws apache/camel-jbang --verbose -Dcamel.jbang.version=3.18.0-SNAPSHOT camel@apache/camel export quarkus --gav=com.foo:acme:1.0 --fresh -``` diff --git a/karavan-docker/demo/application.properties b/karavan-docker/demo/application.properties deleted file mode 100644 index 7e94fc0..0000000 --- a/karavan-docker/demo/application.properties +++ /dev/null @@ -1,2 +0,0 @@ -message=HELLO WORLD -%test.message=HELLO TEST \ No newline at end of file diff --git a/karavan-docker/postman/CustomProcessor.java b/karavan-docker/postman/CustomProcessor.java deleted file mode 100644 index 17399cf..0000000 --- a/karavan-docker/postman/CustomProcessor.java +++ /dev/null @@ -1,11 +0,0 @@ -import org.apache.camel.BindToRegistry; -import org.apache.camel.Exchange; -import org.apache.camel.Processor; - -@BindToRegistry("myBean") -public class CustomProcessor implements Processor { - - public void process(Exchange exchange) throws Exception { - exchange.getIn().setBody("Hello world"); - } -} diff --git a/karavan-docker/postman/application.properties b/karavan-docker/postman/application.properties deleted file mode 100644 index 3efa698..0000000 --- a/karavan-docker/postman/application.properties +++ /dev/null @@ -1,8 +0,0 @@ -kafka-brokers=localhost:9092 -postgres-server=localhost -jms-broker=tcp://localhost:61616 -mqtt-broker=tcp://localhost:1883 -%test.kafka-brokers=kafka-kafka-brokers:9092 -%test.postgres-server=postgres -%test.jms-broker=tcp://amq-hdls-svc:61616 -%test.mqtt-broker=tcp://amq-hdls-svc:1883 \ No newline at end of file diff --git a/karavan-docker/postman/docker-compose.yaml b/karavan-docker/postman/docker-compose.yaml deleted file mode 100644 index 6bedcc2..0000000 --- a/karavan-docker/postman/docker-compose.yaml +++ /dev/null @@ -1,64 +0,0 @@ ---- -version: '3.8' -services: - - zookeeper: - container_name: zookeeper - image: confluentinc/cp-zookeeper:latest - ports: - - "2181:2181" - environment: - ZOOKEEPER_CLIENT_PORT: 2181 - ZOOKEEPER_TICK_TIME: 2000 - - kafka: - container_name: kafka - image: confluentinc/cp-kafka:latest - depends_on: - - zookeeper - ports: - - "9092:9092" - environment: - KAFKA_BROKER_ID: 1 - KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092 - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT - KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 - KAFKA_CREATE_TOPICS: "events:1:1" - - artemis: - image: artemis-adoptopenjdk-11:latest - container_name: artemis - environment: - - ARTEMIS_USER=admin - - ARTEMIS_PASSWORD=admin - - ANONYMOUS_LOGIN=true - ports: - - "61616:61616" - - "1883:1883" - - "8161:8161" - - postgres: - image: postgres - container_name: postgres - restart: always - environment: - - POSTGRES_USER=postgres - - POSTGRES_PASSWORD=postgres - - POSTGRES_DB=demo - ports: - - '5432:5432' - volumes: - - ./postgres_db.sql:/docker-entrypoint-initdb.d/postgres_db.sql - command: 'postgres --max_prepared_transactions=100' - - pgadmin: - container_name: pgadmin - image: dpage/pgadmin4 - restart: always - environment: - PGADMIN_DEFAULT_EMAIL: ad...@admin.com - PGADMIN_DEFAULT_PASSWORD: root - ports: - - "5050:80" diff --git a/karavan-docker/postman/postgres_db.sql b/karavan-docker/postman/postgres_db.sql deleted file mode 100644 index 92a7bbb..0000000 --- a/karavan-docker/postman/postgres_db.sql +++ /dev/null @@ -1,6 +0,0 @@ -CREATE TABLE IF NOT EXISTS parcels ( - id varchar(250) NOT NULL, - address varchar(250) NOT NULL, - status varchar(250), - PRIMARY KEY (id) -); diff --git a/karavan-docker/postman/postman.yaml b/karavan-docker/postman/postman.yaml deleted file mode 100644 index acbe3ad..0000000 --- a/karavan-docker/postman/postman.yaml +++ /dev/null @@ -1,133 +0,0 @@ -apiVersion: camel.apache.org/v1 -kind: Integration -metadata: - name: Postman Demo -spec: - flows: - - rest: - post: - - to: direct:post - path: /parcels - consumes: application/json - produces: application/json - - route: - from: - uri: direct:post - steps: - - log: - message: 'Received: ${body}' - - multicast: - steps: - - to: - uri: kamelet:kafka-not-secured-sink - parameters: - topic: parcels - bootstrapServers: '{{kafka-brokers}}' - - to: - uri: kamelet:postgresql-sink - parameters: - serverName: '{{postgres-server}}' - serverPort: '5432' - username: postgres - password: postgres - databaseName: demo - query: >- - INSERT INTO parcels (id,address) VALUES - (:#id,:#address) ON CONFLICT (id) DO NOTHING - aggregationStrategy: >- - #class:org.apache.camel.processor.aggregate.UseOriginalAggregationStrategy - parallelProcessing: true - streaming: true - id: post - - route: - from: - uri: kamelet:jms-apache-artemis-source - steps: - - to: - uri: xj:identity - parameters: - transformDirection: XML2JSON - - to: - uri: kamelet:kafka-not-secured-sink - parameters: - topic: payments - bootstrapServers: '{{kafka-brokers}}' - parameters: - destinationType: queue - destinationName: payments - brokerURL: '{{jms-broker}}' - id: payment - - route: - from: - uri: kamelet:kafka-not-secured-source - steps: - - log: - message: 'Aggegating: ${body}' - - unmarshal: - json: - library: jackson - - aggregate: - steps: - - choice: - when: - - expression: - groovy: - expression: >- - body.find { it.containsKey('status') }.status == - 'confirmed' - steps: - - marshal: - json: - library: jackson - - log: - message: 'Send to MQTT : ${body}' - - to: - uri: kamelet:mqtt-sink - parameters: - topic: deliveries - brokerUrl: '{{mqtt-broker}}' - otherwise: - steps: - - setBody: - expression: - groovy: - expression: 'body.find { it.containsKey(''status'') } ' - - marshal: - json: - library: jackson - - log: - message: 'Send to database: ${body}' - - to: - uri: kamelet:postgresql-sink - parameters: - serverName: '{{postgres-server}}' - serverPort: '5432' - username: postgres - password: postgres - databaseName: demo - query: >- - UPDATE parcels set status = 'CANCELED' WHERE - id = :#id - aggregationStrategy: aggregator - completionSize: 2 - correlationExpression: - groovy: - expression: body.get('id') - parameters: - topic: parcels,payments - bootstrapServers: '{{kafka-brokers}}' - autoCommitEnable: true - consumerGroup: postman - id: aggregator - - route: - from: - uri: kamelet:mqtt-source - steps: - - log: - message: 'Delivery: ${body}' - parameters: - topic: deliveries - brokerUrl: '{{mqtt-broker}}' - - beans: - - name: aggregator - type: org.apache.camel.processor.aggregate.GroupedBodyAggregationStrategy diff --git a/karavan-docker/postman/start.sh b/karavan-docker/postman/start.sh deleted file mode 100755 index ccb09e3..0000000 --- a/karavan-docker/postman/start.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -docker-compose down -docker rm -f $(docker ps -a -q) -docker volume rm $(docker volume ls -q) -docker-compose up -d -docker-compose logs -f \ No newline at end of file