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') } }); }