mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Use user configured kubectl path in node and pod menu items (#3506)
This commit is contained in:
1 parent
6b047332c0
commit
d8538eaa75
6 files changed
+86
-18
No files matched your search
@@ -39,6 +39,7 @@ const {
|
||||
} = Renderer;
|
||||
const {
|
||||
Util,
|
||||
App,
|
||||
} = Common;
|
||||
|
||||
export interface PodAttachMenuProps extends Renderer.Component.KubeObjectMenuProps<Pod> {
|
||||
@@ -47,22 +48,34 @@ export interface PodAttachMenuProps extends Renderer.Component.KubeObjectMenuPro
|
||||
export class PodAttachMenu extends React.Component<PodAttachMenuProps> {
|
||||
async attachToPod(container?: string) {
|
||||
const { object: pod } = this.props;
|
||||
const containerParam = container ? `-c ${container}` : "";
|
||||
let command = `kubectl attach -i -t -n ${pod.getNs()} ${pod.getName()} ${containerParam}`;
|
||||
|
||||
const kubectlPath = App.Preferences.getKubectlPath() || "kubectl";
|
||||
const commandParts = [
|
||||
kubectlPath,
|
||||
"attach",
|
||||
"-i",
|
||||
"-t",
|
||||
"-n", pod.getNs(),
|
||||
pod.getName(),
|
||||
];
|
||||
|
||||
if (window.navigator.platform !== "Win32") {
|
||||
command = `exec ${command}`;
|
||||
commandParts.unshift("exec");
|
||||
}
|
||||
|
||||
if (container) {
|
||||
commandParts.push("-c", container);
|
||||
}
|
||||
|
||||
const shell = createTerminalTab({
|
||||
title: `Pod: ${pod.getName()} (namespace: ${pod.getNs()}) [Attached]`
|
||||
});
|
||||
|
||||
terminalStore.sendCommand(command, {
|
||||
terminalStore.sendCommand(commandParts.join(" "), {
|
||||
enter: true,
|
||||
tabId: shell.id
|
||||
});
|
||||
|
||||
|
||||
Navigation.hideDetails();
|
||||
}
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ const {
|
||||
} = Renderer;
|
||||
const {
|
||||
Util,
|
||||
App,
|
||||
} = Common;
|
||||
|
||||
export interface PodShellMenuProps extends Renderer.Component.KubeObjectMenuProps<Pod> {
|
||||
@@ -46,29 +47,44 @@ export interface PodShellMenuProps extends Renderer.Component.KubeObjectMenuProp
|
||||
|
||||
export class PodShellMenu extends React.Component<PodShellMenuProps> {
|
||||
async execShell(container?: string) {
|
||||
Navigation.hideDetails();
|
||||
const { object: pod } = this.props;
|
||||
const containerParam = container ? `-c ${container}` : "";
|
||||
let command = `kubectl exec -i -t -n ${pod.getNs()} ${pod.getName()} ${containerParam} "--"`;
|
||||
|
||||
const kubectlPath = App.Preferences.getKubectlPath() || "kubectl";
|
||||
const commandParts = [
|
||||
kubectlPath,
|
||||
"exec",
|
||||
"-i",
|
||||
"-t",
|
||||
"-n", pod.getNs(),
|
||||
pod.getName(),
|
||||
];
|
||||
|
||||
if (window.navigator.platform !== "Win32") {
|
||||
command = `exec ${command}`;
|
||||
commandParts.unshift("exec");
|
||||
}
|
||||
|
||||
if (container) {
|
||||
commandParts.push("-c", container);
|
||||
}
|
||||
|
||||
commandParts.push("--");
|
||||
|
||||
if (pod.getSelectedNodeOs() === "windows") {
|
||||
command = `${command} powershell`;
|
||||
commandParts.push("powershell");
|
||||
} else {
|
||||
command = `${command} sh -c "clear; (bash || ash || sh)"`;
|
||||
commandParts.push('sh -c "clear; (bash || ash || sh)"');
|
||||
}
|
||||
|
||||
const shell = createTerminalTab({
|
||||
title: `Pod: ${pod.getName()} (namespace: ${pod.getNs()})`
|
||||
});
|
||||
|
||||
terminalStore.sendCommand(command, {
|
||||
terminalStore.sendCommand(commandParts.join(" "), {
|
||||
enter: true,
|
||||
tabId: shell.id
|
||||
});
|
||||
|
||||
Navigation.hideDetails();
|
||||
}
|
||||
|
||||
render() {
|
||||
|
||||
Reference in new issue
Block a user