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