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 <marat.gubaidul...@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