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 2022/10/21 15:45:05 UTC

[camel-karavan] branch main updated: Deploy improvements

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 ee2e008  Deploy improvements
ee2e008 is described below

commit ee2e0087c30079c169461fa9b923b791d51ac1aa
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Fri Oct 21 11:44:50 2022 -0400

    Deploy improvements
---
 karavan-operator/src/main/resources/demo.png | Bin 0 -> 202677 bytes
 karavan-vscode/package.json                  |  17 ++++++--------
 karavan-vscode/src/extension.ts              |   2 +-
 karavan-vscode/src/jbang.ts                  |  34 +++++++++++++++++++++------
 4 files changed, 35 insertions(+), 18 deletions(-)

diff --git a/karavan-operator/src/main/resources/demo.png b/karavan-operator/src/main/resources/demo.png
new file mode 100644
index 0000000..15b5c30
Binary files /dev/null and b/karavan-operator/src/main/resources/demo.png differ
diff --git a/karavan-vscode/package.json b/karavan-vscode/package.json
index 8417946..4e9d829 100644
--- a/karavan-vscode/package.json
+++ b/karavan-vscode/package.json
@@ -84,8 +84,8 @@
           "type": "string",
           "default": "openshift",
           "enum": [
-            "kubernetes",
             "openshift",
+            "kubernetes",
             "none"
           ],
           "description": "Deploy Target",
@@ -94,7 +94,7 @@
         },
         "camel.quarkus-version": {
           "type": "string",
-          "default": "2.13.2.Final",
+          "default": "2.13.3.Final",
           "description": "Camel-quarkus version",
           "scope": "machine",
           "order": 21
@@ -190,12 +190,10 @@
             "quarkus.container-image.group=${NAMESPACE}",
             "quarkus.container-image.name=$NAME",
             "quarkus.container-image.builder=jib",
-            "quarkus.container-image.build=true",
-            "quarkus.container-image.push=true",
-            "quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000",
+            "quarkus.container-image.registry=${IMAGE_REGISTRY}",
             "quarkus.container-image.insecure=true",
-            "quarkus.container-image.username=${USER}",
-            "quarkus.container-image.password=${TOKEN}",
+            "quarkus.container-image.username=${KUBERNETES_USER}",
+            "quarkus.container-image.password=${KUBERNETES_TOKEN}",
             "quarkus.container-image.tag=${DATE}"
           ],
           "description": "Default application.properties template for image build",
@@ -209,11 +207,10 @@
             "type": "string"
           },
           "default": [
-            "quarkus.kubernetes.deploy=true",
             "quarkus.kubernetes-client.trust-certs=true",
-            "quarkus.kubernetes-client.master-url=kubernetes.default.svc",
+            "quarkus.kubernetes-client.master-url=${KUBERNETES_SERVER}",
             "quarkus.kubernetes-client.namespace=${NAMESPACE}",
-            "quarkus.kubernetes-client.token=${TOKEN}",
+            "quarkus.kubernetes-client.token=${KUBERNETES_TOKEN}",
             "quarkus.openshift.labels.\"app.openshift.io/runtime\"=camel",
             "quarkus.openshift.deployment-kind=Deployment",
             "quarkus.openshift.add-version-to-label-selectors=false",
diff --git a/karavan-vscode/src/extension.ts b/karavan-vscode/src/extension.ts
index b879273..81c4f57 100644
--- a/karavan-vscode/src/extension.ts
+++ b/karavan-vscode/src/extension.ts
@@ -119,8 +119,8 @@ export function activate(context: ExtensionContext) {
                 {label: "camel-main", picked: "camel-main" === defaultRuntime}
             ];
             const deployOptions: QuickPickItem [] = [
-                {label: "kubernetes", picked: "kubernetes" === deployTarget},
                 {label: "openshift", picked: "openshift" === deployTarget},
+                {label: "kubernetes", picked: "kubernetes" === deployTarget},
                 {label: "none", picked: "none" === deployTarget}
             ];
             utils.hasApplicationProperties(rootPath).then(hasAP => {
diff --git a/karavan-vscode/src/jbang.ts b/karavan-vscode/src/jbang.ts
index 73e0d70..1a76949 100644
--- a/karavan-vscode/src/jbang.ts
+++ b/karavan-vscode/src/jbang.ts
@@ -113,16 +113,28 @@ export function createExportCommand(directory: string) {
 }
 
 export function camelDeploy(directory: string) {
-    const command = createExportCommand(directory).concat(" && ").concat(createPackageCommand(directory));
+    const command = createExportCommand(directory).concat(" && ")
+        .concat(createPackageAndPushImageCommand(directory)).concat(" && ")
+        .concat(createPackageAndDeployCommand(directory));
     Promise.all([
         exec.execCommand("oc whoami"), // get user
         exec.execCommand("oc whoami --show-token"), // get token
-        exec.execCommand("oc project -q") // get namespace 
+        exec.execCommand("oc project -q"), // get namespace 
+        exec.execCommand("oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}'"), // get image-registry 
+        exec.execCommand("oc whoami --show-server") // get server
     ]).then(val => {
         let env: any = { "DATE": Date.now().toString() };
-        if (val[0].result) env.USER = val[0].value;
-        if (val[1].result) env.TOKEN = val[1].value;
-        if (val[2].result) env.NAMESPACE = val[2].value;
+        if (val[0].result) env.KUBERNETES_USER = val[0].value.trim();
+        if (val[1].result) env.KUBERNETES_TOKEN = val[1].value.trim();
+        if (val[2].result) env.NAMESPACE = val[2].value.trim();
+        if (val[3].result) env.IMAGE_REGISTRY = val[3].value.trim() 
+            else env.IMAGE_REGISTRY = "image-registry.openshift-image-registry.svc:5000";
+        if (val[4].result) env.KUBERNETES_SERVER = val[4].value.trim() 
+            else env.KUBERNETES_SERVER = "kubernetes.default.svc";
+
+        if (val[0].result && val[1].result && !val[2].result) {
+            window.showErrorMessage("Namespace not set \n" + val[2].error);
+        }
         camelRunDeploy(command, env);
     }).catch((reason: any) => {
         window.showErrorMessage("Error: \n" + reason.message);
@@ -139,8 +151,16 @@ export function camelRunDeploy(command: string, env?: { [key: string]: string |
     terminal.sendText(command);
 }
 
-export function createPackageCommand(directory: string) {
-    return "mvn clean package -f " + directory;
+export function createPackageAndPushImageCommand(directory: string) {
+    return "mvn clean package -f " + directory
+        +  " -Dquarkus.kubernetes.deploy=false"
+        +  " -Dquarkus.container-image.build=true -Dquarkus.container-image.push=true"
+}
+
+export function createPackageAndDeployCommand(directory: string) {
+    return "mvn clean package -f " + directory
+        +  " -Dquarkus.kubernetes.deploy=true -Dquarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000"
+        +  " -Dquarkus.container-image.build=false -Dquarkus.container-image.push=false"
 }
 
 function executeJbangCommand(rootPath: string, command: string, callback: (code: number, stdout: any, stderr: any) => any) {