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