1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
Commit Graph

300 Commits

Author SHA1 Message Date
chh
4af796c532
Before hook for onRun of Catalog entities (#3911)
Co-authored-by: Sebastian Malton <sebastian@malton.name>
2021-10-05 15:36:44 -04:00
Sebastian Malton
cfd89fa7ba
Pin @k8slens/extensions dependencies instead of wildcarding them (#3930) 2021-10-01 15:46:25 -04:00
Sebastian Malton
3c77c06519
Add ability to search and activate entities via the command dialog (#3692) 2021-09-23 13:18:31 -04:00
Panu Horsmalahti
9d9f9c0072
Expose forRemoteCluster in the extension API. (#3786)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2021-09-13 16:59:41 +03:00
Panu Horsmalahti
936927af98
Add CatalogCategory filter to the extension API (#3718)
* Add CatalogCategory filter to the extension API.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Fix test.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2021-09-13 15:46:28 +03:00
Jari Kolehmainen
3262b13926
Allow KubeApi connect directly to remote k8s (#3766)
* allow KubeApi to connect directly to remote k8s

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* backward compat

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* backward compat

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-09-13 10:14:05 +03:00
Jari Kolehmainen
41fcd73c69
expose logger to extensions (#3708)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-09-01 13:15:38 +03:00
Sebastian Malton
6fdb2f0b58
Support filtering catalog entities (#3647)
* Support filtering catalog entities

- This allows extensions and OpenLens to restrict which of the entities
  the sources have provied are "visible" to the rest of Lens

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Fix lint

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* switch to filtering only for catalog view

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Fix test

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Add test to iter reduce

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

Co-authored-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2021-08-31 16:00:56 +03:00
Sebastian Malton
59933507e4
Upgrade to electron 12 and Node 14 (#3572)
Upgrade to electron 12 and Node 14

- Compute cluster ID for tests
- Switch to temporary appData path while testing

Signed-off-by: Sebastian Malton <sebastian@malton.name>

Co-authored-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-08-26 12:13:31 -04:00
chh
54ac311933
Add WelcomeBanner.width extension API (#3663)
* Allow to add WelcomeBannerRegistration.width and use that to caculate to width of Banner container

Signed-off-by: Hung-Han (Henry) Chen <chenhungh@gmail.com>

* Export at const

Signed-off-by: Hung-Han (Henry) Chen <chenhungh@gmail.com>
2021-08-24 10:05:08 +03:00
chh
d3ce43e73d
Add 'welcome banner' extension API (#3656)
* Add react-material-ui-carousel

Signed-off-by: Hung-Han (Henry) Chen <chenhungh@gmail.com>

* Add welcomeBanners extension api

Signed-off-by: Hung-Han (Henry) Chen <chenhungh@gmail.com>
2021-08-23 14:31:24 +03:00
pashevskii
e4c393244a
Replace Ace Editor with monaco (#2949)
Signed-off-by: Pavel Ashevskii <pashevskii@mirantis.com>

Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-08-12 13:00:52 +03:00
Jari Kolehmainen
21c7af1887
Expose KubeObjectStore to main extension (#3597)
* allow to pass KubeObjectStore.api via constructor

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* expose KubeObjectStore to main extension

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-08-12 11:39:27 +03:00
Jari Kolehmainen
58a446bd45
Refactor k8s api to common (#3553)
* refactor kube api to common

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* refactor more utils to common

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* refactor more utils to common

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* switch to use node-fetch on both sides

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* improve logger

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix lint errors

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix/improve tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix node-fetch require error on prod build

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* preload fix

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fixes

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* read serverAddress from apiBase

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-08-10 13:26:14 +03:00
Sebastian Malton
2b3351bf9b
Remove circular dependency with isAllowedResource function (#3545)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-08-04 16:01:47 -04:00
Sebastian Malton
fb74859f66
Split KubeObject related components into seperate folders (#3533) 2021-08-03 17:39:29 -04:00
Sebastian Malton
a6e91fc34a
Move cluster related types and function into seperate files (#3530) 2021-08-03 10:36:14 -04:00
Sebastian Malton
1b88e63343
Set default type params for KubeObjectDetail related APIs (#3528)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-29 10:55:41 -04:00
Sebastian Malton
1437f8a945
Fix auto cleanup of Extension's IPC classes (#3505) 2021-07-23 15:14:11 -04:00
Sebastian Malton
cdb7c95b8f
Fix typings for KubeObjectDetailsRegistration (#3460) 2021-07-21 10:22:32 -04:00
Sebastian Malton
fe33296ba5
Bundled extensions are always compatible in dev mode (#3459)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-21 07:19:46 +03:00
Jari Kolehmainen
ba0581d982
Skip previously bundled extensions (#3420)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-07-19 09:35:51 -04:00
Josh Soref
e87b4836be
Fix spelling (#3181)
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2021-07-16 08:53:01 -04:00
Sebastian Malton
0a8cf96415
Add kube-version and distro on detail panel (#3335) 2021-07-14 08:30:57 -04:00
Sebastian Malton
c335b0f054
Only create TerminalStore after ThemeStore (#3359)
- Use Proxy for backwards compatability

- Fix a bunch of unit tests that needed all the Singleton's created

- Add comments on the order required for the store migrations

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-13 12:36:46 -04:00
Jim Ehrismann
d0d6233869
ignore Lens's prerelease tag when checking extension compatibility (#3317) 2021-07-12 12:34:34 -04:00
Jari Kolehmainen
e60c6905da
Fix problem with in-tree extension load (#3274)
* Revert "don't set prerelease version info when non-prerelease (#3261)"

This reverts commit 3f01abbddf.

* include fix from #3256

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-07-05 23:17:35 +03:00
Panu Horsmalahti
7e8cc2122c
Fix extension enabled status after installation (#3199)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2021-06-28 16:48:02 +03:00
Sebastian Malton
dbfdd450a8
Track extension provisions and check bundled for routing (#3187)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-25 13:28:07 -04:00
Sebastian Malton
51655884c7
Fix hotbar migration of workspaces (#3178) 2021-06-25 09:55:25 -04:00
Sebastian Malton
6b464a873b
Mark typed-emitter as a dependency for @k8slens/extensions (#3138)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-21 14:14:48 -04:00
Alex Andreev
e2e3e371a8
Highlight community slack channel link (#3127)
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-06-21 15:42:14 +03:00
Jari Kolehmainen
a21ede72c8
expose MainLayout to extensions (#3125)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-06-21 15:26:17 +03:00
Alex Andreev
d9ceb8fa08
General catalog category (#3106)
* Adding General Entities and General Category

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Usign material icons for general entities

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Setting background for hotbar icon explicitly

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Adding Catalog initially to first hotbar

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Tuning hotbar store tests

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Changing type from GeneralEntity to General

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Search for catalog hotbar item in tests

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Removing Catalog link from bottom bar

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Waiting for hotbar catalog entity

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Opening cluster list by data-testId

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Replacing types on interfaces

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fixing integration tests

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Adding general entities throught initializers

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Removing icon refs from CatalogEntitySpec

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-06-21 10:59:54 +03:00
Jari Kolehmainen
48e278c71b
Rename PageLayout to SettingLayout (#3123)
* rename PageLayout to SettingLayout

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* expose to extensions

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-06-21 10:50:40 +03:00
Sebastian Malton
4ff5a722a7
lens:// routing shouldn't ignore intree extensions (#3091)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-18 10:19:13 -04:00
Sebastian Malton
c3c944cd30
Send LensMainExtension.nagivate calls to renderer before navigating (#3082)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-17 12:59:27 +03:00
Jari Kolehmainen
80f66f0569
Fix top-bar extension render errors (#3049)
* fix top-bar extension render errors

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-06-14 11:50:52 +03:00
Alex Andreev
d14a3e4a6d
Adding Topbar extension registries (#2997)
* Move topbars to cluster manager

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Adding topBar extension registries

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* topbar test clean up

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Removing unused class

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Expanding CSS Module typings

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fixing welcomeURL path

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Remove unused import

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fix TopBarRegistry references

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fixing topbar test

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Init missing registry

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-06-14 07:40:14 +03:00
Sebastian Malton
280af6391e
Switch to more specific IPC helpers (#2821) 2021-06-10 10:34:22 -04:00
Sebastian Malton
6d10f011e5 Explicitly initialize registries
- Helps moves towards turning on banning CyclicImports

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-10 09:34:13 -04:00
Sebastian Malton
c18df6bcae
Minor cleanup of ExtensionDiscovery (#2887) 2021-06-10 09:21:04 -04:00
Sebastian Malton
5ee2ab5b4a
Move all RouteParam's and URL builders to src/common (#2778)
- Prevents some circular dependencies

- Allowed main to use them as needed

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-10 08:52:09 -04:00
Sebastian Malton
a1a1c240e9
Split UserManagement into seperate Cluster and Namespace Roles and RoleBindings (#2755) 2021-06-09 13:40:55 -04:00
Jari Kolehmainen
3847a91758
Initial support for validating extension engines.lens version (#2884) 2021-06-09 09:24:58 -04:00
Sebastian Malton
d21f99e609
Await onActivate/onDeactive of extensions (#2963)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-07 08:08:39 -04:00
Jari Kolehmainen
0fb927f96b
catalog details panel (#2939)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

Co-authored-by: Sebastian Malton <sebastian@malton.name>
2021-06-07 10:09:00 +03:00
Lauri Nevala
9852e5cfd8
Implement extensions API for workloads overview details (#2945)
* Implement extensions API for workloads overview details

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>

* Prefix workloadsOverviewDetailItems

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>

* More renaming

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>

* Add missing registry

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-06-04 15:14:45 +03:00
Sebastian Malton
0d0c67f13f
Update docs to be correct with the new api changes (#2916)
* Update docs to be correct with the new api changes

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Fix renderer-extension.md

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-04 12:44:25 +03:00
Lauri Nevala
e1be10b74d
Expose NamespaceSelectFilter component to Extensions API (#2934)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-06-01 09:05:41 -04:00
Jari Kolehmainen
18e38223d4
Use in-tree extension tgz package only in production builds (#2915)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-05-31 15:36:24 +03:00
Lauri Nevala
b322d13d47
Fix BaseRegistry's items observable map (#2889)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-05-28 15:01:18 +03:00
Roman
643b0d861f
Fix: cluster commands disappeared from Command Palette (#2886)
* Cluster commands disappeared from Command Palette, close #2760

Signed-off-by: Roman <ixrock@gmail.com>

* refactoring: get rid of ClusterStore.active && ClusterStore.activeCluster (managed via catalog's entity)

Signed-off-by: Roman <ixrock@gmail.com>
2021-05-28 14:06:18 +03:00
Jari Kolehmainen
d0dbb8744c
Expose more catalog apis to renderer extensions (#2885)
* Rework extension API into parts

- Main, Common, and Renderer

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* expose more catalog apis to renderer

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* move common things to common

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

Co-authored-by: Sebastian Malton <sebastian@malton.name>
2021-05-28 13:31:06 +03:00
Sebastian Malton
df1f6e128e
Rework extension API into parts (#2879)
* `Main`, `Common`, and `Renderer`
* move registry types to Common.Types

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-05-27 14:56:33 -04:00
Sebastian Malton
81a35737fd
Fix spelling and grammar in Ipc docs (#2880)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-05-27 08:12:53 -04:00
Sebastian Malton
57c87a2e71
Change where extension IPC is exported (#2845)
- Fix documentation and guide
2021-05-26 17:10:39 -04:00
Roman
2c3b510997
Mobx-6 migration (#2718)
* mobx-6 migration -- part 1

Signed-off-by: Roman <ixrock@gmail.com>

* mobx-6 migration -- part 2 (npx mobx-undecorate --keepDecorators)

Signed-off-by: Roman <ixrock@gmail.com>

* mobx-6 migration -- part 3 (more fixes)

Signed-off-by: Roman <ixrock@gmail.com>

* unwrap possible observables from IPC-messaging

Signed-off-by: Roman <ixrock@gmail.com>

* mobx-6 migration -- remove @autobind as class-decorator

Signed-off-by: Roman <ixrock@gmail.com>

* mobx-6: replacing @autobind() as method-decorator to @boundMethod

Signed-off-by: Roman <ixrock@gmail.com>

* mobx-6: use toJS()-wrapper since monkey-patching require(mobx).toJS doesn't work

Signed-off-by: Roman <ixrock@gmail.com>

* removed `@observable static`

Signed-off-by: Roman <ixrock@gmail.com>

* use {useDefineForClassFields: true} in tsconfig.json

Signed-off-by: Roman <ixrock@gmail.com>

* remove ExtendedObservableMap

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix: removed makeObservable(this) from "terminal-tab.tsx"

Signed-off-by: Roman <ixrock@gmail.com>

* storage-helper refactoring

Signed-off-by: Roman <ixrock@gmail.com>

* normalize usages of #observable-value.toJSON() / attempt to catch the wind

Signed-off-by: Roman <ixrock@gmail.com>

* refactoring, more possible branch fixes + lint

Signed-off-by: Roman <ixrock@gmail.com>

* debugging cluster-view error -- part 1

Signed-off-by: Roman <ixrock@gmail.com>

* fix: refreshing cluster-view on ready

Signed-off-by: Roman <ixrock@gmail.com>

* fix: various app-crashes related to KubeObject.spec.* access from "undefined"
fix: config-map-details crash

Signed-off-by: Roman <ixrock@gmail.com>

* fix: namespace-store refactoring / saving selected-namespaces to external json-file

Signed-off-by: Roman <ixrock@gmail.com>

* fix: don't cache mobx.when(() => this.someObservable) cause might not work as expected due later call of makeObservable(this) in constructor

Signed-off-by: Roman <ixrock@gmail.com>

* fix: app-crash on editing k8s resource

Signed-off-by: Roman <ixrock@gmail.com>

* fix: restore "all namespaces" on page reload

Signed-off-by: Roman <ixrock@gmail.com>

* - fix: persist table-sort params and cluster-view's sidebar state to lens-local-storage
- new-feature: auto-open main-window's devtools in development-mode (yes/no/ugly?)

Signed-off-by: Roman <ixrock@gmail.com>

* fix: crd definition details -> crashing with <AceEditor mode="json"> (added missing mode-file in ace-editor.tsx)

Signed-off-by: Roman <ixrock@gmail.com>

* fix: crd definitions -> groups selector couldn't deselect last selected option

Signed-off-by: Roman <ixrock@gmail.com>

* refactoring: extensions-api exports clarification for "@k8slens/extensions"

Signed-off-by: Roman <ixrock@gmail.com>

* fix: various app-crashes related to kube-events (events page, some details page, overview, etc.)

Signed-off-by: Roman <ixrock@gmail.com>

* Reverted "use {useDefineForClassFields: true} in tsconfig.json" (various app-crash fixes)
This flag seems to be not possible to use with class-inheritance in some cases.

Example / demo:
`KubeObject` class has initial type definitions for the fields like: "metadata", "kind", etc.
and constructor() has Object.assign(this, data);
Meanwhile child class, e.g. KubeEvent inherited from KubeObject and has it's own extra type definitions for underlying resource, e.g. "involvedObject", "source", etc.

So calling super(data) doesn't work as expected for child class as it's own type definitions overwrites data from parent's constructor with `undefined` at later point.

Signed-off-by: Roman <ixrock@gmail.com>

* master-merge lint-fixes

Signed-off-by: Roman <ixrock@gmail.com>

* catalog.tsx / catalog-entities.store.ts refactoring & fixes

Signed-off-by: Roman <ixrock@gmail.com>

* fix: Catalog -> Browse all tab

Signed-off-by: Roman <ixrock@gmail.com>

* fix: CommandPalette doesn't appear from global menu by click/hotkey

Signed-off-by: Roman <ixrock@gmail.com>

* - Merging interfaces & classses to avoid overwriting fields from parent's super(data)-call with Object.assign(this, data). Otherwise use "declare" keyword at class field definition.

- Revamping {useDefineForClassFields: true} to avoid issues with non-observable class fields in some cases (from previous commit):

```
@observer
export class CommandContainer extends React.Component<CommandContainerProps> {
  // without some defined initial value "commandComponent" is non-observable for some reasons
  // when tsconfig.ts has {useDefineForClassFields:false}
  @observable.ref commandComponent: React.ReactNode = null;

  constructor(props: CommandContainerProps) {
    super(props);
    makeObservable(this);
  }
```

Signed-off-by: Roman <ixrock@gmail.com>

* update KubeObject class type definition

Signed-off-by: Roman <ixrock@gmail.com>

* clean up / responding to comments

Signed-off-by: Roman <ixrock@gmail.com>

* fix: app-crash when navigating to catalog from active cluster-view, refactoring `catalog-entity-store`

Signed-off-by: Roman <ixrock@gmail.com>

* catalog-pusher clean up, replaced .observe_() to external observe() helper from "mobx"

Signed-off-by: Roman <ixrock@gmail.com>

* fix: catalog's items stale/non-observable (after connection to the cluster status still "disconnected"), lint-fixes

Signed-off-by: Roman <ixrock@gmail.com>

* fix: Catalog is empty after closing main-window and re-opening app from Tray

Signed-off-by: Roman <ixrock@gmail.com>

* fix: HotBar's icon context menu items non-observable (no "disconnect cluster", etc.)

Signed-off-by: Roman <ixrock@gmail.com>

* lint-fix/license check

Signed-off-by: Roman <ixrock@gmail.com>

* fix: redirect to catalog when disconnecting active cluster

Signed-off-by: Roman <ixrock@gmail.com>

* fix: refresh visibility of active cluster-view on switching from hotbar/catalog

Signed-off-by: Roman <ixrock@gmail.com>

* updated package.json for built-in extensions to use "*" version for packages served from main app

Signed-off-by: Roman <ixrock@gmail.com>

* - added missing makeObservable(this) to metrics-settings.tsx
- updated package-lock.json for built-in extensions
- lint fixes

Signed-off-by: Roman <ixrock@gmail.com>

* master-merge clean up fix, updated package-lock.json for built-in extensions after `make clean-extensions && make build-extensions`

Signed-off-by: Roman <ixrock@gmail.com>

* fix unit-tests

Signed-off-by: Roman <ixrock@gmail.com>

* master-merge fixes

Signed-off-by: Roman <ixrock@gmail.com>

* make lint happy

Signed-off-by: Roman <ixrock@gmail.com>

* reverted some changes, removed auto-opening devtools in dev-mode

Signed-off-by: Roman <ixrock@gmail.com>

* merge fixes

Signed-off-by: Roman <ixrock@gmail.com>

* master-merge conflict fixes:
- proper handling and navigating into catalog's active category via URL-builder

Signed-off-by: Roman <ixrock@gmail.com>

* reverting splitted params for catalog's page route to "/catalog/:group?/:kind?"

Signed-off-by: Roman <ixrock@gmail.com>

* clean-up: remove app's injecting dependencies from `extensions/kube-object-event-status/package.json`

Signed-off-by: Roman <ixrock@gmail.com>

* master-merge fix: added missing makeObservable(this) for extensions.tsx

Signed-off-by: Roman <ixrock@gmail.com>

* fix: catalog entity context menu stale/unobservable

Signed-off-by: Roman <ixrock@gmail.com>

Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-05-25 10:24:31 +03:00
Alex Andreev
0899ace037
Restyling extensions page with tailwindcss (#2796)
* Setting up tailwind and css modules env

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Using tailwind with scss files also

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Introducing react-table

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Spread extensions to smaller components

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Add table sorting

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fixing inputs line-height

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fine-tuning page view

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Align table rows

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Adding extension notice

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fine-tuning overall styling

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Adding a extensions placeholder

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Updating MaterialIcons font

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Aligning not found state

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Making extension components observable

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fixing search input cross icon

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fix drag-n-drop indication

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fixing extension name sorting

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fix linter

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fixing tests

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Ignoring ts files to tailwind purge

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Cleaning up

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Renaming Table -> ReactTable

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fixing integration tests

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Moving tailwind imports into app.scss

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Moving userExtensionList() out from extension-loader

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Transform extension list to array

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Expand install input placeholder a bit

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-05-23 15:15:42 +03:00
Jari Kolehmainen
1664b393ee
Refactor CatalogEntityRegistry from common to main (#2824)
* refactor CatalogEntityRegistry from common to main

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* test fix

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-05-20 15:02:55 +03:00
Sebastian Malton
5ed4537979
Turn on noUnusedLocals, noImplicitReturns, importsNotUsedAsValues: error, and isolatedModules (#2777) 2021-05-19 12:11:54 -04:00
Jari Kolehmainen
f168f137e5
Bundle in-tree extensions as npm/tgz (#2807)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-05-19 09:40:09 +03:00
Jari Kolehmainen
683e5926e0
Show lens-metrics on cluster settings (#2714)
* show lens-metrics on cluster settings

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* remove ClusterFeature

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* remove ClusterFeature

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* tweak resource applier/stack

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* update metrics stack components

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix drawer menu styles

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* clarify ui

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* built-in -> bundled

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* splitterError -> splitError

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* support multi-doc yamls

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* dedicated action button

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix headers

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* async file operations

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix bugs

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-05-18 16:12:45 +03:00
Sebastian Malton
6be465858b
Add IPC capabilities for Extensions (#2775)
* Add IPC capabilities for Extensions

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* revert onA|D change:

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Switch to pushing the disposer in the methods

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* improve documentation, switch to a singleton instead of extension methods

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* fix build

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* make exported class abstract, improve guide

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* fix docs

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* fix lint

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Change guide demo to initialization in constructor

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-05-18 12:24:43 +03:00
Jari Kolehmainen
2d0609ed24
Check source files for license header (#2763)
* check source files for license header

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* tweak

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* add license header to all relevant source files

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-05-12 18:33:26 +03:00
Alex Andreev
60cdd27d19
Exporting chart components to extensions (#2759)
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-05-12 11:22:59 -04:00
Alex
619b66c5d5
Allow dynamic menu titles in 'WelcomeMenuRegistration' (#2752)
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>

Co-authored-by: Alex Culliere <alozhkin@mirantis.com>
2021-05-11 18:41:45 +03:00
Jari Kolehmainen
8fff064e0c
Fix kubeconfig-sync issues (#2692)
- Removed `getFreePort` as its use is always a race condition. Change
  all uses of it to retrive the port after listening

- Added `getPortFrom` as a helper function to read a port from a stream

- Remove `Cluster.ownerRef` as it is outdated and no longer needed for 5.0

- Remove `Cluster.enabled`, no longer needed because of above

- Removed `Cluster.init`, moved its contents into `Cluster.constructor`
  as nothing in that function is asyncronous. Currently only being run
  on `main` as a stop gap until `renderer` gets its own version of
  `Cluster`

- Refactored `LensProxy` so as to prevent `pty.node` (a NodeJS
  extension) being included in `webpack.extension.ts`'s run

- Removed the passing around of the proxy port as that can now be
  accessed from an instance of `LensProxy`

- purge ContextHandler's cache on disconnect

Co-authored-by: Sebastian Malton <sebastian@malton.name>
2021-05-04 15:21:15 -04:00
Sebastian Malton
998f7aa934
Add the ability to sync kube config files (#2567)
* Add the ability to sync kube config files

- Will update when the files changes

- add KUBECONFIG_SYNC label

- fix rebase and change to addObservableSource

- move UI to user settings

- support shallow folder watching

- add some unit tests for the diff-er

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* responding to review comments

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* fix tests and add try/catch

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* always sync c&p folder, remove bad rebase

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* fix preferences

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Fix settings saving and catalog view

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* fix unit tests

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* fix synced clusters not connectable

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* change to non-complete shallow watching

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* fix sizing

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Catch readStream errors

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* don't clear UserStore on non-existant preference field, fix unlinking not removing items from source

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* change label to file

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-04-30 16:48:20 +03:00
Sebastian Malton
ac963ede6e
Ignore failures due to files in bundled folder (#2661)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-04-28 15:29:02 -04:00
Jari Kolehmainen
b1274cbb33
Extensible welcome page (#2637)
* welcome/landing page

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix integration tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-04-27 11:24:39 +03:00
Sebastian Malton
1f854d0a0f
Cherry-pick from 4.2.3 (#2628)
* Fix: logs data disapearing causing crashes (#2566)

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Refactor helm-chart.api and improve kube validation and error handling (#2265)

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Fix: HPA's not sortable by age (#2565)

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Conditionally render status icon for kube meta (#2298)

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Fix custom resource loading spinner appears above extensions' cluster menus (#2344)

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Lens should point to the release docs (#2268)

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Refactor the Extensions settings page (#2221)

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* try and get jest to not core dump

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-04-27 08:11:50 +03:00
Sebastian Malton
339502cf4f
Switch CatalogEntity and CatalogCategory abstract classes (#2612) 2021-04-23 16:08:21 -04:00
Sebastian Malton
4d10e07087
Fix: don't assign to priority in getItemsForKind (#2611) 2021-04-23 12:26:26 -04:00
Jari Kolehmainen
fd36830865
Allow to define entity setting priority (#2596)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-04-23 15:27:42 +03:00
Sebastian Malton
b63fdfaff3
Improve documentation of Singleton functions, change to createInstance (#2585)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-04-22 10:05:29 +03:00
Jari Kolehmainen
d0712b3c32
Use productName from package.json (#2580)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-04-22 07:13:29 +03:00
Sebastian Malton
9563ead2e6
Fixing Singleton typing to correctly return child class (#1914)
- Add distinction between `getInstance` and `getInstanceOrCreate` since
  it is not always possible to create an instance (since you might not
  know the correct arguments)

- Remove all the `export const *Store = *Store.getInstance<*Store>();`
  calls as it defeats the purpose of `Singleton`. Plus with the typing
  changes the appropriate `*Store.getInstance()` is "short enough".

- Special case the two extension export facades to not need to use
  `getInstanceOrCreate`. Plus since they are just facades it is always
  possible to create them.

- Move some other types to be also `Singleton`'s: ExtensionLoader,
  ExtensionDiscovery, ThemeStore, LocalizationStore, ...

- Fixed dev-run always using the same port with electron inspect

- Update Store documentation with new recommendations about creating
  instances of singletons

- Fix all unit tests to create their dependent singletons

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-04-21 09:59:59 -04:00
Jari Kolehmainen
05a3494acb
Don't bundle extension with eula on default build (#2542) 2021-04-20 09:35:37 -04:00
Jari Kolehmainen
8dde4a1ecb
Refactor cluster settings to catalog entity settings (#2525)
* fix cluster settings page layout

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* refactor cluster settings to pluggable entity settings

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix gh actions network timeout on yarn install

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* review changes

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-04-20 07:05:44 +03:00
Jari Kolehmainen
4d8b7b0853
Move catalog to top-level module in extension api (#2527)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-04-16 12:28:11 +03:00
Alex Andreev
e5f613ead7
Exporting search input component (#2521)
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-04-15 14:02:13 +03:00
Jari Kolehmainen
4504a76e6a
Improve CatalogEntityRegistry types & add tests (#2495)
* improve CatalogEntityRegistry types & add tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-04-12 09:50:01 +03:00
Jari Kolehmainen
99a464c61d
Catalog & Hotbar - initial groundwork (#2418)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-04-09 09:11:58 +03:00
Alex
40f4631831
Export sub-title component to extensions API (#2471)
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>

Co-authored-by: Alex Culliere <alozhkin@mirantis.com>
2021-04-08 10:25:42 -04:00
Alex Andreev
84cc0cdf55
Preferences page redesign (#2446)
* Removing header part

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Restyling PageLayout

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Restyling .round-black Input

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Adding Tab navigation to Preferences

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Styling Application tab

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Add esc button

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Add media queries

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Introducting Switcher component

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Styling Proxy tab

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Moving start-up switcher to Other tab

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Styling Kubernetes tab

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Styling Extensions tab

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Styling inputs and selects

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Styling helm chart section

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Create a telemetry tab with extensions

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Adding lens Select theme

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Remove Other tab

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fix mainBackground color

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Simplifying Tabs boilerplate

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Replacing button font

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fixing one-column settings layout

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fixing integration tests

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fixin tests harder

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Showing bottom bar in workspaces

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-04-06 15:45:23 +03:00
Sebastian Malton
a4ba77c58b
Restrict extension version of ClusterStore (#2256) 2021-03-30 10:13:15 -04:00
Sebastian Malton
0561f6bfd0
Add common app routes to the protocol renderer router (#2272) 2021-03-17 13:57:49 -04:00
Jari Kolehmainen
df2d79173f
Fix extension command palette loading (#2351)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-03-17 15:13:03 +02:00
Sebastian Malton
e69d008d59
Update copyright year (#2286)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-03-05 12:26:58 -05:00
Sebastian Malton
1470103fd4
Add lens:// protocol handling with a routing mechanism (#1949)
- Add lens:// protocol handling with a routing mechanism

- document the methods in an extension guide

- remove handlers when an extension is deactivated or removed

- make sure that the found extension when routing a request is currently enabled (as a backup)

- added documentation about the above behaviour to the guide

- tweaked the naming convention so that it is clearer that the router uses extension names as not IDs (which currently are folder paths)

- Convert the extension API to use an array for registering handlers

- switch design to execute both main and renderer handlers simultaneously, without any overlap checking

- change open to be a dev dep

- improve docs, export types for extensions, skip integration tests

- switch to event emitting renderer being ready

- Add logging and fix renderer:loaded send to main

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-02-25 09:32:40 -05:00
Sebastian Malton
92dfd80889
StatusBarRegistration's component field must be optional for backwards compatability (#2211)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-02-24 09:05:14 -05:00
Sebastian Malton
0727456aa1
Convert StatusBarRegistration to use components field (#1598)
* Convert StatusBarRegistration to use components field

- More similar to all other *Registration types for extensions

- Simpler fix for using the components.Icon type, now accepts functions
  that return component instance like all other *Registration types

- Kept old fix for backwards compatability

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* fix docs

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-02-04 19:18:31 +02:00
Jari Kolehmainen
b5e7be7591
Initial command palette feature (#1957)
* wip: command palette

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* register shortcut to global menu

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* introduce openCommandDialog & closeCommandDialog

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix ipc broadcast to frames from renderer

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* tweak

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* add more commands

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* ipc fix

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* add integration tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* ipc fix

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* implement workspace edit

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* workspace edit fixes

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* make tests green

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fixes from code review

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup ipc

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup CommandRegistry

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* ipc fix

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix ClusterManager cluster auto-init

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* ensure cluster view is active before sending a command

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* switch to last active cluster when workspace change

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* tweak integration tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* run integration tests serially

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fixes based on code review

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup more

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* add workspace fixes

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-02-02 12:34:13 +02:00
Alex Andreev
a157eb03e6
Generic logs view with Pod selector (#1984)
* Adding LogTabStore

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Adding Pod selector in logs tab

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Refresh containers on pod change

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Adding <LogResourceSelector /> tests

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Adding LogTabStore tests

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Clearn getPodsByOwnerId method

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Extracting dummy pods into mock file

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Eliminating containers and initContainers from store

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Refreshing tab pods if pod amount is changed in store

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* A bit of cleaning up, fixing tests

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fix lint newline errors

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Return getPodsByOwner() method

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Rename log tab when pod changes

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-01-27 17:20:02 +03:00
Sebastian Malton
2e2283bcc9
enfore unix line endings and always ending files with line endings (#1997)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-01-21 08:09:41 -05:00
Alex Andreev
83ed44f670
Adding logs tab bottom toolbar (#1951)
* Adding bottom toolbar to logs tab

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Making bottom toolbar responsive

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Using generic search input clear button

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Fixing log test selectors

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-01-15 11:34:11 +03:00
Violetta
c48816ca5c
Add support for LimitRange (#1796)
Signed-off-by: vshakirova <vshakirova@mirantis.com>
2021-01-14 11:49:39 +03:00
Lauri Nevala
8d2d1aecd5
Expose NamespaceSelect component to extensions (#1880)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-01-05 10:52:46 +02:00
pashevskii
21e6616cc0
Export wizard components (#1784)
Signed-off-by: Pavel Ashevskii <pashevskii@mirantis.com>
2020-12-28 11:01:56 +02:00
Jari Kolehmainen
75c70a1141
Fix extension loader race conditions (#1815)
* fix extension loader race conditions

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix remove

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* ensure symlinked (dev) extensions are installed on boot

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-12-23 11:56:11 +02:00
Roman
be4e1aa15c
Navigation refactoring, handling extension page params (#1651)
* decentralizing page url-params management -- PoC / tsc 4.1 random fixes

Signed-off-by: Roman <ixrock@gmail.com>

* fixes, tweak example-extension for demo

Signed-off-by: Roman <ixrock@gmail.com>

* lint fixes, revert tests

Signed-off-by: Roman <ixrock@gmail.com>

* removed occasional changes related to typescript 4.1

Signed-off-by: Roman <ixrock@gmail.com>

* updated example with 2 menu-items targeting same page with different params

Signed-off-by: Roman <ixrock@gmail.com>

* fix: merge page url chunks with native URL()-api, simplified default page-params registration

Signed-off-by: Roman <ixrock@gmail.com>

* fix: make lint happy

Signed-off-by: Roman <ixrock@gmail.com>

* fix: unit-tests

Signed-off-by: Roman <ixrock@gmail.com>

* renaming by jim's request: UrlParam => PageParam (type), createUrlParam => createPageParam (helper)

Signed-off-by: Roman <ixrock@gmail.com>

* fix: reverting NamespaceStore public-api breaking changes

Signed-off-by: Roman <ixrock@gmail.com>

* lint fix

Signed-off-by: Roman <ixrock@gmail.com>

* fine-tuning

Signed-off-by: Roman <ixrock@gmail.com>

* yes, lint always unhappy

Signed-off-by: Roman <ixrock@gmail.com>

* fix build

Signed-off-by: Roman <ixrock@gmail.com>

* small fixes

Signed-off-by: Roman <ixrock@gmail.com>

* fix merge-conflicts

Signed-off-by: Roman <ixrock@gmail.com>

* removed `isSystem` page-param's init field exposed to extensions-api

Signed-off-by: Roman <ixrock@gmail.com>
2020-12-22 15:29:25 +02:00
Roman
d281ff4a21
Fix: missing dependent types for Select and Slider components (#1828)
* Types for Select and Slider components are not fully exported, fix #1824

Signed-off-by: Roman <ixrock@gmail.com>

* remove unused @types/material-ui package

Signed-off-by: Roman <ixrock@gmail.com>
2020-12-22 14:38:06 +02:00
Jari Kolehmainen
ed036d1f99
Install in-tree extensions before others (#1782)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-12-15 14:15:04 +02:00
Panu Horsmalahti
3300a99a78
Display error dialog if extensions couldn't be loaded (#1752)
* Display error dialog if extensions couldn't be loaded
* Reject npm install on failure using the process exit code

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-12-14 09:23:59 +02:00
Mario Sarcher
e408b0c6d9
Export the pod-details-list component so that it can be used in Extensions (#1746)
Signed-off-by: Mario Sarcher <msarcher@mirantis.com>

Co-authored-by: Mario Sarcher <msarcher@mirantis.com>
2020-12-13 19:14:02 +02:00
Panu Horsmalahti
d961d8b159
Remove symlink on extension install and manual runtime uninstall (#1718)
* Remove broken symlink on extension install

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Remove broken symlink on manual uninstall during runtime

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-12-10 12:39:37 +02:00
Panu Horsmalahti
ec0a90343e
Remove broken symlink from node_modules on uninstall (#1695)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-12-08 21:04:01 +02:00
Panu Horsmalahti
172b2a9c9f
Add check to extension file watch (#1677)
* Add check to extension file watch

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Fix tests

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Fix tests on Windows.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Add logging for Windows test debugging purposes.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Try to fix tests on Windows again.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-12-08 17:30:47 +02:00
Jari Kolehmainen
8f27559053
Tag cluster & workspace as beta features in extension api (#1589)
* mark cluster & workspace as beta

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* back to public

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-12-07 13:38:40 +02:00
Jari Kolehmainen
dbf49cc1b0
Mark conf as dev dependency in extension npm package (#1665)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-12-07 09:12:59 +02:00
Panu Horsmalahti
ea98d68e08
Visualize extension loading (#1635)
* Visualize extension loading

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-12-04 16:51:28 +02:00
Panu Horsmalahti
432b00b8cc
Refactor ExtensionsStore (#1620)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-12-03 11:43:33 +02:00
Lauri Nevala
57d6dfa4b0
Fix getExtensionPageUrl on Windows (#1609)
* Fix getExtensionPageUrl on Windows

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>

* Use path.posix.join() instead

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>

* Fix lint issues

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2020-12-02 13:09:47 +02:00
Panu Horsmalahti
7798dce61d
Enable installed extensions by default (#1572)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-12-02 11:37:23 +02:00
Panu Horsmalahti
dcf253e7d5
Add eslint rule padding-line-between-statements (#1593)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-12-02 09:55:52 +02:00
Sebastian Malton
99c3a00721
fix symlinking extensions into .k8slens/extensions folder (#1579)
* fix symlinking extensions into .k8slens/extensions folder

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2020-12-01 09:53:44 -05:00
Jari Kolehmainen
07e6df9fdc
Add extension-api facades to cluster & workspace stores (#1546)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-11-30 09:36:35 +02:00
Sebastian Malton
7451869c25
add no-unused and react/recommended to eslint (#1523)
* add no-unused-vars and no-unused-imports

* added quotes: double, and remove ignore pattern

* move itif and describeif into utils

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2020-11-27 08:48:38 -05:00
Panu Horsmalahti
263d56b3c1
Disable Uninstall and Enable/Disable buttons while uninstalling. Add Notification for uninstall. (#1539)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-11-27 10:23:12 +02:00
Jim Ehrismann
238756be72
cluster feature extension guide (#1527)
* added more sample extensions to overvew list, started clusterFeatures doc

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>

* cluster-feature extension guide

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>

* resolve merge conflict, plus address review comments, tweaks

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
2020-11-26 08:55:27 -05:00
Panu Horsmalahti
ccd38b5cbe
Add extension uninstall (#1524)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-11-26 10:45:47 +02:00
Panu Horsmalahti
4e02e086a9
Remove extension when folder is removed during runtime (#1518)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-11-26 09:40:37 +02:00
Jim Ehrismann
73724b5a54
[BREAKING]: refine and document cluster feature api (#1507)
* refine and document cluster feature api

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>

* lint fix

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
2020-11-25 16:40:25 +02:00
Sebastian Malton
c93ee4ea6d
[BREAKING]: remove deprecated routePath before GA (#1505)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2020-11-25 12:03:57 +02:00
Roman
77ae31550a
Allow to install packed extensions from URL or local file (#1456)
* Option to install an extension from filesystem/url #1227 -- part 1 (UI)

Signed-off-by: Roman <ixrock@gmail.com>

* DropFileInput: common component to handle droped files (replaced also in add-cluster-page)

Signed-off-by: Roman <ixrock@gmail.com>

* fix: install via url-string on input.submit

Signed-off-by: Roman <ixrock@gmail.com>

* ui tweaks & minor fixes

Signed-off-by: Roman <ixrock@gmail.com>

* more ui/ux tweaks & fixes

Signed-off-by: Roman <ixrock@gmail.com>

* layout fixes

Signed-off-by: Roman <ixrock@gmail.com>

* component renaming: `copy-to-click` => `copy-to-clipboard` => `clipboard`

Signed-off-by: Roman <ixrock@gmail.com>

* reworks -- part 1

Signed-off-by: Roman <ixrock@gmail.com>

* fix downloading file, added common/utils/downloadFile

Signed-off-by: Roman <ixrock@gmail.com>

* confirm before install, unpack tar first steps

Signed-off-by: Roman <ixrock@gmail.com>

* installation flow, extracting .tgz

Signed-off-by: Roman <ixrock@gmail.com>

* clean up, fix lint issues

Signed-off-by: Roman <ixrock@gmail.com>

* update .azure-pipelines.yml

Signed-off-by: Roman <ixrock@gmail.com>

* fixes & refactoring

Signed-off-by: Roman <ixrock@gmail.com>

* fix lint harder :/

Signed-off-by: Roman <ixrock@gmail.com>

* fix validation

Signed-off-by: Roman <ixrock@gmail.com>

* fix validation harder

Signed-off-by: Roman <ixrock@gmail.com>

* responding to comments, fixed package validation

Signed-off-by: Roman <ixrock@gmail.com>

* common/utils/tar.ts: reject with Error-type

Signed-off-by: Roman <ixrock@gmail.com>

* fix: unit-tests

Signed-off-by: Roman <ixrock@gmail.com>
2020-11-25 09:55:28 +02:00
Lauri Nevala
29ea0c8404
Resolve extension enabled status when loading it (#1485)
* Resolve extension enabled status when loading it

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>

* Check if extension is enabled in store unless it is bundled

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>

* Return false by default for isEnabled

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>

* Refactor isEnabled assignment

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2020-11-25 09:09:26 +02:00
Sebastian Malton
ca49fb98d9
remove @observable.shallow from Lens(M|R)Extension (#1504)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2020-11-24 12:41:57 -05:00
Sebastian Malton
4e6b8ee10e
Add designated folder for extensions (#1245)
* add store for mapping extension names to filesystem paths

- add extension mechinism for getting a folder to save files to

- add test to make sure that extensions are being loaded

- skip extension loading test

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2020-11-24 10:28:08 -05:00
Jari Kolehmainen
1be86b34f4
Add LensRendererExtension.isEnabledForCluster (#1502)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-11-24 16:15:14 +02:00
Panu Horsmalahti
ff93760dc4
Enable object-shorthand rule (#1500)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-11-24 13:16:35 +02:00
Panu Horsmalahti
c79cee0311
Watch for added/removed local extensions (#1482)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-11-24 10:48:40 +02:00
Sebastian Malton
5005d34c2e
change BaseRegistry to only have one type parameter (#1474)
* change BaseRegistry to only have one type parameter

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2020-11-23 12:54:39 -05:00
Lauri Nevala
0a5e7a048d
Report enabled extensions (#1451)
* Report enabled extensions

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>

* Add missing semicolons

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>

* Refactoring

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>

* Add missing semicolon

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2020-11-23 13:47:14 +02:00
Jari Kolehmainen
d7cba7d4d6
Allow extension cluster menus to have a parent (#1452)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-11-19 21:39:53 +02:00
Panu Horsmalahti
460dfe4d2b Use @typescript-eslint/semi.
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-11-19 18:12:52 +02:00
Panu Horsmalahti
1477bb8274 Enforce semicolons in eslint
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-11-19 16:35:04 +02:00
Sebastian Malton
0f3f5611ba
Make BaseStore abstract (#1431)
* make BaseStore abstract so that implementers are forced to decide how to store data

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2020-11-19 09:24:41 -05:00
Jari Kolehmainen
d60eee20cc
fix extensionLoader error on dev environments where renderer might start early (#1447)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-11-19 16:11:58 +02:00
Jari Kolehmainen
5aaacb21f9
Refactor ipc module (#1225)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-11-19 11:48:13 +02:00
Roman
13dbdac2f2
PageRegistration / PageMenuRegistration fixes & more simplification (#1386)
* PageRegistration & PageMenuRegistration fixes & more simplification, fix #1383

Signed-off-by: Roman <ixrock@gmail.com>

* clean up test, deprecate page.routePath

Signed-off-by: Roman <ixrock@gmail.com>

* fix: proper `isActive` state matching for page-menu-target to page considering current document location

Signed-off-by: Roman <ixrock@gmail.com>
2020-11-16 15:18:53 +02:00
Jari Kolehmainen
596e60a6f3
Generate extension-api .d.ts and .js files using tsc (#1387)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-11-16 15:09:16 +02:00
Alex Andreev
d559d5e62a
Exporting active theme to extensions (#1371)
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2020-11-16 12:10:35 +02:00
Jari Kolehmainen
55b6edfc2a
Fix PageRegistry.getByPageMenuTarget issue when package name has special chars (#1380)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-11-14 10:16:40 +02:00
Jari Kolehmainen
0fb859a22a
Default PageRegistration.routePath to path based on id (#1374)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-11-13 19:37:03 +02:00
Jari Kolehmainen
df0f080380
Simplify pages/menus/registry extension api internal implementation (#1364)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Co-authored-by: Roman <ixrock@gmail.com>
2020-11-13 17:04:39 +02:00
Roman
faa1cef307
PageRegistration & BaseRegistry refactoring (#1334)
Signed-off-by: Roman <ixrock@gmail.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-11-12 16:29:02 +02:00
Jari Kolehmainen
4222359bd6
Add LensRendererExtension.navigate (#1345)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-11-12 10:30:57 +02:00
Jari Kolehmainen
deb4773b44
Allow to specify KubeObjectDetailRegistration priority (#1335)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-11-12 09:16:22 +02:00
Roman
1f88c05e82
Refactoring: removed kube versioned api (#1328)
Signed-off-by: Roman <ixrock@gmail.com>
2020-11-12 08:39:50 +02:00