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 2023/12/27 16:37:07 UTC

(camel-karavan) branch main updated (7abba71f -> 2c5b07a7)

This is an automated email from the ASF dual-hosted git repository.

marat pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git


    from 7abba71f Fix #960
     new e8129ae6 Fix #1038
     new 61e2c76b Cleanup
     new 2c5b07a7 Cleanup

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../property/property/DslPropertyField.css         |  2 +-
 .../karavan/kubernetes/KubernetesService.java      | 46 +++++++++++++++-------
 .../apache/camel/karavan/service/CamelService.java |  3 +-
 .../org/apache/camel/karavan/shared/Constants.java |  1 +
 .../src/main/resources/application.properties      |  7 ----
 .../property/property/DslPropertyField.css         |  2 +-
 .../karavan/installer/resources/KaravanRole.java   |  1 +
 7 files changed, 37 insertions(+), 25 deletions(-)


(camel-karavan) 03/03: Cleanup

Posted by ma...@apache.org.
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 2c5b07a7677d6c813dc11071e2e1f4718f060ab5
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Wed Dec 27 11:36:48 2023 -0500

    Cleanup
---
 karavan-designer/src/designer/property/property/DslPropertyField.css    | 2 +-
 .../java/org/apache/camel/karavan/installer/resources/KaravanRole.java  | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/karavan-designer/src/designer/property/property/DslPropertyField.css b/karavan-designer/src/designer/property/property/DslPropertyField.css
index 3866f7d6..fa823ac1 100644
--- a/karavan-designer/src/designer/property/property/DslPropertyField.css
+++ b/karavan-designer/src/designer/property/property/DslPropertyField.css
@@ -19,7 +19,7 @@
     padding-right: 12px;
 }
 
-.karavan .designer-page .properties .infra-button {
+.karavan .properties .infra-button {
     width: 1em;
     height: 1em;
     vertical-align: -0.125em;
diff --git a/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/resources/KaravanRole.java b/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/resources/KaravanRole.java
index a2ca2995..bbeacbb2 100644
--- a/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/resources/KaravanRole.java
+++ b/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/resources/KaravanRole.java
@@ -30,6 +30,7 @@ public class KaravanRole {
                 .endMetadata()
                 .withRules(
                         new PolicyRuleBuilder().withApiGroups("").withResources("secrets", "configmaps").withVerbs("*").build(),
+                        new PolicyRuleBuilder().withApiGroups("").withResources("serviceaccounts").withVerbs("*").build(),
                         new PolicyRuleBuilder().withApiGroups("").withResources("persistentvolumes", "persistentvolumeclaims").withVerbs("*").build(),
                         new PolicyRuleBuilder().withApiGroups("").withResources("pods", "services", "replicationcontrollers", "pods/exec").withVerbs("*").build(),
                         new PolicyRuleBuilder().withApiGroups("").withResources("endpoints", "ingresses", "ingressclasses", "endpointslices").withVerbs("*").build(),


(camel-karavan) 01/03: Fix #1038

Posted by ma...@apache.org.
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 e8129ae6bc59b6ada46e23b3f857ed9326dc5e06
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Wed Dec 27 11:35:13 2023 -0500

    Fix #1038
---
 .../karavan/kubernetes/KubernetesService.java      | 46 +++++++++++++++-------
 .../org/apache/camel/karavan/shared/Constants.java |  1 +
 2 files changed, 33 insertions(+), 14 deletions(-)

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 a2e2c49d..ca7ca032 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
@@ -174,7 +174,8 @@ public class KubernetesService implements HealthCheck {
             if (old != null) {
                 client.resource(old).delete();
             }
-            Pod pod = getBuilderPod(containerName, env, labels);
+            boolean hasDockerConfigSecret = hasDockerConfigSecret();
+            Pod pod = getBuilderPod(containerName, env, labels, hasDockerConfigSecret);
             Pod result = client.resource(pod).create();
 
             LOGGER.info("Created pod " + result.getMetadata().getName());
@@ -220,7 +221,7 @@ public class KubernetesService implements HealthCheck {
                 .build();
     }
 
-    private Pod getBuilderPod(String name, List<String> env, Map<String, String> labels) {
+    private Pod getBuilderPod(String name, List<String> env, Map<String, String> labels, boolean hasDockerConfigSecret) {
         List<EnvVar> envVars = new ArrayList<>();
         env.stream().map(s -> s.split("=")).filter(s -> s.length > 0).forEach(parts -> {
             String varName = parts[0];
@@ -265,6 +266,12 @@ public class KubernetesService implements HealthCheck {
                 .withProtocol("TCP")
                 .build();
 
+        List<VolumeMount> volumeMounts = new ArrayList<>();
+        volumeMounts.add(new VolumeMountBuilder().withName(BUILD_CONFIG_MAP).withMountPath("/karavan/builder").withReadOnly(true).build());
+        if (hasDockerConfigSecret) {
+            volumeMounts.add(new VolumeMountBuilder().withName(BUILD_DOCKER_CONFIG_SECRET).withMountPath("/karavan/.docker").withReadOnly(true).build());
+        }
+
         Container container = new ContainerBuilder()
                 .withName(name)
                 .withImage(devmodeImage)
@@ -272,25 +279,27 @@ public class KubernetesService implements HealthCheck {
                 .withImagePullPolicy("Always")
                 .withEnv(envVars)
                 .withCommand("/bin/sh", "-c", "/karavan/builder/build.sh")
-                .withVolumeMounts(
-                        new VolumeMountBuilder().withName(BUILD_CONFIG_MAP).withMountPath("/karavan/builder").withReadOnly(true).build()
-                )
+                .withVolumeMounts(volumeMounts)
                 .build();
 
+        List<Volume> volumes = new ArrayList<>();
+        volumes.add(new VolumeBuilder().withName(BUILD_CONFIG_MAP)
+                .withConfigMap(new ConfigMapVolumeSourceBuilder().withName(BUILD_CONFIG_MAP).withItems(
+                        new KeyToPathBuilder().withKey("build.sh").withPath("build.sh").build()
+                ).withDefaultMode(511).build()).build());
+        if (hasDockerConfigSecret) {
+            volumes.add(new VolumeBuilder().withName(BUILD_DOCKER_CONFIG_SECRET)
+                    .withSecret(new SecretVolumeSourceBuilder().withSecretName(BUILD_DOCKER_CONFIG_SECRET).withItems(
+                            new KeyToPathBuilder().withKey(".dockerconfigjson").withPath("config.json").build()
+                    ).withDefaultMode(511).build()).build());
+        }
+
         PodSpec spec = new PodSpecBuilder()
                 .withTerminationGracePeriodSeconds(0L)
                 .withContainers(container)
                 .withRestartPolicy("Never")
                 .withServiceAccount(builderServiceAccount)
-                .withVolumes(
-                        new VolumeBuilder().withName(BUILD_CONFIG_MAP)
-                                .withConfigMap(new ConfigMapVolumeSourceBuilder().withName(BUILD_CONFIG_MAP).withItems(
-                                        new KeyToPathBuilder().withKey("build.sh").withPath("build.sh").build()
-                                ).withDefaultMode(511).build()).build()
-//                        new VolumeBuilder().withName("maven-settings")
-//                                .withConfigMap(new ConfigMapVolumeSourceBuilder()
-//                                        .withName("karavan").build()).build()
-                )
+                .withVolumes(volumes)
                 .build();
 
         return new PodBuilder()
@@ -299,6 +308,15 @@ public class KubernetesService implements HealthCheck {
                 .build();
     }
 
+    public boolean hasDockerConfigSecret() {
+        try (KubernetesClient client = kubernetesClient()) {
+            return client.secrets().inNamespace(namespace).withName(BUILD_DOCKER_CONFIG_SECRET).get() != null;
+        } catch (Exception ex) {
+            LOGGER.error(ex.getMessage());
+            return false;
+        }
+    }
+
     public Tuple2<LogWatch, KubernetesClient> getContainerLogWatch(String podName) {
         KubernetesClient client = kubernetesClient();
         LogWatch logWatch = client.pods().inNamespace(getNamespace()).withName(podName).tailingLines(100).watchLog();
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 ffb531ab..b67bd6b4 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
@@ -38,6 +38,7 @@ public class Constants {
     public static final String PVC_MAVEN_SETTINGS = "maven-settings";
 
     public static final String BUILD_CONFIG_MAP = "build-config-map";
+    public static final String BUILD_DOCKER_CONFIG_SECRET = "dockerconfigjson";
     public static final String BUILD_SCRIPT_FILENAME_SUFFIX = "-build.sh";
 
     public enum CamelRuntime {


(camel-karavan) 02/03: Cleanup

Posted by ma...@apache.org.
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 61e2c76bca664dd44897ea4b79a34bcb560788f3
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Wed Dec 27 11:36:31 2023 -0500

    Cleanup
---
 .../main/java/org/apache/camel/karavan/service/CamelService.java   | 3 +--
 karavan-web/karavan-app/src/main/resources/application.properties  | 7 -------
 .../main/webui/src/designer/property/property/DslPropertyField.css | 2 +-
 3 files changed, 2 insertions(+), 10 deletions(-)

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 0923251a..c8dbcded 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
@@ -157,8 +157,7 @@ public class CamelService {
 
     public String getContainerAddressForStatus(ContainerStatus containerStatus) {
         if (ConfigService.inKubernetes()) {
-            String podIP = containerStatus.getPodIP().replace(".", "-");
-            return "http://" + podIP + "." + kubernetesService.getNamespace() + ".pod.cluster.local:8080";
+            return "http://" + containerStatus.getPodIP() + ":8080";
         } else if (ConfigService.inDocker()) {
             return "http://" + containerStatus.getContainerName() + ":8080";
         } else {
diff --git a/karavan-web/karavan-app/src/main/resources/application.properties b/karavan-web/karavan-app/src/main/resources/application.properties
index e8564db5..216117b7 100644
--- a/karavan-web/karavan-app/src/main/resources/application.properties
+++ b/karavan-web/karavan-app/src/main/resources/application.properties
@@ -55,20 +55,13 @@ karavan.image-registry-username=
 karavan.image-registry-password=
 karavan.image-registry-install=false
 
-# Infinispan container config in Docker
-karavan.infinispan.image=quay.io/infinispan/server:14.0.17.Final
-karavan.infinispan.port=11222:11222
 # Infinispan connection config
 karavan.infinispan.username=admin
 karavan.infinispan.password=karavan
 karavan.infinispan.hosts=infinispan:11222
 
 quarkus.infinispan-client.devservices.enabled=false
-quarkus.infinispan-client.devservices.service-name=infinispan
-quarkus.infinispan-client.devservices.image-name=quay.io/infinispan/server:14.0.17.Final
-quarkus.infinispan-client.devservices.port=11222
 quarkus.infinispan-client.health.enabled=false
-quarkus.infinispan-client.client-intelligence=BASIC
 
 # Public Dev
 %dev.karavan.auth=public
diff --git a/karavan-web/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.css b/karavan-web/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.css
index 3866f7d6..fa823ac1 100644
--- a/karavan-web/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.css
+++ b/karavan-web/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.css
@@ -19,7 +19,7 @@
     padding-right: 12px;
 }
 
-.karavan .designer-page .properties .infra-button {
+.karavan .properties .infra-button {
     width: 1em;
     height: 1em;
     vertical-align: -0.125em;