diff --git a/extensions/.eslintrc.js b/extensions/.eslintrc.js
deleted file mode 100644
index 9d7b71763d..0000000000
--- a/extensions/.eslintrc.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * Copyright (c) OpenLens Authors. All rights reserved.
- * Licensed under MIT License. See LICENSE in root directory for more information.
- */
-
-module.exports = {
- "overrides": [
- {
- files: [
- "**/*.ts",
- "**/*.tsx",
- ],
- rules: {
- "import/no-unresolved": ["error", {
- ignore: ["@k8slens/extensions"],
- }],
- },
- },
- ],
-};
diff --git a/extensions/.gitignore b/extensions/.gitignore
deleted file mode 100644
index 193cfa4791..0000000000
--- a/extensions/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*/*.tgz
diff --git a/extensions/pod-menu/package.json b/extensions/pod-menu/package.json
deleted file mode 100644
index 3b44d3c44d..0000000000
--- a/extensions/pod-menu/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "name": "lens-pod-menu",
- "version": "6.1.0",
- "description": "Lens pod menu",
- "renderer": "dist/renderer.js",
- "lens": {
- "metadata": {},
- "styles": []
- },
- "scripts": {
- "build": "npx webpack",
- "dev": "npx webpack -- --watch",
- "test": "npx jest --passWithNoTests --env=jsdom src $@"
- },
- "files": [
- "dist/**/*"
- ],
- "dependencies": {},
- "devDependencies": {
- "@k8slens/extensions": "file:../../src/extensions/npm/extensions"
- }
-}
diff --git a/extensions/pod-menu/renderer.tsx b/extensions/pod-menu/renderer.tsx
deleted file mode 100644
index 4788da9707..0000000000
--- a/extensions/pod-menu/renderer.tsx
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Copyright (c) OpenLens Authors. All rights reserved.
- * Licensed under MIT License. See LICENSE in root directory for more information.
- */
-
-import { Renderer } from "@k8slens/extensions";
-import type { PodAttachMenuProps } from "./src/attach-menu";
-import { PodAttachMenu } from "./src/attach-menu";
-import type { PodShellMenuProps } from "./src/shell-menu";
-import { PodShellMenu } from "./src/shell-menu";
-import type { PodLogsMenuProps } from "./src/logs-menu";
-import { PodLogsMenu } from "./src/logs-menu";
-import React from "react";
-
-export default class PodMenuRendererExtension extends Renderer.LensExtension {
- kubeObjectMenuItems = [
- {
- kind: "Pod",
- apiVersions: ["v1"],
- components: {
- MenuItem: (props: PodAttachMenuProps) => ,
- },
- },
- {
- kind: "Pod",
- apiVersions: ["v1"],
- components: {
- MenuItem: (props: PodShellMenuProps) => ,
- },
- },
- {
- kind: "Pod",
- apiVersions: ["v1"],
- components: {
- MenuItem: (props: PodLogsMenuProps) => ,
- },
- },
- ];
-}
diff --git a/extensions/pod-menu/src/attach-menu.tsx b/extensions/pod-menu/src/attach-menu.tsx
deleted file mode 100644
index fd6250bd30..0000000000
--- a/extensions/pod-menu/src/attach-menu.tsx
+++ /dev/null
@@ -1,106 +0,0 @@
-/**
- * Copyright (c) OpenLens Authors. All rights reserved.
- * Licensed under MIT License. See LICENSE in root directory for more information.
- */
-
-
-
-import React from "react";
-import { Renderer, Common } from "@k8slens/extensions";
-
-type Pod = Renderer.K8sApi.Pod;
-
-const {
- Component: {
- createTerminalTab,
- terminalStore,
- MenuItem,
- Icon,
- SubMenu,
- StatusBrick,
- },
- Navigation,
-} = Renderer;
-const {
- Util,
- App,
-} = Common;
-
-export interface PodAttachMenuProps extends Renderer.Component.KubeObjectMenuProps {
-}
-
-export class PodAttachMenu extends React.Component {
- async attachToPod(container?: string) {
- const { object: pod } = this.props;
-
- const kubectlPath = App.Preferences.getKubectlPath() || "kubectl";
- const commandParts = [
- kubectlPath,
- "attach",
- "-i",
- "-t",
- "-n", pod.getNs(),
- pod.getName(),
- ];
-
- if (window.navigator.platform !== "Win32") {
- commandParts.unshift("exec");
- }
-
- if (container) {
- commandParts.push("-c", container);
- }
-
- const shell = createTerminalTab({
- title: `Pod: ${pod.getName()} (namespace: ${pod.getNs()}) [Attached]`,
- });
-
- terminalStore.sendCommand(commandParts.join(" "), {
- enter: true,
- tabId: shell.id,
- });
-
- Navigation.hideDetails();
- }
-
- render() {
- const { object, toolbar } = this.props;
- const containers = object.getRunningContainers();
-
- if (!containers.length) return null;
-
- return (
-
- );
- }
-}
diff --git a/extensions/pod-menu/src/logs-menu.tsx b/extensions/pod-menu/src/logs-menu.tsx
deleted file mode 100644
index e5c8496d3d..0000000000
--- a/extensions/pod-menu/src/logs-menu.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * Copyright (c) OpenLens Authors. All rights reserved.
- * Licensed under MIT License. See LICENSE in root directory for more information.
- */
-
-import React from "react";
-import { Renderer, Common } from "@k8slens/extensions";
-
-type Pod = Renderer.K8sApi.Pod;
-type IPodContainer = Renderer.K8sApi.IPodContainer;
-
-const {
- Component: {
- logTabStore,
- MenuItem,
- Icon,
- SubMenu,
- StatusBrick,
- },
- Navigation,
-} = Renderer;
-const {
- Util,
-} = Common;
-
-export interface PodLogsMenuProps extends Renderer.Component.KubeObjectMenuProps {
-}
-
-export class PodLogsMenu extends React.Component {
- showLogs(container: IPodContainer) {
- Navigation.hideDetails();
- const pod = this.props.object;
-
- logTabStore.createPodTab({
- selectedPod: pod,
- selectedContainer: container,
- });
- }
-
- render() {
- const { object: pod, toolbar } = this.props;
- const containers = pod.getAllContainers();
- const statuses = pod.getContainerStatuses();
-
- if (!containers.length) return null;
-
- return (
- this.showLogs(containers[0]))}>
-
- Logs
- {containers.length > 1 && (
- <>
-
-
- {
- containers.map(container => {
- const { name } = container;
- const status = statuses.find(status => status.name === name);
- const brick = status ? (
-
- ) : null;
-
- return (
- this.showLogs(container))}
- className="flex align-center"
- >
- {brick}
- {name}
-
- );
- })
- }
-
- >
- )}
-
- );
- }
-}
diff --git a/extensions/pod-menu/src/shell-menu.tsx b/extensions/pod-menu/src/shell-menu.tsx
deleted file mode 100644
index 36be7c470b..0000000000
--- a/extensions/pod-menu/src/shell-menu.tsx
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
- * Copyright (c) OpenLens Authors. All rights reserved.
- * Licensed under MIT License. See LICENSE in root directory for more information.
- */
-
-
-
-import React from "react";
-import { Renderer, Common } from "@k8slens/extensions";
-
-type Pod = Renderer.K8sApi.Pod;
-
-const {
- Component: {
- createTerminalTab,
- terminalStore,
- MenuItem,
- Icon,
- SubMenu,
- StatusBrick,
- },
- Navigation,
-} = Renderer;
-const {
- Util,
- App,
-} = Common;
-
-export interface PodShellMenuProps extends Renderer.Component.KubeObjectMenuProps {
-}
-
-export class PodShellMenu extends React.Component {
- async execShell(container?: string) {
- const { object: pod } = this.props;
-
- const kubectlPath = App.Preferences.getKubectlPath() || "kubectl";
- const commandParts = [
- kubectlPath,
- "exec",
- "-i",
- "-t",
- "-n", pod.getNs(),
- pod.getName(),
- ];
-
- if (window.navigator.platform !== "Win32") {
- commandParts.unshift("exec");
- }
-
- if (container) {
- commandParts.push("-c", container);
- }
-
- commandParts.push("--");
-
- if (pod.getSelectedNodeOs() === "windows") {
- commandParts.push("powershell");
- } else {
- commandParts.push('sh -c "clear; (bash || ash || sh)"');
- }
-
- const shell = createTerminalTab({
- title: `Pod: ${pod.getName()} (namespace: ${pod.getNs()})`,
- });
-
- terminalStore.sendCommand(commandParts.join(" "), {
- enter: true,
- tabId: shell.id,
- });
-
- Navigation.hideDetails();
- }
-
- render() {
- const { object, toolbar } = this.props;
- const containers = object.getRunningContainers();
-
- if (!containers.length) return null;
-
- return (
- this.execShell(containers[0].name))}>
-
- Shell
- {containers.length > 1 && (
- <>
-
-
- {
- containers.map(container => {
- const { name } = container;
-
- return (
- this.execShell(name))}
- className="flex align-center"
- >
-
- {name}
-
- );
- })
- }
-
- >
- )}
-
- );
- }
-}
diff --git a/extensions/pod-menu/tsconfig.json b/extensions/pod-menu/tsconfig.json
deleted file mode 100644
index 5b6c61577e..0000000000
--- a/extensions/pod-menu/tsconfig.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "compilerOptions": {
- "outDir": "dist",
- "module": "CommonJS",
- "target": "ES2017",
- "lib": ["ESNext", "DOM", "DOM.Iterable"],
- "moduleResolution": "Node",
- "sourceMap": false,
- "declaration": false,
- "strict": false,
- "noImplicitAny": true,
- "skipLibCheck": true,
- "esModuleInterop": true,
- "allowSyntheticDefaultImports": true,
- "experimentalDecorators": true,
- "useDefineForClassFields": true,
- "jsx": "react"
- },
- "include": [
- "./*.ts",
- "./*.tsx"
- ],
- "exclude": [
- "node_modules",
- "*.js"
- ]
-}
diff --git a/extensions/pod-menu/webpack.config.js b/extensions/pod-menu/webpack.config.js
deleted file mode 100644
index 8fe82e48a7..0000000000
--- a/extensions/pod-menu/webpack.config.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * Copyright (c) OpenLens Authors. All rights reserved.
- * Licensed under MIT License. See LICENSE in root directory for more information.
- */
-const path = require("path");
-
-module.exports = [
- {
- entry: "./renderer.tsx",
- context: __dirname,
- target: "electron-renderer",
- mode: "production",
- optimization: {
- minimize: false,
- },
- module: {
- rules: [
- {
- test: /\.tsx?$/,
- use: "ts-loader",
- exclude: /node_modules/,
- },
- ],
- },
- externals: [
- {
- "@k8slens/extensions": "var global.LensExtensions",
- "react": "var global.React",
- "react-dom": "var global.ReactDOM",
- "mobx": "var global.Mobx",
- "mobx-react": "var global.MobxReact",
- },
- ],
- resolve: {
- extensions: [ ".tsx", ".ts", ".js" ],
- },
- output: {
- libraryTarget: "commonjs2",
- globalObject: "this",
- filename: "renderer.js",
- path: path.resolve(__dirname, "dist"),
- },
- },
-];
diff --git a/package.json b/package.json
index 11dd80cb87..a7711d1fc1 100644
--- a/package.json
+++ b/package.json
@@ -59,9 +59,7 @@
"sentryDsn": "",
"contentSecurityPolicy": "script-src 'unsafe-eval' 'self'; frame-src http://*.localhost:*/; img-src * data:",
"welcomeRoute": "/welcome",
- "extensions": [
- "pod-menu"
- ]
+ "extensions": []
},
"engines": {
"node": ">=16 <17"
@@ -231,7 +229,6 @@
"joi": "^17.7.0",
"js-yaml": "^4.1.0",
"jsdom": "^16.7.0",
- "lens-pod-menu": "file:./extensions/pod-menu",
"lodash": "^4.17.15",
"marked": "^4.2.4",
"md5-file": "^5.0.0",
@@ -249,7 +246,6 @@
"npm": "^8.19.3",
"p-limit": "^3.1.0",
"path-to-regexp": "^6.2.0",
- "pod-menu": "file:./extensions/pod-menu",
"proper-lockfile": "^4.1.2",
"react": "^17.0.2",
"react-dom": "^17.0.2",