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 b8ac47a41a185e8fe7f9eae1559203d42af7e5bf Author: Marat Gubaidullin <marat.gubaidul...@gmail.com> AuthorDate: Fri Jul 21 21:19:51 2023 -0400 karavan-app #817 --- karavan-web/karavan-app/pom.xml | 60 +++------------------- .../apache/camel/karavan/api/DevModeResource.java | 4 +- .../camel/karavan/docker/DockerEventListener.java | 5 +- .../apache/camel/karavan/docker/DockerService.java | 57 ++++++++++++++++---- .../karavan/kubernetes/KubernetesService.java | 2 +- .../camel/karavan/kubernetes/PodEventHandler.java | 3 +- .../apache/camel/karavan/service/CamelService.java | 42 +++++---------- .../apache/camel/karavan/service/EventService.java | 25 ++++++--- .../camel/karavan/service/ScheduledService.java | 17 +++--- .../apache/camel/karavan/shared/ConfigService.java | 7 +++ .../org/apache/camel/karavan/shared/EventType.java | 2 +- .../src/main/resources/application.properties | 15 ++---- karavan-web/pom.xml | 8 +-- 13 files changed, 110 insertions(+), 137 deletions(-) diff --git a/karavan-web/karavan-app/pom.xml b/karavan-web/karavan-app/pom.xml index 620584ec..f38269f9 100644 --- a/karavan-web/karavan-app/pom.xml +++ b/karavan-web/karavan-app/pom.xml @@ -20,12 +20,17 @@ <artifactId>karavan</artifactId> <parent> <groupId>org.apache.camel.karavan</groupId> - <artifactId>karavan-cloud</artifactId> + <artifactId>karavan-web</artifactId> <version>3.21.1-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <dependencies> + <dependency> + <groupId>org.apache.camel.karavan</groupId> + <artifactId>karavan-infinispan</artifactId> + <version>${project.version}</version> + </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-reactive-messaging</artifactId> @@ -104,11 +109,6 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> - <!-- Infinispan --> - <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-infinispan-client</artifactId> - </dependency> <!-- Docker --> <dependency> <groupId>com.github.docker-java</groupId> @@ -144,11 +144,6 @@ <artifactId>rest-assured</artifactId> <scope>test</scope> </dependency> - <dependency> - <groupId>io.quarkiverse.quinoa</groupId> - <artifactId>quarkus-quinoa</artifactId> - <version>${quinoa.version}</version> - </dependency> </dependencies> <build> <resources> @@ -164,13 +159,6 @@ <include>**/**.xml</include> </includes> </resource> - <resource> - <directory>target/classes/proto</directory> - <filtering>true</filtering> - <includes> - <include>karavan.proto</include> - </includes> - </resource> </resources> <plugins> <plugin> @@ -224,42 +212,6 @@ </plugin> </plugins> </build> - <profiles> - <profile> - <id>native</id> - <activation> - <property> - <name>native</name> - </property> - </activation> - <build> - <plugins> - <plugin> - <artifactId>maven-failsafe-plugin</artifactId> - <version>${surefire-plugin.version}</version> - <executions> - <execution> - <goals> - <goal>integration-test</goal> - <goal>verify</goal> - </goals> - <configuration> - <systemPropertyVariables> - <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path> - <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> - <maven.home>${maven.home}</maven.home> - </systemPropertyVariables> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> - <properties> - <quarkus.package.type>native</quarkus.package.type> - </properties> - </profile> - </profiles> <repositories> <repository> <id>apache.snapshots</id> diff --git a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java index 4170abd8..a5372ed9 100644 --- a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java +++ b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java @@ -63,9 +63,9 @@ public class DevModeResource { if (status == null) { infinispanService.saveDevModeStatus(new DevModeStatus(project.getProjectId(), null, null, false)); if (ConfigService.inKubernetes()) { - kubernetesService.createRunner(project, runnerName, ""); + kubernetesService.runDevModeContainer(project, runnerName, ""); } else { - dockerService.createRunner(project, runnerName, ""); + dockerService.runDevmodeContainer(project, runnerName, ""); } return Response.ok(runnerName).build(); } diff --git a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerEventListener.java b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerEventListener.java index 64816aea..40c2b858 100644 --- a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerEventListener.java +++ b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerEventListener.java @@ -97,6 +97,7 @@ public class DockerEventListener implements ResultCallback<Event> { String name = container.getNames()[0].replace("/", ""); if (Arrays.asList("stop", "die", "kill", "pause", "destroy").contains(event.getStatus())) { String projectId = name.replace(DEVMODE_SUFFIX, ""); + infinispanService.deleteDevModeStatus(projectId); infinispanService.deleteContainerStatus(projectId, environment, name); infinispanService.deleteCamelStatuses(projectId, environment); } else if (Arrays.asList("start", "unpause").contains(event.getStatus())) { @@ -127,9 +128,7 @@ public class DockerEventListener implements ResultCallback<Event> { if (infinispanService.isReady()) { ContainerStatus ps = infinispanService.getDevModeContainerStatuses(projectId, environment); if (ps == null) { - ps = new ContainerStatus(name, true, projectId, environment, getCtype(container.getLabels()), Instant.ofEpochSecond(container.getCreated()).toString(), exposedPort); - } else { - ps.setExposedPort(exposedPort); + ps = new ContainerStatus(name, true, projectId, environment, getCtype(container.getLabels()), Instant.ofEpochSecond(container.getCreated()).toString()); } infinispanService.saveContainerStatus(ps); } diff --git a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerService.java b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerService.java index 40c1d714..f2a8bd8e 100644 --- a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerService.java +++ b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerService.java @@ -36,6 +36,9 @@ public class DockerService { private static final Logger LOGGER = Logger.getLogger(DockerService.class.getName()); + public static final String INFINISPAN_CONTAINER_NAME = "infinispan"; + public static final String KARAVAN_CONTAINER_NAME = "karavan-headless"; + public static final String NETWORK_NAME = "karavan"; public static final String LABEL_TYPE = "type"; public static final String LABEL_PROJECT_ID = "projectId"; @@ -44,11 +47,16 @@ public class DockerService { private static final DecimalFormat formatGiB = new DecimalFormat("0.00"); private static final Map<String, Tuple2<Long, Long>> previousStats = new ConcurrentHashMap<>(); - @ConfigProperty(name = "runner.image") - String runnerImage; + @ConfigProperty(name = "karavan.devmode.image") + String devmodeImage; + + @ConfigProperty(name = "karavan.headless.image") + String headlessImage; @ConfigProperty(name = "infinispan.image") String infinispanImage; + @ConfigProperty(name = "infinispan.hosts") + String infinispanHosts; @ConfigProperty(name = "infinispan.port") String infinispanPort; @ConfigProperty(name = "infinispan.username") @@ -62,20 +70,18 @@ public class DockerService { @Inject EventBus eventBus; - public void createRunner(Project project, String runnerName, String jBangOptions) throws InterruptedException { + public void runDevmodeContainer(Project project, String runnerName, String jBangOptions) throws InterruptedException { String projectId = project.getProjectId(); LOGGER.infof("DevMode starting for %s", projectId); HealthCheck healthCheck = new HealthCheck().withTest(List.of("CMD", "curl", "-f", "http://localhost:8080/q/dev/health")) .withInterval(10000000000L).withTimeout(10000000000L).withStartPeriod(10000000000L).withRetries(30); - createContainer(runnerName, runnerImage, - List.of(), "8080:8080", true,true, healthCheck, + createContainer(runnerName, devmodeImage, + List.of(), null, false, false, healthCheck, Map.of(LABEL_TYPE, ContainerStatus.CType.devmode.name(), LABEL_PROJECT_ID, projectId)); startContainer(runnerName); LOGGER.infof("DevMode started for %s", projectId); } - public static final String INFINISPAN_CONTAINER_NAME = "infinispan"; - public void startInfinispan() { try { LOGGER.info("Infinispan is starting..."); @@ -94,6 +100,32 @@ public class DockerService { } } + public void startKaravanHeadlessContainer() { + try { + LOGGER.info("Karavan headless is starting..."); + + createContainer(KARAVAN_CONTAINER_NAME, headlessImage, + List.of( + "INFINISPAN_HOSTS=infinispan:11222", + "INFINISPAN_USERNAME=" + infinispanUsername, + "INFINISPAN_PASSWORD=" + infinispanPassword + ), + null, false, false, new HealthCheck(), Map.of()); + startContainer(KARAVAN_CONTAINER_NAME); + LOGGER.info("Karavan headless is started"); + } catch (Exception e) { + LOGGER.error(e.getMessage()); + } + } + + public void deleteKaravanHeadlessContainer() { + try { + deleteContainer(KARAVAN_CONTAINER_NAME); + } catch (Exception e) { + LOGGER.error(e.getMessage()); + } + } + public void collectContainersStats() { getDockerClient().listContainersCmd().exec().forEach(container -> { Statistics stats = getContainerStats(container.getId()); @@ -107,7 +139,7 @@ public class DockerService { "memory", memoryUsage + " / " + memoryLimit, "cpu", formatCpu(name, stats) ); - eventBus.publish(CONTAINER_STATS, data); + eventBus.publish(CONTAINER_STATISTICS, data); }); } @@ -259,7 +291,12 @@ public class DockerService { public void pullImage(String image) throws InterruptedException { List<Image> images = getDockerClient().listImagesCmd().withShowAll(true).exec(); - if (!images.stream().filter(i -> Arrays.asList(i.getRepoTags()).contains(image)).findFirst().isPresent()) { + List<String> tags = images.stream() + .map(i -> Arrays.stream(i.getRepoTags()).collect(Collectors.toList())) + .flatMap(Collection::stream) + .collect(Collectors.toList()); + + if (!images.stream().filter(i -> tags.contains(image)).findFirst().isPresent()) { ResultCallback.Adapter<PullResponseItem> pull = getDockerClient().pullImageCmd(image).start().awaitCompletion(); } } @@ -280,7 +317,7 @@ public class DockerService { private Map<Integer, Integer> getPortsFromString(String ports) { Map<Integer, Integer> p = new HashMap<>(); - if (!ports.isEmpty()) { + if (ports != null && !ports.isEmpty()) { Arrays.stream(ports.split(",")).forEach(s -> { String[] values = s.split(":"); p.put(Integer.parseInt(values[0]), Integer.parseInt(values[1])); 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 dc6fb90f..f10a38b6 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 @@ -385,7 +385,7 @@ public class KubernetesService implements HealthCheck { return result; } - public void createRunner(Project project, String runnerName, String jBangOptions) { + public void runDevModeContainer(Project project, String runnerName, String jBangOptions) { createPVC(runnerName); Pod old = kubernetesClient().pods().inNamespace(getNamespace()).withName(runnerName).get(); if (old == null) { diff --git a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/kubernetes/PodEventHandler.java b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/kubernetes/PodEventHandler.java index 47378b95..791d6bfc 100644 --- a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/kubernetes/PodEventHandler.java +++ b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/kubernetes/PodEventHandler.java @@ -92,8 +92,7 @@ public class PodEventHandler implements ResourceEventHandler<Pod> { project, kubernetesService.environment, ContainerStatus.CType.pod, - "", - null); + ""); } } } \ No newline at end of file diff --git a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelService.java b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelService.java index bb675585..38570b9c 100644 --- a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelService.java +++ b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelService.java @@ -76,10 +76,8 @@ public class CamelService { LOGGER.info("Reload project code " + projectId); String containerName = projectId + DEVMODE_SUFFIX; try { - ContainerStatus containerStatus = infinispanService.getDevModeContainerStatuses(projectId, environment); - Integer exposedPort = containerStatus.getExposedPort(); - infinispanService.getProjectFiles(projectId).forEach(projectFile -> putRequest(containerName,exposedPort, projectFile.getName(), projectFile.getCode(), 1000)); - reloadRequest(containerName, exposedPort); + infinispanService.getProjectFiles(projectId).forEach(projectFile -> putRequest(containerName, projectFile.getName(), projectFile.getCode(), 1000)); + reloadRequest(containerName); DevModeStatus dms = infinispanService.getDevModeStatus(projectId); dms.setCodeLoaded(true); infinispanService.saveDevModeStatus(dms); @@ -89,9 +87,9 @@ public class CamelService { } @CircuitBreaker(requestVolumeThreshold = 10, failureRatio = 0.5, delay = 1000) - public boolean putRequest(String containerName, Integer exposedPort, String fileName, String body, int timeout) { + public boolean putRequest(String containerName, String fileName, String body, int timeout) { try { - String url = getContainerAddress(containerName, exposedPort) + "/q/upload/" + fileName; + String url = getContainerAddress(containerName) + "/q/upload/" + fileName; HttpResponse<Buffer> result = getWebClient().putAbs(url) .timeout(timeout).sendBuffer(Buffer.buffer(body)).subscribeAsCompletionStage().toCompletableFuture().get(); return result.statusCode() == 200; @@ -101,8 +99,8 @@ public class CamelService { return false; } - public String reloadRequest(String containerName, Integer exposedPort) { - String url = getContainerAddress(containerName, exposedPort) + "/q/dev/reload?reload=true"; + public String reloadRequest(String containerName) { + String url = getContainerAddress(containerName) + "/q/dev/reload?reload=true"; try { return result(url, 1000); } catch (InterruptedException | ExecutionException e) { @@ -111,18 +109,14 @@ public class CamelService { return null; } - public String getContainerAddress(String containerName, Integer exposedPort) { - if (ConfigService.inKubernetes()) { - return "http://" + containerName + "." + kubernetesService.getNamespace() + ".svc.cluster.local"; - } else { - return "http://localhost:" + exposedPort; - } + public String getContainerAddress(String containerName) { + return "http://" + containerName + "." + kubernetesService.getNamespace() + ".svc.cluster.local"; } public void collectCamelStatuses() { if (infinispanService.isReady()) { infinispanService.getContainerStatuses(environment).forEach(pod -> { - CamelStatusRequest csr = new CamelStatusRequest(pod.getProjectId(), pod.getName(), pod.getExposedPort()); + CamelStatusRequest csr = new CamelStatusRequest(pod.getProjectId(), pod.getName()); eventBus.publish(CMD_COLLECT_CAMEL_STATUS, JsonObject.mapFrom(csr)); }); } @@ -133,8 +127,7 @@ public class CamelService { CamelStatusRequest dms = data.mapTo(CamelStatusRequest.class); Arrays.stream(CamelStatus.Name.values()).forEach(statusName -> { String containerName = dms.getContainerName(); - Integer exposedPort = dms.getExposedPort(); - String status = getCamelStatus(containerName, exposedPort, statusName); + String status = getCamelStatus(containerName, statusName); if (status != null) { CamelStatus cs = new CamelStatus(dms.getProjectId(), containerName, statusName, status, environment); infinispanService.saveCamelStatus(cs); @@ -179,8 +172,8 @@ public class CamelService { } } - public String getCamelStatus(String podName, Integer exposedPort, CamelStatus.Name statusName) { - String url = getContainerAddress(podName, exposedPort) + "/q/dev/" + statusName.name(); + public String getCamelStatus(String podName, CamelStatus.Name statusName) { + String url = getContainerAddress(podName) + "/q/dev/" + statusName.name(); try { return result(url, 500); } catch (InterruptedException | ExecutionException e) { @@ -207,15 +200,13 @@ public class CamelService { public static class CamelStatusRequest { private String projectId; private String containerName; - private Integer exposedPort; public CamelStatusRequest() { } - public CamelStatusRequest(String projectId, String containerName, Integer exposedPort) { + public CamelStatusRequest(String projectId, String containerName) { this.projectId = projectId; this.containerName = containerName; - this.exposedPort = exposedPort; } public String getProjectId() { @@ -234,12 +225,5 @@ public class CamelService { this.containerName = containerName; } - public Integer getExposedPort() { - return exposedPort; - } - - public void setExposedPort(Integer exposedPort) { - this.exposedPort = exposedPort; - } } } \ No newline at end of file diff --git a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/EventService.java b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/EventService.java index 0d0a9759..cc4277a8 100644 --- a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/EventService.java +++ b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/EventService.java @@ -48,11 +48,16 @@ public class EventService { @ConsumeEvent(value = START_KARAVAN, blocking = true, ordered = true) void startKaravan(String data) { if (!ConfigService.inKubernetes()) { - LOGGER.info("Starting Karavan with Docker"); - dockerService.createNetwork(); - dockerService.startListeners(); - dockerService.startInfinispan(); - dockerService.checkInfinispanHealth(); + if (ConfigService.isHeadless()) { + LOGGER.info("Starting Karavan Headless in Docker"); + } else { + LOGGER.info("Starting Karavan with Docker"); + dockerService.createNetwork(); + dockerService.startListeners(); + dockerService.startInfinispan(); + dockerService.checkInfinispanHealth(); + dockerService.collectContainersStatuses(); + } } else { LOGGER.info("Starting Karavan in " + (kubernetesService.isOpenshift() ? "OpenShift" : "Kubernetes")); startServices(HEALTHY); @@ -60,9 +65,13 @@ public class EventService { } @ConsumeEvent(value = INFINISPAN_STARTED, blocking = true, ordered = true) - void startServices(String infinispanHealth){ + void startServices(String infinispanHealth) { if (infinispanHealth.equals(HEALTHY)) { - infinispanService.start(); + if (!ConfigService.inKubernetes()) { + dockerService.deleteKaravanHeadlessContainer(); + dockerService.startKaravanHeadlessContainer(); + } + infinispanService.start(false); infinispanService.clearAllStatuses(); bus.publish(EventType.IMPORT_PROJECTS, ""); bus.publish(EventType.START_INFRASTRUCTURE_LISTENERS, ""); @@ -103,7 +112,7 @@ public class EventService { } } - @ConsumeEvent(value = CONTAINER_STATS, blocking = true, ordered = true) + @ConsumeEvent(value = CONTAINER_STATISTICS, blocking = true, ordered = true) public void saveStats(JsonObject data) { String projectId = data.getString("projectId"); String memory = data.getString("memory"); diff --git a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/ScheduledService.java b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/ScheduledService.java index 953b660d..ae586bbb 100644 --- a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/ScheduledService.java +++ b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/ScheduledService.java @@ -18,6 +18,7 @@ package org.apache.camel.karavan.service; import io.quarkus.scheduler.Scheduled; import org.apache.camel.karavan.docker.DockerService; +import org.jboss.logging.Logger; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; @@ -25,6 +26,8 @@ import javax.inject.Inject; @ApplicationScoped public class ScheduledService { + private static final Logger LOGGER = Logger.getLogger(ScheduledService.class.getName()); + @Inject DockerService dockerService; @@ -34,23 +37,17 @@ public class ScheduledService { @Inject CamelService camelService; - @Scheduled(every = "{karavan.container.status.pull-interval}", concurrentExecution = Scheduled.ConcurrentExecution.SKIP) - void collectContainersStatuses() { - dockerService.collectContainersStatuses(); - } - - @Scheduled(every = "{karavan.container.stats.container}", concurrentExecution = Scheduled.ConcurrentExecution.SKIP) + @Scheduled(every = "{karavan.container.statistics.container}", concurrentExecution = Scheduled.ConcurrentExecution.SKIP) void collectContainersStats() { dockerService.collectContainersStats(); } @Scheduled(every = "{karavan.camel.status.pull-interval}", concurrentExecution = Scheduled.ConcurrentExecution.SKIP) void collectCamelStatuses() { + LOGGER.info("Collect info statuses"); + // collect Camel statuses camelService.collectCamelStatuses(); - } - - @Scheduled(every = "{karavan.camel.status.pull-interval}", concurrentExecution = Scheduled.ConcurrentExecution.SKIP) - void cleanupDevModeStatuses() { + // clean DevMode statuses if container deleted camelService.cleanupDevModeStatuses(); } diff --git a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/shared/ConfigService.java b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/shared/ConfigService.java index c8efcdb8..233c035d 100644 --- a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/shared/ConfigService.java +++ b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/shared/ConfigService.java @@ -17,6 +17,8 @@ package org.apache.camel.karavan.shared; import io.quarkus.runtime.StartupEvent; +import io.quarkus.runtime.configuration.ConfigUtils; +import io.quarkus.runtime.configuration.ProfileManager; import org.eclipse.microprofile.config.inject.ConfigProperty; import javax.enterprise.context.ApplicationScoped; @@ -28,6 +30,7 @@ import java.util.Objects; public class ConfigService { public static final String DEVMODE_SUFFIX = "-devmode"; + public static final String HEADLESS_MODE = "headless"; @ConfigProperty(name = "karavan.version") String version; @@ -64,4 +67,8 @@ public class ConfigService { public static boolean inKubernetes() { return Objects.nonNull(System.getenv("KUBERNETES_SERVICE_HOST")); } + + public static boolean isHeadless() { + return ConfigUtils.isProfileActive(HEADLESS_MODE); + } } \ No newline at end of file diff --git a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/shared/EventType.java b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/shared/EventType.java index f2036913..08bc7fdb 100644 --- a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/shared/EventType.java +++ b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/shared/EventType.java @@ -13,7 +13,7 @@ public class EventType { public static final String INFINISPAN_STARTED = "INFINISPAN_STARTED"; - public static final String CONTAINER_STATS = "CONTAINER_STATS"; + public static final String CONTAINER_STATISTICS = "CONTAINER_STATISTICS"; public static final String DEVMODE_STATUS = "DEVMODE_STATUS"; } diff --git a/karavan-web/karavan-app/src/main/resources/application.properties b/karavan-web/karavan-app/src/main/resources/application.properties index 0cb2e699..b0bfda46 100644 --- a/karavan-web/karavan-app/src/main/resources/application.properties +++ b/karavan-web/karavan-app/src/main/resources/application.properties @@ -3,11 +3,10 @@ karavan.environment=dev karavan.environments=dev,test,prod karavan.default-runtime=quarkus karavan.runtimes=quarkus,spring-boot -karavan.camel.status.pull-interval=3s -karavan.container.status.pull-interval=5s -karavan.container.stats.container=5s -quarkus.scheduler.enabled=true -runner.image=ghcr.io/apache/camel-karavan-runner:3.21.1-snapshot +karavan.camel.status.pull-interval=off +karavan.container.statistics.container=3s +karavan.devmode.image=ghcr.io/apache/camel-karavan-runner:3.21.1-snapshot +karavan.headless.image=marat/karavan-headless:3.21.1-SNAPSHOT # Git repository Configuration karavan.git.repository=${GIT_REPOSITORY} @@ -24,9 +23,6 @@ infinispan.password=karavan infinispan.hosts=localhost:11222 quarkus.infinispan-client.devservices.enabled=false - -# Infinispan client intelligence -# Use BASIC as a Docker for Mac workaround quarkus.infinispan-client.client-intelligence=BASIC # Public Dev @@ -92,7 +88,6 @@ quarkus.log.level=INFO quarkus.banner.enabled=false quarkus.package.type=uber-jar quarkus.docker.dockerfile-jvm-path=src/main/docker/Dockerfile.distroless -#quarkus.docker.dockerfile-jvm-path=src/main/docker/Dockerfile.legacy-jar quarkus.container-image.builder=docker quarkus.qute.strict-rendering=false @@ -105,7 +100,7 @@ quarkus.kubernetes-client.connection-timeout=2000 quarkus.kubernetes-client.request-timeout=10000 quarkus.kubernetes-client.devservices.enabled=false -quarkus.swagger-ui.always-include=true +%dev.quarkus.swagger-ui.always-include=true quarkus.quinoa.frozen-lockfile=false quarkus.quinoa.package-manager-install=false diff --git a/karavan-web/pom.xml b/karavan-web/pom.xml index a16e9e97..54d6d283 100644 --- a/karavan-web/pom.xml +++ b/karavan-web/pom.xml @@ -5,7 +5,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.apache.camel.karavan</groupId> - <artifactId>karavan-cloud</artifactId> + <artifactId>karavan-web</artifactId> <version>3.21.1-SNAPSHOT</version> <packaging>pom</packaging> @@ -43,12 +43,6 @@ <quarkus.version>2.16.7.Final</quarkus.version> </properties> - <modules> - <module>karavan-cli</module> - <module>karavan-app</module> - <module>karavan-operator</module> - </modules> - <dependencyManagement> <dependencies> <dependency>