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 dca8139a Prepare to work in Openshift for #885
dca8139a is described below
commit dca8139adce58fed3f8363cc9855ccca2948834b
Author: Marat Gubaidullin <[email protected]>
AuthorDate: Sat Sep 16 19:38:48 2023 -0400
Prepare to work in Openshift for #885
---
karavan-web/docker/Dockerfile.devmode | 11 ++--
.../camel/karavan/api/ContainerResource.java | 65 ++++++++++++----------
2 files changed, 42 insertions(+), 34 deletions(-)
diff --git a/karavan-web/docker/Dockerfile.devmode
b/karavan-web/docker/Dockerfile.devmode
index 5f998b56..6ef09a9c 100644
--- a/karavan-web/docker/Dockerfile.devmode
+++ b/karavan-web/docker/Dockerfile.devmode
@@ -10,12 +10,12 @@ ENV JBANG_VERSION=0.110.0
ENV CAMEL_VERSION=4.0.0
ENV DOT_CAMEL="/.camel"
ENV KARAVAN="/karavan"
-ENV BUILDER_PATH="/builder"
+ENV BUILDER_PATH="$KARAVAN/builder"
ENV JBANG_REPO="$KARAVAN/.jbang/cache/.m2"
ENV JBANG_DIR="$KARAVAN/.jbang"
ENV MAVEN_SETTINGS="/karavan-config-map/maven-settings.xml"
# ENV MAVEN_CONFIG="$KARAVAN/.m2"
-ENV CODE_DIR="/code"
+ENV CODE_DIR="$KARAVAN/code"
ENV KAMELETS_DIR="/$CODE_DIR/kamelets"
ENV PATH="${PATH}:$KARAVAN/.jbang/bin"
@@ -26,14 +26,15 @@ RUN mkdir -p $DOT_CAMEL \
&& mkdir -p $BUILDER_PATH \
&& mkdir -p $JBANG_REPO
+RUN chgrp -R 0 $KARAVAN && chmod -R g+rwX $KARAVAN
+RUN chgrp -R 0 $DOT_CAMEL && chmod -R g+rwX $DOT_CAMEL
+RUN chgrp -R 0 $HOME && chmod -R g+rwX $HOME
+
RUN curl -Ls https://sh.jbang.dev | bash -s - app setup \
&& jbang trust add --quiet https://github.com/apache/camel \
&& jbang app install camel@apache/camel \
&& jbang config set cache-evict never
-RUN chgrp -R 0 $KARAVAN && chmod -R g+rwX $KARAVAN
-RUN chgrp -R 0 $DOT_CAMEL && chmod -R g+rwX $DOT_CAMEL
-
EXPOSE 8080
WORKDIR $CODE_DIR
CMD jbang $JBANG_OPTIONS -Dcamel.jbang.version=$CAMEL_VERSION
camel@apache/camel run --source-dir=$CODE_DIR --console
--local-kamelet-dir=$KAMELETS_DIR --maven-settings=$MAVEN_SETTINGS
diff --git
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/ContainerResource.java
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/ContainerResource.java
index e035dbba..178e987c 100644
---
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/ContainerResource.java
+++
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/ContainerResource.java
@@ -83,39 +83,46 @@ public class ContainerResource {
@Path("/{env}/{type}/{name}")
public Response manageContainer(@PathParam("env") String env,
@PathParam("type") String type, @PathParam("name") String name, JsonObject
command) throws Exception {
if (infinispanService.isReady()) {
- // set container statuses
- setContainerStatusTransit(name, type);
- // exec docker commands
- if (command.containsKey("command")) {
- if (command.getString("command").equalsIgnoreCase("run")) {
- if (Objects.equals(type,
ContainerStatus.ContainerType.devservice.name())) {
- String code = projectService.getDevServiceCode();
- DockerComposeService dockerComposeService =
DockerComposeConverter.fromCode(code, name);
- if (dockerComposeService != null) {
-
dockerService.createContainerFromCompose(dockerComposeService,
ContainerStatus.ContainerType.devmode);
-
dockerService.runContainer(dockerComposeService.getContainer_name());
- }
- } else if (Objects.equals(type,
ContainerStatus.ContainerType.project.name())) {
- DockerComposeService dockerComposeService =
projectService.getProjectDockerComposeService(name);
- if (dockerComposeService != null) {
-
dockerService.createContainerFromCompose(dockerComposeService,
ContainerStatus.ContainerType.project);
-
dockerService.runContainer(dockerComposeService.getContainer_name());
- }
- } else if (Objects.equals(type,
ContainerStatus.ContainerType.devmode.name())) {
+ if (ConfigService.inKubernetes()) {
+ if (command.getString("command").equalsIgnoreCase("delete")) {
+ kubernetesService.deletePod(name);
+ return Response.ok().build();
+ }
+ } else {
+ // set container statuses
+ setContainerStatusTransit(name, type);
+ // exec docker commands
+ if (command.containsKey("command")) {
+ if (command.getString("command").equalsIgnoreCase("run")) {
+ if (Objects.equals(type,
ContainerStatus.ContainerType.devservice.name())) {
+ String code = projectService.getDevServiceCode();
+ DockerComposeService dockerComposeService =
DockerComposeConverter.fromCode(code, name);
+ if (dockerComposeService != null) {
+
dockerService.createContainerFromCompose(dockerComposeService,
ContainerStatus.ContainerType.devmode);
+
dockerService.runContainer(dockerComposeService.getContainer_name());
+ }
+ } else if (Objects.equals(type,
ContainerStatus.ContainerType.project.name())) {
+ DockerComposeService dockerComposeService =
projectService.getProjectDockerComposeService(name);
+ if (dockerComposeService != null) {
+
dockerService.createContainerFromCompose(dockerComposeService,
ContainerStatus.ContainerType.project);
+
dockerService.runContainer(dockerComposeService.getContainer_name());
+ }
+ } else if (Objects.equals(type,
ContainerStatus.ContainerType.devmode.name())) {
// TODO: merge with DevMode service
// dockerForKaravan.createDevmodeContainer(name, "");
// dockerService.runContainer(name);
+ }
+ return Response.ok().build();
+ } else if
(command.getString("command").equalsIgnoreCase("stop")) {
+ dockerService.stopContainer(name);
+ return Response.ok().build();
+ } else if
(command.getString("command").equalsIgnoreCase("pause")) {
+ dockerService.pauseContainer(name);
+ return Response.ok().build();
+ } else if
(command.getString("command").equalsIgnoreCase("delete")) {
+ dockerService.deleteContainer(name);
+ return Response.ok().build();
}
- return Response.ok().build();
- } else if
(command.getString("command").equalsIgnoreCase("stop")) {
- dockerService.stopContainer(name);
- return Response.ok().build();
- } else if
(command.getString("command").equalsIgnoreCase("pause")) {
- dockerService.pauseContainer(name);
- return Response.ok().build();
- } else if
(command.getString("command").equalsIgnoreCase("delete")) {
- dockerService.deleteContainer(name);
- return Response.ok().build();
}
}
}