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 ab9108a7711bf3c9c82cb7c5c1a8e4f0c7ad1826
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Thu Sep 14 15:11:15 2023 -0400

    Unified Builder for Kubernetes and Docker for #885
---
 .../org/apache/camel/karavan/api/ProjectResource.java |  3 +++
 .../camel/karavan/kubernetes/KubernetesService.java   |  9 ++++-----
 .../camel/karavan/registry/RegistryService.java       | 19 +++++++++++++------
 .../org/apache/camel/karavan/shared/Constants.java    |  1 +
 .../src/main/webui/src/project/build/BuildPanel.tsx   |  3 ++-
 5 files changed, 23 insertions(+), 12 deletions(-)

diff --git 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/ProjectResource.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/ProjectResource.java
index 499a3c29..af14df34 100644
--- 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/ProjectResource.java
+++ 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/ProjectResource.java
@@ -27,6 +27,7 @@ import jakarta.ws.rs.*;
 import jakarta.ws.rs.core.MediaType;
 import org.apache.camel.karavan.service.ProjectService;
 import org.apache.camel.karavan.service.ConfigService;
+import org.jboss.logging.Logger;
 
 import java.net.URLDecoder;
 import java.nio.charset.StandardCharsets;
@@ -37,6 +38,7 @@ import java.util.stream.Collectors;
 
 @Path("/api/project")
 public class ProjectResource {
+    private static final Logger LOGGER = 
Logger.getLogger(ProjectResource.class.getName());
 
     @Inject
     InfinispanService infinispanService;
@@ -93,6 +95,7 @@ public class ProjectResource {
             projectService.buildProject(project, tag);
             return Response.ok().entity(project).build();
         } catch (Exception e) {
+            LOGGER.error(e.getMessage());
             return Response.serverError().entity(e.getMessage()).build();
         }
     }
diff --git 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/kubernetes/KubernetesService.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/kubernetes/KubernetesService.java
index a8acd954..6f6cc241 100644
--- 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/kubernetes/KubernetesService.java
+++ 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/kubernetes/KubernetesService.java
@@ -153,7 +153,7 @@ public class KubernetesService implements HealthCheck {
             if (old != null) {
                 client.resource(old).delete();
             }
-            Pod pod = getBuilderPod(project, containerName, env, labels);
+            Pod pod = getBuilderPod(containerName, env, labels);
             Pod result = client.resource(pod).serverSideApply();
 
             LOGGER.info("Created pod " + result.getMetadata().getName());
@@ -195,9 +195,8 @@ public class KubernetesService implements HealthCheck {
                 .build();
     }
 
-    private Pod getBuilderPod(Project project, String name, List<String> env, 
Map<String, String> labels) {
-        List<EnvVar> envVars = env.stream().map(s -> {
-            String[] parts = s.split("=");
+    private Pod getBuilderPod(String name, List<String> env, Map<String, 
String> labels) {
+        List<EnvVar> envVars = env.stream().map(s -> s.split("=")).filter(s -> 
s.length > 0).map(parts -> {
             String varName = parts[0];
             String varValue = parts[1];
             return new 
EnvVarBuilder().withName(varName).withValue(varValue).build();
@@ -232,7 +231,7 @@ public class KubernetesService implements HealthCheck {
                 .withTerminationGracePeriodSeconds(0L)
                 .withContainers(container)
                 .withRestartPolicy("Never")
-                .withServiceAccount(KARAVAN_PREFIX)
+                .withServiceAccount(KARAVAN_SERVICE_ACCOUNT)
                 .withVolumes(
 //                        new VolumeBuilder().withName(name)
 //                                .withNewPersistentVolumeClaim(name, 
false).build(),
diff --git 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/registry/RegistryService.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/registry/RegistryService.java
index e1d3bf42..cea3c026 100644
--- 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/registry/RegistryService.java
+++ 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/registry/RegistryService.java
@@ -23,6 +23,7 @@ import org.apache.camel.karavan.service.ConfigService;
 import org.eclipse.microprofile.config.inject.ConfigProperty;
 import org.jboss.logging.Logger;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
 
@@ -70,12 +71,18 @@ public class RegistryService {
 
     public List<String> getEnvForBuild() {
         RegistryConfig rc = getRegistryConfig();
-        return List.of(
-                "IMAGE_REGISTRY=" + rc.getRegistry(),
-                "IMAGE_REGISTRY_USERNAME=" + rc.getUsername(),
-                "IMAGE_REGISTRY_PASSWORD=" + rc.getPassword(),
-                "IMAGE_GROUP=" + rc.getGroup()
-        );
+        List<String> result = new ArrayList<>();
+        result.add("IMAGE_REGISTRY=" + rc.getRegistry());
+        if (rc.getUsername() != null && !rc.getUsername().isEmpty()) {
+            result.add("IMAGE_REGISTRY_USERNAME=" + rc.getUsername());
+        }
+        if (rc.getPassword() != null && !rc.getPassword().isEmpty()) {
+            result.add("IMAGE_REGISTRY_PASSWORD=" + rc.getPassword());
+        }
+        if (rc.getGroup() != null && !rc.getGroup().isEmpty()) {
+            result.add("IMAGE_GROUP=" + rc.getGroup());
+        }
+        return result;
     }
 
 }
diff --git 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/shared/Constants.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/shared/Constants.java
index d06e9848..71c3af32 100644
--- 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/shared/Constants.java
+++ 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/shared/Constants.java
@@ -28,6 +28,7 @@ public class Constants {
     public static final String BUILDER_SUFFIX = "-builder";
 
     public static final String CAMEL_PREFIX = "camel";
+    public static final String KARAVAN_SERVICE_ACCOUNT = "karavan";
     public static final String KARAVAN_PREFIX = "karavan";
     public static final String JBANG_CACHE_SUFFIX = "jbang-cache";
     public static final String M2_CACHE_SUFFIX = "m2-cache";
diff --git 
a/karavan-web/karavan-app/src/main/webui/src/project/build/BuildPanel.tsx 
b/karavan-web/karavan-app/src/main/webui/src/project/build/BuildPanel.tsx
index d7a305fe..6def4bbf 100644
--- a/karavan-web/karavan-app/src/main/webui/src/project/build/BuildPanel.tsx
+++ b/karavan-web/karavan-app/src/main/webui/src/project/build/BuildPanel.tsx
@@ -50,7 +50,8 @@ export function BuildPanel () {
             if (res.status === 200 || res.status === 201) {
                 setIsBuilding(false);
             } else {
-                // Todo notification
+                console.log(res);
+                EventBus.sendAlert("Error", (res as any)?.response?.data, 
'danger')
             }
         });
     }

Reply via email to