You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2022/06/21 22:04:25 UTC

[camel-karavan] branch main updated: Deployment (#382)

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 3709e2e  Deployment (#382)
3709e2e is described below

commit 3709e2e222238eba632d7f1eb7d13968f32d6b36
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Tue Jun 21 18:04:22 2022 -0400

    Deployment (#382)
---
 karavan-app/pom.xml                                | 11 +---
 .../apache/camel/karavan/api/KameletResources.java | 14 +++-
 .../apache/camel/karavan/service/GitService.java   |  7 +-
 .../src/main/resources/application.properties      | 23 +++++--
 karavan-app/src/main/webapp/package-lock.json      |  2 +-
 karavan-builder/openshift/karavan-app.yaml         | 77 ++++++++++++++++++++++
 karavan-builder/openshift/karavan-git-secret.yaml  | 10 ---
 ...pipeline.yaml => karavan-quarkus-pipeline.yaml} |  4 +-
 ...n-builder-pvc.yaml => karavan-quarkus-pvc.yaml} |  0
 ...builder-task.yaml => karavan-quarkus-task.yaml} | 21 +++---
 karavan-builder/openshift/karavan-secret.yaml      | 10 +++
 karavan-builder/openshift/kustomization.yaml       |  9 +--
 12 files changed, 147 insertions(+), 41 deletions(-)

diff --git a/karavan-app/pom.xml b/karavan-app/pom.xml
index 2830d0a..ef5284a 100644
--- a/karavan-app/pom.xml
+++ b/karavan-app/pom.xml
@@ -89,19 +89,10 @@
             <artifactId>infinispan-query</artifactId>
             <version>13.0.10.Final</version>
         </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-kubernetes</artifactId>
-            <version>2.9.0</version>
-        </dependency>
         <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>io.quarkus</groupId>-->
-<!--            <artifactId>quarkus-openshift</artifactId>-->
-<!--        </dependency>-->
         <!-- Code generator -->
         <dependency>
             <groupId>org.apache.camel</groupId>
@@ -110,7 +101,7 @@
         </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-container-image-docker</artifactId>
+            <artifactId>quarkus-container-image-jib</artifactId>
             <scope>compile</scope>
         </dependency>
         <dependency>
diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/api/KameletResources.java b/karavan-app/src/main/java/org/apache/camel/karavan/api/KameletResources.java
index 39d7f8b..721d2cf 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/api/KameletResources.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/api/KameletResources.java
@@ -27,8 +27,20 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 
 import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URL;
+import java.nio.file.FileSystem;
+import java.nio.file.FileSystems;
+import java.nio.file.FileVisitResult;
 import java.nio.file.Files;
 import java.nio.file.Paths;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -47,7 +59,7 @@ public class KameletResources {
 
     @GET
     @Produces(MediaType.APPLICATION_JSON)
-    public List<String> getList() {
+    public List<String> getList() throws Exception {
         List<String> kameletList = getList(kameletsBuildin);
         if (Files.exists(Paths.get(kameletsCustom))) {
             List<String> customKameletList = getList(kameletsCustom);
diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/service/GitService.java b/karavan-app/src/main/java/org/apache/camel/karavan/service/GitService.java
index 4b3cd88..7cf37a2 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/service/GitService.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/service/GitService.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.karavan.service;
 
+import io.quarkus.runtime.StartupEvent;
 import io.vertx.core.Vertx;
 import org.apache.camel.karavan.model.Project;
 import org.apache.camel.karavan.model.ProjectFile;
@@ -31,6 +32,7 @@ import org.eclipse.microprofile.config.inject.ConfigProperty;
 import org.jboss.logging.Logger;
 
 import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.event.Observes;
 import javax.inject.Inject;
 import java.io.IOException;
 import java.net.URISyntaxException;
@@ -62,9 +64,12 @@ public class GitService {
     @Inject
     Vertx vertx;
 
-
     private static final Logger LOGGER = Logger.getLogger(GitService.class.getName());
 
+    void onStart(@Observes StartupEvent ev) {
+        LOGGER.info("Git service for repo: " + uri);
+    }
+
     public void cloneRepo() throws GitAPIException {
         LOGGER.info("Cloning repository...");
         try (Git git = Git.cloneRepository().setDirectory(Path.of(integrations).toFile()).setURI(uri).call()) {
diff --git a/karavan-app/src/main/resources/application.properties b/karavan-app/src/main/resources/application.properties
index 3c668aa..fa73e41 100644
--- a/karavan-app/src/main/resources/application.properties
+++ b/karavan-app/src/main/resources/application.properties
@@ -8,12 +8,21 @@ karavan.folder.kamelets-custom=kamelets
 karavan.folder.integrations=integrations
 %dev.karavan.folder.integrations=target/classes/integrations
 
-#karavan.mode=cloud
-karavan.git.uri=https://github.com/mgubaidullin/karavan-demo.git
-karavan.git.username=mgubaidullin
-karavan.git.password=
+# Git repository Configuration
+quarkus.openshift.env.secrets=karavan
+quarkus.openshift.env.mapping.git-repository.from-secret=karavan
+quarkus.openshift.env.mapping.git-repository.with-key=git-repository
+quarkus.openshift.env.mapping.git-username.from-secret=karavan
+quarkus.openshift.env.mapping.git-username.with-key=git-username
+quarkus.openshift.env.mapping.git-token.from-secret=karavan
+quarkus.openshift.env.mapping.git-token.with-key=git-token
+
+karavan.git.uri=${GIT_REPOSITORY}
+karavan.git.username=${GIT_USERNAME}
+karavan.git.password=${GIT_TOKEN}
 karavan.git.main=main
 
+
 # Projects configuration
 karavan.config.group-id=org.camel.karavan.demo
 karavan.config.image-group=karavan
@@ -39,6 +48,8 @@ quarkus.infinispan-client.auth-password=password
 # Use BASIC as a Docker for Mac workaround
 quarkus.infinispan-client.client-intelligence=BASIC
 
+
+# Quarkus configuration
 quarkus.log.level=INFO
 quarkus.banner.enabled=false
 quarkus.package.type=uber-jar
@@ -49,7 +60,11 @@ quarkus.container-image.group=apache
 quarkus.container-image.name=camel-karavan
 quarkus.container-image.tag=${project.version}
 
+quarkus.container-image.builder=jib
+
 quarkus.kubernetes-client.trust-certs=true
+quarkus.kubernetes.deployment-target=openshift
+
 quarkus.openshift.route.expose=true
 quarkus.openshift.name=karavan
 quarkus.openshift.namespace=karavan
diff --git a/karavan-app/src/main/webapp/package-lock.json b/karavan-app/src/main/webapp/package-lock.json
index 5919528..a35e94b 100644
--- a/karavan-app/src/main/webapp/package-lock.json
+++ b/karavan-app/src/main/webapp/package-lock.json
@@ -39,7 +39,7 @@
       }
     },
     "../../../../karavan-core": {
-      "version": "0.0.15",
+      "version": "0.0.16",
       "license": "Apache-2.0",
       "dependencies": {
         "@types/js-yaml": "^4.0.5",
diff --git a/karavan-builder/openshift/karavan-app.yaml b/karavan-builder/openshift/karavan-app.yaml
new file mode 100644
index 0000000..d86b0b4
--- /dev/null
+++ b/karavan-builder/openshift/karavan-app.yaml
@@ -0,0 +1,77 @@
+---
+apiVersion: v1
+kind: Service
+metadata:
+  labels:
+    app: karavan
+    app.kubernetes.io/part-of: karavan
+  name: karavan
+spec:
+  ports:
+    - name: http
+      port: 80
+      targetPort: 8080
+  selector:
+    app: karavan
+  type: ClusterIP
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  labels:
+    app: karavan
+    app.openshift.io/runtime: camel
+    app.kubernetes.io/part-of: karavan
+  name: karavan
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: karavan
+  template:
+    metadata:
+      labels:
+        app: karavan
+    spec:
+      containers:
+        - env:
+            - name: KUBERNETES_NAMESPACE
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.namespace
+            - name: GIT_TOKEN
+              valueFrom:
+                secretKeyRef:
+                  key: git-token
+                  name: karavan
+            - name: GIT_REPOSITORY
+              valueFrom:
+                secretKeyRef:
+                  key: git-repository
+                  name: karavan
+            - name: GIT_USERNAME
+              valueFrom:
+                secretKeyRef:
+                  key: git-username
+                  name: karavan
+          image: ghcr.io/apache/camel-karavan:0.0.16
+          imagePullPolicy: Always
+          name: karavan
+          ports:
+            - containerPort: 8080
+              name: http
+              protocol: TCP
+---
+apiVersion: route.openshift.io/v1
+kind: Route
+metadata:
+  labels:
+    app: karavan
+    app.kubernetes.io/part-of: karavan
+  name: karavan
+spec:
+  port:
+    targetPort: 8080
+  to:
+    kind: Service
+    name: karavan
\ No newline at end of file
diff --git a/karavan-builder/openshift/karavan-git-secret.yaml b/karavan-builder/openshift/karavan-git-secret.yaml
deleted file mode 100644
index 533cce6..0000000
--- a/karavan-builder/openshift/karavan-git-secret.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-kind: Secret
-apiVersion: v1
-metadata:
-  name: karavan-git-secret
-data:
-  token: ZGVtbw==
-  username: ZGVtbw==
-stringData:
-  repository: https://github.com/mgubaidullin/karavan-demo.git
-type: Opaque
diff --git a/karavan-builder/openshift/karavan-builder-pipeline.yaml b/karavan-builder/openshift/karavan-quarkus-pipeline.yaml
similarity index 81%
rename from karavan-builder/openshift/karavan-builder-pipeline.yaml
rename to karavan-builder/openshift/karavan-quarkus-pipeline.yaml
index 2244642..fa15bc7 100644
--- a/karavan-builder/openshift/karavan-builder-pipeline.yaml
+++ b/karavan-builder/openshift/karavan-quarkus-pipeline.yaml
@@ -1,7 +1,7 @@
 apiVersion: tekton.dev/v1beta1
 kind: Pipeline
 metadata:
-  name: karavan-pipeline
+  name: karavan-quarkus
 spec:
   params:
     - name: PROJECT_NAME
@@ -13,4 +13,4 @@ spec:
           value: $(params.PROJECT_NAME)
       taskRef:
         kind: Task
-        name: karavan-builder
+        name: karavan-quarkus-builder
diff --git a/karavan-builder/openshift/karavan-builder-pvc.yaml b/karavan-builder/openshift/karavan-quarkus-pvc.yaml
similarity index 100%
rename from karavan-builder/openshift/karavan-builder-pvc.yaml
rename to karavan-builder/openshift/karavan-quarkus-pvc.yaml
diff --git a/karavan-builder/openshift/karavan-builder-task.yaml b/karavan-builder/openshift/karavan-quarkus-task.yaml
similarity index 82%
rename from karavan-builder/openshift/karavan-builder-task.yaml
rename to karavan-builder/openshift/karavan-quarkus-task.yaml
index 6d4ba21..6e3a891 100644
--- a/karavan-builder/openshift/karavan-builder-task.yaml
+++ b/karavan-builder/openshift/karavan-quarkus-task.yaml
@@ -1,7 +1,7 @@
 apiVersion: tekton.dev/v1beta1
 kind: Task
 metadata:
-  name: karavan-builder
+  name: karavan-quarkus-builder
 spec:
   params:
     - name: project
@@ -12,7 +12,7 @@ spec:
           #!/usr/bin/env bash
           CHECKOUT_DIR="/scripts"
 
-          git clone --depth 1 --branch main ${GITHUB_REPOSITORY} ${CHECKOUT_DIR}
+          git clone --depth 1 --branch main ${GIT_REPOSITORY} ${CHECKOUT_DIR}
           
           cd ${CHECKOUT_DIR}/$(inputs.params.project) 
 
@@ -38,16 +38,21 @@ spec:
         - mountPath: /jbang/.jbang/cache
           name: jbang-cache  
       env:
-        - name: GITHUB_REPOSITORY
+        - name: GIT_REPOSITORY
           valueFrom:
             secretKeyRef:
-              name: karavan-git-secret
-              key: repository
-        - name: GITHUB_TOKEN
+              name: karavan
+              key: git-repository
+        - name: GIT_USERNAME
           valueFrom:
             secretKeyRef:
-              name: karavan-git-secret
-              key: token
+              name: karavan
+              key: git-username
+        - name: GIT_TOKEN
+          valueFrom:
+            secretKeyRef:
+              name: karavan
+              key: git-token
     - name: rollout
       image: >-
         image-registry.openshift-image-registry.svc:5000/openshift/cli:latest
diff --git a/karavan-builder/openshift/karavan-secret.yaml b/karavan-builder/openshift/karavan-secret.yaml
new file mode 100644
index 0000000..c1b3187
--- /dev/null
+++ b/karavan-builder/openshift/karavan-secret.yaml
@@ -0,0 +1,10 @@
+kind: Secret
+apiVersion: v1
+metadata:
+  name: karavan
+data:
+  git-token: ZGVtbw==
+  git-username: ZGVtbw==
+stringData:
+  git-repository: https://github.com/mgubaidullin/karavan-demo.git
+type: Opaque
diff --git a/karavan-builder/openshift/kustomization.yaml b/karavan-builder/openshift/kustomization.yaml
index dd75da7..0409791 100644
--- a/karavan-builder/openshift/kustomization.yaml
+++ b/karavan-builder/openshift/kustomization.yaml
@@ -2,7 +2,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1
 kind: Kustomization
 
 resources:
-- karavan-builder-pvc.yaml
-- karavan-builder-sa.yaml
-- karavan-builder-task.yaml
-- karavan-builder-pipeline.yaml
\ No newline at end of file
+- karavan-quarkus-pvc.yaml
+- karavan-secret.yaml
+- karavan-quarkus-task.yaml
+- karavan-quarkus-pipeline.yaml
+- karavan-app.yaml
\ No newline at end of file