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/28 17:02:34 UTC

[camel-karavan] 02/03: Cleanup

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

commit b9334833a8597bba532ca3b7ce8cfe5b9f60959e
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Fri Oct 28 13:02:07 2022 -0400

    Cleanup
---
 .../camel/karavan/api/KubernetesResource.java      | 10 +-------
 .../camel/karavan/service/KubernetesService.java   | 11 +++++---
 .../src/main/resources/application.properties      |  2 +-
 .../main/webapp/src/dashboard/DashboardPage.tsx    | 30 +++++++++++++---------
 .../apache/camel/karavan/operator/Constants.java   |  5 ++--
 .../operator/resource/KaravanDeployment.java       |  3 +++
 .../operator/resource/KaravanTektonPipeline.java   | 10 ++++----
 .../operator/resource/KaravanTektonTask.java       |  6 ++---
 8 files changed, 40 insertions(+), 37 deletions(-)

diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/api/KubernetesResource.java b/karavan-app/src/main/java/org/apache/camel/karavan/api/KubernetesResource.java
index d1553cb..194c3c3 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/api/KubernetesResource.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/api/KubernetesResource.java
@@ -57,9 +57,6 @@ public class KubernetesResource {
     @ConfigProperty(name = "karavan.environment")
     String environment;
 
-    @ConfigProperty(name = "karavan.pipeline")
-    String pipeline;
-
 
     private static final Logger LOGGER = Logger.getLogger(KubernetesResource.class.getName());
 
@@ -69,9 +66,7 @@ public class KubernetesResource {
     @Path("/pipeline/{env}")
     public Project createPipeline(@PathParam("env") String env, Project project) throws Exception {
         Project p = infinispanService.getProject(project.getProjectId());
-        kubernetesService.createPipelineRun(project, pipeline, kubernetesService.getNamespace());
-//            p.setDeployed(true); // TODO:  Replace this update by updating from Pipeline
-//        infinispanService.saveProject(p); // TODO:  Replace this update by updating from Pipeline
+        kubernetesService.createPipelineRun(project);
         return p;
     }
 
@@ -132,9 +127,6 @@ public class KubernetesResource {
     @Path("/deployment/{env}/{name}")
     public Response deleteDeployment(@PathParam("env") String env, @PathParam("name") String name) throws Exception {
         kubernetesService.deleteDeployment(name, kubernetesService.getNamespace());
-//            Project p = infinispanService.getProject(name); // TODO: p.setDeployed(false) than karavan keeps pod/camel statuses up forever
-//            p.setDeployed(false);
-//            infinispanService.saveProject(p);
         return Response.ok().build();
     }
 
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 c6fdea4..fa3f29b 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
@@ -93,6 +93,9 @@ public class KubernetesService {
     public
     String environment;
 
+    @ConfigProperty(name = "karavan.pipeline")
+    String pipeline;
+
     List<SharedIndexInformer> informers = new ArrayList<>(3);
 
     @ConsumeEvent(value = START_INFORMERS, blocking = true)
@@ -129,19 +132,19 @@ public class KubernetesService {
         informers.forEach(informer -> informer.close());
     }
 
-    public String createPipelineRun(Project project, String pipelineName, String namespace) throws Exception {
-        LOGGER.info("Pipeline is creating for " + project.getProjectId());
+    public String createPipelineRun(Project project) throws Exception {
+        LOGGER.info("Pipeline " + pipeline + " is creating for " + project.getProjectId());
 
         Map<String, String> labels = Map.of(
                 "karavan-project-id", project.getProjectId(),
-                "tekton.dev/pipeline", pipelineName,
+                "tekton.dev/pipeline", pipeline,
                 getRuntimeLabel(), "camel"
         );
 
         ObjectMeta meta = new ObjectMetaBuilder()
                 .withGenerateName("karavan-" + project.getProjectId() + "-")
                 .withLabels(labels)
-                .withNamespace(namespace)
+                .withNamespace(getNamespace())
                 .build();
 
         PipelineRef ref = new PipelineRefBuilder().withName("karavan-pipeline-build-quarkus").build();
diff --git a/karavan-app/src/main/resources/application.properties b/karavan-app/src/main/resources/application.properties
index d13b127..3bae5dc 100644
--- a/karavan-app/src/main/resources/application.properties
+++ b/karavan-app/src/main/resources/application.properties
@@ -1,6 +1,6 @@
 karavan.version=3.18.5
 karavan.environment=dev
-karavan.pipeline=karavan-pipeline-build-quarkus
+karavan.pipeline=karavan-pipeline-dev-quarkus
 karavan.camel-status-threshold=2000
 
 # Git repository Configuration
diff --git a/karavan-app/src/main/webapp/src/dashboard/DashboardPage.tsx b/karavan-app/src/main/webapp/src/dashboard/DashboardPage.tsx
index d893bf7..3488bec 100644
--- a/karavan-app/src/main/webapp/src/dashboard/DashboardPage.tsx
+++ b/karavan-app/src/main/webapp/src/dashboard/DashboardPage.tsx
@@ -4,10 +4,6 @@ import {
     Button,
     Flex,
     FlexItem, HelperText, HelperTextItem, Label, LabelGroup,
-    OverflowMenu,
-    OverflowMenuContent,
-    OverflowMenuGroup,
-    OverflowMenuItem,
     PageSection,
     Text,
     TextContent,
@@ -26,6 +22,7 @@ import {KaravanApi} from "../api/KaravanApi";
 import Icon from "../Logo";
 import UpIcon from "@patternfly/react-icons/dist/esm/icons/check-circle-icon";
 import DownIcon from "@patternfly/react-icons/dist/esm/icons/error-circle-o-icon";
+import QuestionIcon from "@patternfly/react-icons/dist/esm/icons/outlined-question-circle-icon";
 
 interface Props {
     config: any,
@@ -169,7 +166,11 @@ export class DashboardPage extends React.Component<Props, State> {
                 </Flex>
             )
         } else {
-            return (<Label icon={<DownIcon/>} color={"grey"}>n/a</Label>);
+            return (
+                <Tooltip content={"No information"} position={"right"}>
+                    <Label color={"grey"}>???</Label>
+                </Tooltip>
+                    );
         }
     }
 
@@ -207,7 +208,7 @@ export class DashboardPage extends React.Component<Props, State> {
                                     <Td  style={{verticalAlign:"middle"}}>
                                         <HelperText>
                                             <HelperTextItem>{this.getProject(deployment)?.name || ""}</HelperTextItem>
-                                            <HelperTextItem>{this.getProject(deployment)?.description || ""}</HelperTextItem>
+                                            <HelperTextItem>{this.getProject(deployment)?.description || "Camel project"}</HelperTextItem>
                                         </HelperText>
                                     </Td>
                                     <Td  >
@@ -222,7 +223,9 @@ export class DashboardPage extends React.Component<Props, State> {
                                         <Flex direction={{default: "column"}}>
                                             {this.getDeploymentByEnvironments(deployment).map(value => (
                                                 <FlexItem className="badge-flex-item" key={value[0]}>
-                                                    <Label variant={"outline"}>{value[1]?.namespace || "n/a"}</Label>
+                                                    <Label variant={"outline"}>
+                                                        {value[1]?.namespace || "???"}
+                                                    </Label>
                                                 </FlexItem>
                                             ))}
                                         </Flex>
@@ -238,7 +241,9 @@ export class DashboardPage extends React.Component<Props, State> {
                                         <Flex direction={{default: "column"}}>
                                             {this.getServiceByEnvironments(deployment).map(value => (
                                                 <FlexItem className="badge-flex-item" key={value[0]}>
-                                                    <Label variant={"outline"}>{value[1] ? (value[1]?.port + " -> " + value[1]?.targetPort) : "n/a"}</Label>
+                                                    <Label variant={"outline"}>
+                                                        {value[1] ? (value[1]?.port + " -> " + value[1]?.targetPort) : "???"}
+                                                    </Label>
                                                 </FlexItem>
                                             ))}
                                         </Flex>
@@ -248,10 +253,11 @@ export class DashboardPage extends React.Component<Props, State> {
                                             {this.getServiceByEnvironments(deployment).map(value => (
                                                 <FlexItem key={value[0]}>
                                                     <LabelGroup numLabels={4} className="camel-label-group">
-                                                        <Label className="table-label" icon={false ? <UpIcon/> : <DownIcon/>}>{"Context"}</Label>
-                                                        <Label className="table-label" icon={false ? <UpIcon/> : <DownIcon/>}>{"Consumer"}</Label>
-                                                        <Label className="table-label" icon={false ? <UpIcon/> : <DownIcon/>}>{"Routes"}</Label>
-                                                        <Label className="table-label" icon={false ? <UpIcon/> : <DownIcon/>}>{"Registry"}</Label>
+                                                        <Label color={false ? "green" : "red"}
+                                                               className="table-label"
+                                                               icon={false ? <UpIcon/> : <DownIcon/>}>
+                                                            {"Context"}
+                                                        </Label>
                                                     </LabelGroup>
                                                 </FlexItem>
                                             ))}
diff --git a/karavan-operator/src/main/java/org/apache/camel/karavan/operator/Constants.java b/karavan-operator/src/main/java/org/apache/camel/karavan/operator/Constants.java
index 9499881..ba78eb4 100644
--- a/karavan-operator/src/main/java/org/apache/camel/karavan/operator/Constants.java
+++ b/karavan-operator/src/main/java/org/apache/camel/karavan/operator/Constants.java
@@ -31,9 +31,8 @@ public final class Constants {
     public static final String PVC_M2_CACHE = "karavan-m2-cache";
     public static final String PVC_JBANG_CACHE = "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";
-
+    public static final String PIPELINE_DEV_QUARKUS = "karavan-pipeline-dev-quarkus";
+    public static final String TASK_DEV_QUARKUS = "karavan-task-dev-quarkus";
 
     public static final String ROLE_PIPELINE_DEPLOYER = "deployer";
     public static final String SERVICEACCOUNT_PIPELINE = "pipeline";
diff --git a/karavan-operator/src/main/java/org/apache/camel/karavan/operator/resource/KaravanDeployment.java b/karavan-operator/src/main/java/org/apache/camel/karavan/operator/resource/KaravanDeployment.java
index a4d6258..7e72080 100644
--- a/karavan-operator/src/main/java/org/apache/camel/karavan/operator/resource/KaravanDeployment.java
+++ b/karavan-operator/src/main/java/org/apache/camel/karavan/operator/resource/KaravanDeployment.java
@@ -62,6 +62,9 @@ public class KaravanDeployment extends CRUDKubernetesDependentResource<Deploymen
         String image = baseImage + ":" + version;
         List<EnvVar> envVarList = new ArrayList<>();
 
+        envVarList.add(
+                new EnvVar("KARAVAN_ENVIRONMENT", karavan.getSpec().getType(), null)
+        );
         envVarList.add(
                 new EnvVar("KUBERNETES_NAMESPACE", null, new EnvVarSourceBuilder().withFieldRef(new ObjectFieldSelector("","metadata.namespace")).build())
         );
diff --git a/karavan-operator/src/main/java/org/apache/camel/karavan/operator/resource/KaravanTektonPipeline.java b/karavan-operator/src/main/java/org/apache/camel/karavan/operator/resource/KaravanTektonPipeline.java
index 5049fe1..df0e46c 100644
--- a/karavan-operator/src/main/java/org/apache/camel/karavan/operator/resource/KaravanTektonPipeline.java
+++ b/karavan-operator/src/main/java/org/apache/camel/karavan/operator/resource/KaravanTektonPipeline.java
@@ -46,16 +46,16 @@ public class KaravanTektonPipeline extends CRUDKubernetesDependentResource<Pipel
     public Pipeline desired(Karavan karavan, Context<Karavan> context) {
         return new PipelineBuilder()
                 .withNewMetadata()
-                .withName(Constants.PIPELINE_BUILD_QUARKUS)
+                .withName(Constants.PIPELINE_DEV_QUARKUS)
                 .withNamespace(karavan.getMetadata().getNamespace())
-                .withLabels(Utils.getLabels(Constants.PIPELINE_BUILD_QUARKUS, Map.of()))
+                .withLabels(Utils.getLabels(Constants.PIPELINE_DEV_QUARKUS, Map.of()))
                 .endMetadata()
                 .withNewSpec()
                 .withParams(new ParamSpecBuilder().withName("PROJECT_ID").withType("string").withDescription("ProjectId").build())
                 .withTasks(
-                        new PipelineTaskBuilder().withName(Constants.TASK_BUILD_QUARKUS)
+                        new PipelineTaskBuilder().withName(Constants.TASK_DEV_QUARKUS)
                                 .withParams(new ParamBuilder().withName("project").withNewValue("$(params.PROJECT_ID)").build())
-                                .withTaskRef(new TaskRefBuilder().withKind("Task").withName(Constants.TASK_BUILD_QUARKUS).build())
+                                .withTaskRef(new TaskRefBuilder().withKind("Task").withName(Constants.TASK_DEV_QUARKUS).build())
                                 .withWorkspaces(
                                         new WorkspacePipelineTaskBinding(Constants.PVC_M2_CACHE, "", Constants.PVC_M2_CACHE),
                                         new WorkspacePipelineTaskBinding(Constants.PVC_JBANG_CACHE, "", Constants.PVC_JBANG_CACHE)
@@ -72,7 +72,7 @@ public class KaravanTektonPipeline extends CRUDKubernetesDependentResource<Pipel
 
     @Override
     public ReconcileResult<Pipeline> reconcile(Karavan karavan, Context<Karavan> context) {
-        Pipeline pipeline = new DefaultTektonClient(getKubernetesClient()).v1beta1().pipelines().inNamespace(karavan.getMetadata().getNamespace()).withName(Constants.PIPELINE_BUILD_QUARKUS).get();
+        Pipeline pipeline = new DefaultTektonClient(getKubernetesClient()).v1beta1().pipelines().inNamespace(karavan.getMetadata().getNamespace()).withName(Constants.PIPELINE_DEV_QUARKUS).get();
         if (pipeline == null) {
             var desired = desired(karavan, context);
             var createdResource = handleCreate(desired, karavan, context);
diff --git a/karavan-operator/src/main/java/org/apache/camel/karavan/operator/resource/KaravanTektonTask.java b/karavan-operator/src/main/java/org/apache/camel/karavan/operator/resource/KaravanTektonTask.java
index b1eb239..963762d 100644
--- a/karavan-operator/src/main/java/org/apache/camel/karavan/operator/resource/KaravanTektonTask.java
+++ b/karavan-operator/src/main/java/org/apache/camel/karavan/operator/resource/KaravanTektonTask.java
@@ -61,9 +61,9 @@ public class KaravanTektonTask extends CRUDKubernetesDependentResource<Task, Kar
 
         return new TaskBuilder()
                 .withNewMetadata()
-                .withName(Constants.TASK_BUILD_QUARKUS)
+                .withName(Constants.TASK_DEV_QUARKUS)
                 .withNamespace(karavan.getMetadata().getNamespace())
-                .withLabels(Utils.getLabels(Constants.TASK_BUILD_QUARKUS, Map.of()))
+                .withLabels(Utils.getLabels(Constants.TASK_DEV_QUARKUS, Map.of()))
                 .endMetadata()
                 .withNewSpec()
                 .withParams(new ParamSpecBuilder().withName("project").withType("string").withDescription("ProjectId").build())
@@ -103,7 +103,7 @@ public class KaravanTektonTask extends CRUDKubernetesDependentResource<Task, Kar
 
     @Override
     public ReconcileResult<Task> reconcile(Karavan karavan, Context<Karavan> context) {
-        Task task = new DefaultTektonClient(getKubernetesClient()).v1beta1().tasks().inNamespace(karavan.getMetadata().getNamespace()).withName(Constants.TASK_BUILD_QUARKUS).get();
+        Task task = new DefaultTektonClient(getKubernetesClient()).v1beta1().tasks().inNamespace(karavan.getMetadata().getNamespace()).withName(Constants.TASK_DEV_QUARKUS).get();
         if (task == null) {
             var desired = desired(karavan, context);
             var createdResource = handleCreate(desired, karavan, context);