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 daa53feec235304ce7e9142691f326982bfd7924 Author: Marat Gubaidullin <marat.gubaidul...@gmail.com> AuthorDate: Thu Oct 20 17:35:09 2022 -0400 kube command --- karavan-vscode/package.json | 2 +- karavan-vscode/src/extension.ts | 1 - karavan-vscode/src/jbang.ts | 34 +++++++++++++++------------ karavan-vscode/src/kubernetes.ts | 50 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+), 17 deletions(-) diff --git a/karavan-vscode/package.json b/karavan-vscode/package.json index ba2204c..9058b3b 100644 --- a/karavan-vscode/package.json +++ b/karavan-vscode/package.json @@ -194,7 +194,7 @@ "quarkus.container-image.push=true", "quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000", "quarkus.container-image.insecure=true", - "quarkus.container-image.username=sa", + "quarkus.container-image.username=${USER}", "quarkus.container-image.password=${TOKEN}", "quarkus.container-image.tag=${DATE}" ], diff --git a/karavan-vscode/src/extension.ts b/karavan-vscode/src/extension.ts index 8b54520..b879273 100644 --- a/karavan-vscode/src/extension.ts +++ b/karavan-vscode/src/extension.ts @@ -22,7 +22,6 @@ import { selectFileName, inputFileName, OpenApiView, OpenApiItem } from "./opena import * as path from "path"; import * as jbang from "./jbang"; import * as utils from "./utils"; -import * as fs from "fs"; const KARAVAN_LOADED = "karavan:loaded"; diff --git a/karavan-vscode/src/jbang.ts b/karavan-vscode/src/jbang.ts index c9e3c02..1a48f17 100644 --- a/karavan-vscode/src/jbang.ts +++ b/karavan-vscode/src/jbang.ts @@ -19,6 +19,7 @@ import * as path from "path"; import * as shell from 'shelljs'; import { CamelDefinitionYaml } from "core/api/CamelDefinitionYaml"; import * as utils from "./utils"; +import * as kubernetes from "./kubernetes"; const TERMINALS: Map<string, Terminal> = new Map<string, Terminal>(); @@ -113,22 +114,25 @@ export function createExportCommand(directory: string) { export function camelDeploy(directory: string) { const command = createExportCommand(directory).concat(" && ").concat(createPackageCommand(directory)); - - utils.readFile("/var/run/secrets/kubernetes.io/serviceaccount/namespace") - .then((readData: Uint8Array) => { - const namespace = Buffer.from(readData).toString('utf8'); - utils.readFile("/var/run/secrets/kubernetes.io/serviceaccount/token") - .then((readData: Uint8Array) => { - const token = Buffer.from(readData).toString('utf8'); - const env = { "TOKEN":token, "NAMESPACE": namespace, "DATE": Date.now().toString() }; - camelRunDeploy(command, env); + const user = kubernetes.getOcUser(); + console.log("user", user); + + + // utils.readFile("/var/run/secrets/kubernetes.io/serviceaccount/namespace") + // .then((readData: Uint8Array) => { + // const namespace = Buffer.from(readData).toString('utf8'); + // utils.readFile("/var/run/secrets/kubernetes.io/serviceaccount/token") + // .then((readData: Uint8Array) => { + // const token = Buffer.from(readData).toString('utf8'); + // const env = { "TOKEN":token, "NAMESPACE": namespace, "DATE": Date.now().toString() }; + // camelRunDeploy(command, env); - }).catch((reason: any) => { - window.showErrorMessage("Token file not found. Set TOKEN environment variable!\n" + reason.message); - }); - }).catch((reason: any) => { - window.showErrorMessage("Namespace file not found. Set NAMESPACE environment variable!\n" + reason.message); - }); + // }).catch((reason: any) => { + // window.showErrorMessage("Token file not found. Set TOKEN environment variable!\n" + reason.message); + // }); + // }).catch((reason: any) => { + // window.showErrorMessage("Namespace file not found. Set NAMESPACE environment variable!\n" + reason.message); + // }); } export function camelRunDeploy(command: string, env?: { [key: string]: string | null | undefined }) { diff --git a/karavan-vscode/src/kubernetes.ts b/karavan-vscode/src/kubernetes.ts new file mode 100644 index 0000000..6089d3d --- /dev/null +++ b/karavan-vscode/src/kubernetes.ts @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { workspace, window, Terminal, ThemeIcon } from "vscode"; +import * as path from "path"; +import * as shell from 'shelljs'; +import * as utils from "./utils"; + +export interface Result { + result: boolean + value: any + error: string +} + +export function hasOcClient(): boolean { + const oc = shell.which('oc'); + return oc !== undefined; +} + +export function getOcUser(): Result { + const oc = shell.which('oc'); + if (oc) { + shell.config.execPath = String(oc); + + shell.exec('oc whoami', {silent:true}, function(code, stdout, stderr) { + console.log('Exit code:', code); + console.log('Program output:', stdout); + console.log('Program stderr:', stderr); + }); + + const { stdout, stderr, code } = shell.exec("oc whoami", {silent:true}); + console.log(stdout, stderr, code); + return {result: code === 0, value: stdout, error: stderr}; + } else { + return {result: false, value: undefined, error: "Openshift client not found!"} + } +}