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/10/13 22:01:33 UTC
[camel-karavan] branch main updated: Fix issues with Tekton Task
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 0dd6127 Fix issues with Tekton Task
0dd6127 is described below
commit 0dd612762b9b21e00bfdb0192ffd94b7dab76dd8
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Thu Oct 13 18:01:25 2022 -0400
Fix issues with Tekton Task
---
.../camel/karavan/service/KubernetesService.java | 4 +--
.../java/org/apache/camel/karavan/Constants.java | 2 +-
.../camel/karavan/KaravanTektonPipeline.java | 8 +++---
.../apache/camel/karavan/KaravanTektonTask.java | 33 ++++++++++++++++++----
.../src/main/resources/application.properties | 2 ++
5 files changed, 36 insertions(+), 13 deletions(-)
diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/service/KubernetesService.java b/karavan-app/src/main/java/org/apache/camel/karavan/service/KubernetesService.java
index de1b3e4..8d348f2 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/service/KubernetesService.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/service/KubernetesService.java
@@ -141,8 +141,8 @@ public class KubernetesService {
.withServiceAccountName("pipeline")
.withParams(new ParamBuilder().withName("PROJECT_ID").withNewValue(project.getProjectId()).build())
.withWorkspaces(
- new WorkspaceBindingBuilder().withName("m2-cache").withNewPersistentVolumeClaim("karavan-m2-cache", false).build(),
- new WorkspaceBindingBuilder().withName("jbang-cache").withNewPersistentVolumeClaim("karavan-jbang-cache", false).build())
+ new WorkspaceBindingBuilder().withName("karavan-m2-cache").withNewPersistentVolumeClaim("karavan-m2-cache", false).build(),
+ new WorkspaceBindingBuilder().withName("karavan-jbang-cache").withNewPersistentVolumeClaim("karavan-jbang-cache", false).build())
.build();
PipelineRunBuilder pipelineRunBuilder = new PipelineRunBuilder()
diff --git a/karavan-operator/src/main/java/org/apache/camel/karavan/Constants.java b/karavan-operator/src/main/java/org/apache/camel/karavan/Constants.java
index fef10c5..400b454 100644
--- a/karavan-operator/src/main/java/org/apache/camel/karavan/Constants.java
+++ b/karavan-operator/src/main/java/org/apache/camel/karavan/Constants.java
@@ -13,7 +13,7 @@ public final class Constants {
public static final String ROLEBINDING_KARAVAN_VIEW = "karavan-view";
public static final String PVC_DATA = "karavan-data";
public static final String PVC_M2_CACHE = "karavan-m2-cache";
- public static final String PVC_JBANG = "karavan-jbang";
+ public static final String PVC_JBANG = "karavan-jbang-cache";
public static final String PIPELINE_BUILD_QUARKUS = "karavan-pipeline-build-quarkus";
public static final String TASK_BUILD_QUARKUS = "karavan-task-build-quarkus";
diff --git a/karavan-operator/src/main/java/org/apache/camel/karavan/KaravanTektonPipeline.java b/karavan-operator/src/main/java/org/apache/camel/karavan/KaravanTektonPipeline.java
index 739653b..13f0007 100644
--- a/karavan-operator/src/main/java/org/apache/camel/karavan/KaravanTektonPipeline.java
+++ b/karavan-operator/src/main/java/org/apache/camel/karavan/KaravanTektonPipeline.java
@@ -60,14 +60,14 @@ public class KaravanTektonPipeline extends CRUDKubernetesDependentResource<Pipel
.withParams(new ParamBuilder().withName("project").withNewValue("$(params.PROJECT_ID)").build())
.withTaskRef(new TaskRefBuilder().withKind("Task").withName(Constants.TASK_BUILD_QUARKUS).build())
.withWorkspaces(
- new WorkspacePipelineTaskBinding("m2-cache", "", "m2-cache"),
- new WorkspacePipelineTaskBinding("jbang-cache", "", "jbang-cache")
+ new WorkspacePipelineTaskBinding(Constants.PVC_M2_CACHE, "", Constants.PVC_M2_CACHE),
+ new WorkspacePipelineTaskBinding(Constants.PVC_JBANG, "", Constants.PVC_JBANG)
)
.build()
)
.withWorkspaces(
- new PipelineWorkspaceDeclaration("Maven Cache", "m2-cache", false),
- new PipelineWorkspaceDeclaration("JBang Cache", "jbang-cache", false)
+ new PipelineWorkspaceDeclaration("Maven Cache", Constants.PVC_M2_CACHE, false),
+ new PipelineWorkspaceDeclaration("JBang Cache", Constants.PVC_JBANG, false)
)
.endSpec()
.build();
diff --git a/karavan-operator/src/main/java/org/apache/camel/karavan/KaravanTektonTask.java b/karavan-operator/src/main/java/org/apache/camel/karavan/KaravanTektonTask.java
index 232c360..70d7782 100644
--- a/karavan-operator/src/main/java/org/apache/camel/karavan/KaravanTektonTask.java
+++ b/karavan-operator/src/main/java/org/apache/camel/karavan/KaravanTektonTask.java
@@ -2,6 +2,9 @@ package org.apache.camel.karavan;
import io.fabric8.kubernetes.api.model.EnvVarBuilder;
import io.fabric8.kubernetes.api.model.EnvVarSourceBuilder;
+import io.fabric8.kubernetes.api.model.Secret;
+import io.fabric8.kubernetes.client.DefaultKubernetesClient;
+import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.tekton.pipeline.v1beta1.ArrayOrString;
import io.fabric8.tekton.pipeline.v1beta1.ParamSpec;
import io.fabric8.tekton.pipeline.v1beta1.ParamSpecBuilder;
@@ -39,7 +42,7 @@ public class KaravanTektonTask extends CRUDKubernetesDependentResource<Task, Kar
@Override
@SuppressWarnings("unchecked")
public Task desired(Karavan karavan, Context<Karavan> context) {
- String script = getScript();
+ String script = getScript(karavan);
return new TaskBuilder()
.withNewMetadata()
.withName(Constants.TASK_BUILD_QUARKUS)
@@ -70,26 +73,44 @@ public class KaravanTektonTask extends CRUDKubernetesDependentResource<Task, Kar
new EnvVarBuilder().withName("KAMELETS_GIT_MAIN").withValueFrom(
new EnvVarSourceBuilder().withNewSecretKeyRef().withName("karavan").withKey("kamelets-git-main").and().build()).build(),
new EnvVarBuilder().withName("IMAGE_REGISTRY").withValueFrom(
- new EnvVarSourceBuilder().withNewSecretKeyRef().withName("karavan").withKey("image-registry").and().build()).build()
+ new EnvVarSourceBuilder().withNewSecretKeyRef().withName("karavan").withKey("image-registry").withOptional(true).and().build()).build()
)
.build()
)
.withWorkspaces(
- new WorkspaceDeclaration("Maven Cache", "/root/.m2", "m2-cache", false, false),
- new WorkspaceDeclaration("JBang Cache", "/jbang/.jbang/cache", "jbang-cache", false, false)
+ new WorkspaceDeclaration("Maven Cache", "/root/.m2", Constants.PVC_M2_CACHE, false, false),
+ new WorkspaceDeclaration("JBang Cache", "/jbang/.jbang/cache", Constants.PVC_JBANG, false, false)
)
.endSpec()
.build();
}
- protected String getScript() {
+ protected String getScript(Karavan karavan) {
+ boolean removeImageRegistry = !secretHasImageRegistry(karavan);
try {
InputStream inputStream = KaravanTektonTask.class.getResourceAsStream("/karavan-quarkus-builder-script.sh");
String data = new BufferedReader(new InputStreamReader(inputStream))
- .lines().collect(Collectors.joining(System.getProperty("line.separator")));
+ .lines()
+ .filter(s -> !(removeImageRegistry && s.contains("Dquarkus.container-image.registry=${IMAGE_REGISTRY}")))
+ .collect(Collectors.joining(System.getProperty("line.separator")));
return data;
} catch (Exception e) {
return null;
}
}
+
+ protected boolean secretHasImageRegistry(Karavan karavan) {
+ try {
+ KubernetesClient kubernetesClient = new DefaultKubernetesClient();
+ Secret secret = kubernetesClient.secrets().inNamespace(karavan.getMetadata().getNamespace()).withName(Constants.NAME).get();
+ if (secret != null) {
+ String imageRegistry = secret.getStringData().get("image-registry");
+ System.out.println("imageRegistry = " +imageRegistry);
+ return imageRegistry != null;
+ }
+ return false;
+ } catch (Exception e) {
+ return false;
+ }
+ }
}
diff --git a/karavan-operator/src/main/resources/application.properties b/karavan-operator/src/main/resources/application.properties
index 792e254..cf95614 100644
--- a/karavan-operator/src/main/resources/application.properties
+++ b/karavan-operator/src/main/resources/application.properties
@@ -9,6 +9,8 @@ quarkus.operator-sdk.bundle.package-name=camel-karavan-operator
quarkus.kubernetes-client.trust-certs=true
quarkus.kubernetes.namespace=openshift-operators
quarkus.kubernetes.service-account=camel-karavan-operator
+quarkus.kubernetes.add-build-timestamp=false
+quarkus.kubernetes.add-version-to-label-selectors=false
quarkus.container-image.build=true
quarkus.container-image.builder=jib