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

456 Commits

Author SHA1 Message Date
Sebastian Malton
d72158cc63
Fix local cluster delete flow (#3473)
* Fix local cluster delete flow

- Now checks for the cluster being the current cluster and confirms the
  action

- <ConfirmDialog> is fixed to work with several confirmations happinging
  at once

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

* Custom delete cluster dialog

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

* Saving kubeconfig file refactoring

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

* Switching current-context from dialog

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

* Cleaning up css styles

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

* Show Delete menu item only for local cluster

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

* Make all dialogs rounded

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

* Releasing kubeconfig file after lock

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

* Adding delete cluster dialog tests

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

* Cleaning up

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

* Delete cluster dialog refactoring

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

* Fixing typo

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

* Removing temp file on error

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

* Updating tests

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

* Do not switch context if select is hidden

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

* Removing spread symbols

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

* Moving cluster delete event from catalog initializer to ipc

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

* Refactor warning messages

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

* Getting spread (...) back to fix Select render

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

* Using async form without promises

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

* Do not show context switcher if no contexts left

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

* Updating the tests

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

* don't allow delete of the active cluster before setting to new active cluster (#3749)

* don't allow user to delete the active cluster before setting to new active cluster

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

* fix lint issues

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

* Show delete button if no more contexts available

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

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

Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>
Co-authored-by: Jim Ehrismann <40840436+jim-docker@users.noreply.github.com>
2021-09-08 15:06:14 +03:00
Alex Andreev
ffdf4a03cd
Use entity name as cluster name in sidebar (#3751)
* Using entity name as cluster name in sidebar

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

* Use entity name if preferences name is empty

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

* simplify

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

Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-09-08 12:44:23 +03:00
Alex Andreev
16c4656a7d
TopBar home icon (#3740)
* Adding home button

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

* Highlight catalog entity on route match

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

* Wait for general entites to load

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

* Adding WelcomePage catalog entity

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

* Highlight general entities in hotbar if their route matches

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

* Fixing tests

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

* Moving active entities sync to helper function

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

* Fix welcome page test

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-09-07 15:18:46 +03:00
chh
d6d66682f6
Make back/forward/refresh work the same as the arrow button in topbar (#3720)
Signed-off-by: Hung-Han (Henry) Chen <chenhungh@gmail.com>
2021-09-02 14:21:36 +03:00
Lauri Nevala
f58898467d
Use correct working directory (OpenLensDev) on dev mode (#3709)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-09-01 16:32:33 +03:00
Lauri Nevala
c0398effc5
Detect rancher desktop (#3711) 2021-09-01 16:32:10 +03:00
Lauri Nevala
584d45c5e0
Allow to configure default namespace used in terminal (#3706)
* Allow to configure default namespace used in terminal

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

* Fix lint issues

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-09-01 12:50:11 +03:00
Sebastian Malton
d132a4c7e7
Fix node shell secret pulling (#3668)
- On some KE errors are thrown if trying to get a secret with an empty
  name, instead of just ignoring the entry

- Clean up the node shell settings

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-09-01 12:49:00 +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
Alex Andreev
7981e79cbd
Topbar history buttons (#3696)
* HistoryStore initial draft

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

* Adding history icons

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

* Jump history using electron methods

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

* Using 1 topbar component for all views

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

* Add Catalog title to sidebar

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

* Show cluster name in sidebar

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

* Updating topbar tests

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

* Fixing Welcome tests

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

* Removing padding for external topbar items

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

* Fix cluster name prop

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

* Using material icons for history buttons

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-08-31 14:44:47 +03:00
Jari Kolehmainen
9d6bed8786
Build and release amd64 & arm64 together (macOS) (#3700)
* build and release amd64 & arm64 together

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

* fixes

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-08-31 11:00:27 +03:00
Jari Kolehmainen
56bd8cd0b1
Support MacOS arm64 build (#3682)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
2021-08-26 14:46:46 -04: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
Sebastian Malton
5f89b3e31f
Fix filtering deprecated charts (#3635) 2021-08-24 08:29:36 -04: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
Jari Kolehmainen
443186d4f5
fix apiBase initialization on main (#3595)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-08-12 10:34:45 +03:00
Jari Kolehmainen
2760178196
fix k0s distribution detector (#3589)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-08-11 09:16:41 +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
476aa74101
Inject handlers into LensProxy to remove circular-deps (#3546)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-08-04 19:18:01 -04:00
Sebastian Malton
ee158e33df
Move lookupApi into apiManager (#3540) 2021-08-04 11:36:13 -04:00
Sebastian Malton
574aea40b4
Make DetectoryRegistry a Singleton and initialize in a function (#3538) 2021-08-04 08:48:33 -04:00
Sebastian Malton
9a8616f05e
Create c&p folder before starting kube sync (#3428)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-08-04 08:02:21 -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
b9bb990690
Add new SentryTransport to winston (#3432)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-08-03 08:38:23 -04:00
Jari Kolehmainen
dc5a885855
bundle kubectl 1.21.2 (#3267)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-08-02 19:11:17 +03:00
Sebastian Malton
f35178175b
Ignore certain file globs when under dir kube sync (#3452)
- .DS_Store
- *.lock
- *.swp

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-08-02 15:02:55 +03:00
Sebastian Malton
ad86502368
Fix KubernetesClusters overriding entity names too often (#3524)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-29 12:11:45 +03:00
Jim Ehrismann
fd5881fe33
increase timeout for getPortFrom() (#3511)
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
2021-07-23 17:16:09 -04:00
Sebastian Malton
b71e71cdfc
Fix entity accessibleNamespaces (#3507)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-23 12:48:49 -04:00
Jan Jansen
c8f27e537b
Add accessibleNamespaces to KubernetesClusterModel (#3487)
Fixes #3485

Signed-off-by: Jan Jansen <jan.jansen@gdata.de>
2021-07-23 11:40:13 -04:00
Sebastian Malton
da53aa0d79
Treat default weblinks same as any other weblinks (#3385)
- Use seenWeblink and check for non-arrays

- Spread out link validation

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-22 20:28:01 -04:00
Alex Andreev
c6a4d55d86
Improving metric queries (#3424) 2021-07-22 09:57:14 -04:00
Jim Ehrismann
b5e6bc36fe
Fix kube auth proxy race condition (#3458)
* fix race condition by relying on mobx when() to indicate when the kube auth proxy is ready

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

* tweak KubeAuthProxy.run() return behaviour

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
2021-07-21 11:50:43 -04:00
Sebastian Malton
f03cc59688
Wait for a file to be stable before computing diff (#3427)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-20 09:32:37 -04:00
Sebastian Malton
600d2c8607
Log as errors the places where getPortFrom can fail (#3425)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-19 13:40:47 -04:00
Sebastian Malton
c1554d90f2
Catch Cluster create error in cluster-manager (#3401)
* Catch Cluster create error in cluster-manager

- Only warn if the file is missing. The file must have disapeared
  betweeen kubeconfig-sync detecting it and cluster-manager performing
  the addCluster call

- For all other errors log an error

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

* Fix spelling

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

* Use logger

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-19 07:34:18 +03:00
Alexandre Barone
8c5457cf89
Fix broken shell when workdir not exists (#3349)
Signed-off-by: devodev <abalexandrebarone@gmail.com>
2021-07-16 14:07:06 -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
ea4a5a4c57
getPortFrom should log the lines it retrived if it fails to get a port (#3395) 2021-07-15 14:19:33 -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
Violetta Shakirova
621f5ba0b3
Make node shell image configurable (#3249)
Signed-off-by: vshakirova <vshakirova@mirantis.com>
2021-07-12 11:21:46 -04:00
Sebastian Malton
26fb2e796e
Fix not being able to configure non-Lens prometheus settings (#3355)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-12 10:13:11 -04:00
Jari Kolehmainen
50ec37f158
Set res.statusCode before flushing headers (#3353)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-07-12 10:07:54 -04:00
chh
f86360d641
Fix Sentry integration bugs (#3325) 2021-07-12 09:42:51 -04:00
Sebastian Malton
77f8ea67bd
Cleanup sentry integration (#3315) 2021-07-08 16:57:29 -04:00
chh
05b1a2fc5d
Add Sentry to capture exceptions and console.error messages, add a checkbox in preference to enable/disable error reporting (#3252) 2021-07-08 19:22:12 +03:00
Sebastian Malton
3b31dadf19
Fix listing charts failing due to bad versions (#3308) 2021-07-08 11:35:54 -04:00
Sebastian Malton
497e47b277
Automatically sync all kubeConfigPaths (#3227) 2021-07-07 16:29:58 -04:00
Sebastian Malton
17a8044647
Add logging on proxy error (#3303)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-07 09:42:16 -04:00
Sebastian Malton
a301283adc
Fix unhandled exception in visibility handler (#3291)
- If an KubernetesCluster entity is being deleted then the
  catalogEntityRegistry.getById() will return undefined. This leads to
  an unhandled exception in the handler because we tried to read
  apiVersion. This commit changes it so that we get the apiVersion and
  kind from KubernetesCluster class itself

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-07 09:30:07 +03:00
Sebastian Malton
b03eb443c9
Await kubeconfigPathP for fish shell args (#3286)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-07 09:20:17 +03:00
Sebastian Malton
223dadc073
Allow users to disconnect from clusters that fail to connect (#3231)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-02 14:22:16 +03:00
Lauri Nevala
020acd1c40
Increase shell sync timeout (#3241)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-07-02 14:21:26 +03:00
Sebastian Malton
05311c4b1b
Correctly migrate duplicate clusters in workspaces (#3211)
- Keep track of the set of all workspaces that each duplicated entry was
  a part of

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-02 14:21:04 +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
9790b71f8c
Update distro label on clusters (#3171)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-25 10:40:26 -04:00
Sebastian Malton
51655884c7
Fix hotbar migration of workspaces (#3178) 2021-06-25 09:55:25 -04:00
Jari Kolehmainen
f8dd7b12f2
Wait for extensions when doing protocol handler routing (#3159)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-06-23 08:48:43 -04:00
Jari Kolehmainen
31b48fe245
Fix set of cluster entity icon src (#3134)
Co-authored-by: Sebastian Malton <sebastian@malton.name>
2021-06-21 11:09:21 -04:00
Sebastian Malton
20d6e50cb7
Always open main window if lens:// are routed (#3130) 2021-06-21 09:27:11 -04: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
mcpappas
008e516715
Use allocatable instead of capacity for node resources. (#2098) 2021-06-18 14:53:29 -04:00
Sebastian Malton
7f51e3addd
Make CatalogEntity labels clickable (#3075)
- Transition workspace's to be labels

- Fix migrations to support multiple migrations for the same version

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-18 08:44:28 -04:00
Jari Kolehmainen
7ba93c9c70
Implement missing weblink add/remove (#3092)
* implement weblink add/remove

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

* cleanup

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

* refactor

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

* css fix

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

* fix tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-06-18 11:23:01 +03:00
Sebastian Malton
eb45f45a7a
Add context menu entry for deleting local clusters (#2923) 2021-06-17 12:19:22 -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
3abb3bdcce
Bring back support for custom cluster icons (#3066)
* revive custom cluster icons

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

* fix borders

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-06-16 07:12:10 +03:00
Sebastian Malton
fa5a54f271
Adding tracking of mainWindow's visibility to ProtocolRouter, open main view on valid lens:// (#3026) 2021-06-14 08:55:45 -04: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
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
Jim Ehrismann
86d0a86ec9
Fix shell-env timeout (#2938) 2021-06-09 14:54:19 -04:00
Jari Kolehmainen
3847a91758
Initial support for validating extension engines.lens version (#2884) 2021-06-09 09:24:58 -04:00
Sebastian Malton
f3b38d36c6
Wait for LensApp to report that the view has loaded before showing main window (#2597)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-07 08:39:38 -04:00
Sebastian Malton
817c8e00db
Simplify add cluster view (#2716)
- Only shows editor, and will save all text to file

- Reports some validation errors, but doesn't block the add cluster
  button

- Cleanup kube helpers to facilitate clearer FS interactions

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-07 08:14:43 -04:00
Sebastian Malton
27ec650e0a
Remove try/catch around lens:// route, as that happens in route() (#2935)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-07 08:13:48 -04:00
Jari Kolehmainen
39149eedfd
Improve how kubernetes cluster status is resolved (#2909) 2021-06-03 08:43:08 -04:00
Sebastian Malton
043f411ad1
Fix getReleases returning inconsistent data types (#2924) 2021-06-01 11:53:24 -04:00
Sebastian Malton
5fd2d5501c
Add notification in renderer if lens protocol handler fails to find any routes (#2787)
- Add notifications on missing lens:// handlers, and invalid URIs

- add notifications on unknown entity IDs

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-01 08:28:38 -04:00
Sebastian Malton
36e8888ecb
Improve loading animation when switching release details (#2367)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-05-31 16:43:08 -04:00
Jari Kolehmainen
c8e2f7ca2d
Fix main->renderer catalog entity sync issue (#2902)
* fix main->renderer catalog entity sync issue

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

* refactor

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-05-31 08:09:16 +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
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
652319ac89
Refactor PrometheusProviders (#2707) 2021-05-27 09:50:18 -04:00
Patrick J. McNerthney
c9e0aa221a
Ingress and PersistentVolumeClaims metrics need to also be (#2443)
filtered and grouped by namespace, in addition to ingress.

Signed-off-by: Patrick J McNerthney <pat@mcnerthney.com>
2021-05-26 16:51:44 +03:00
Jari Kolehmainen
4daf7f6526
Timeout shell env sync (#2874)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-05-26 15:17:10 +03:00
Jari Kolehmainen
96c3d8d3f5
Shorter kubeconfig-sync file label (#2853)
* shorter kubeconfig-sync file label

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

* fix tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-05-25 20:09:04 +03:00
Sebastian Malton
45d74b8c3a
Remove getOrDefault from ExtendedObservableMap (#2836)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-05-25 09:20:26 -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
Sebastian Malton
1c422f6ed2
Fix kube sync items not visible on reopening (#2815)
Signed-off-by: Sebastian Malton <sebastian@malton.name>

Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-05-20 16:40:47 +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
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
Lauri Nevala
0537792c56
Update node shell to use Alpine 3.13 (#2792)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-05-18 12:26:29 +03:00
Lauri Nevala
e188cf45e6
Delete node shell container on exit (#2793)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-05-18 12:23:17 +03:00
Lauri Nevala
761e3a8f52
Add kubectl 1.21 to version map (#2772)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-05-14 14:39:19 -04: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
Sebastian Malton
f4ff28e51c
Switch main's route handlers to be static functions (#2712) 2021-05-12 08:08:42 -04:00
Sebastian Malton
47e5cb1732
Only show the UserManagement tab in the sidebar if the sub menus are allowed for that cluster (#2258)
- Optimize Cluster.isAllowedResource

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-05-12 08:03:23 -04:00
dependabot[bot]
cd1ed5a22b
Bump url-parse from 1.4.7 to 1.5.1 (#2739)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
2021-05-11 09:49:33 -04:00
Jari Kolehmainen
253b3768f6
Fix auto-update exiting too fast (#2721)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-05-07 09:26:26 +03:00
Jari Kolehmainen
a6e916fa90
Create cluster object also for non-local sources (#2719)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-05-06 20:45:32 +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
Jari Kolehmainen
78c77a169a
Set product name to window title (#2665)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-04-28 15:40:25 -04:00
Sebastian Malton
afa5379ba9
Flatten user preferences in user store (#2587)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-04-27 09:44:02 -04:00
Jari Kolehmainen
119d584bcb
Fix zsh zdotdir (#2640)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-04-27 15:18:03 +03: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
b20bedfbae
Initialize HelmRepoManager on demand (#2591) 2021-04-22 15:34:17 -04: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
33ca6c9c17
Reserve cluster proxy port just in time (#2554)
* reserve cluster proxy port just in time

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

* fix

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

* refactor

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-04-22 07:18:53 +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
osddeitf
04d3cd5b14
Add support for viewing 'User-supplied values' of helm release (#1862)
Co-authored-by: Sebastian Malton <sebastian@malton.name>
2021-04-20 11:47:38 -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
Sebastian Malton
05f5176419 Broadcast failure to list namespaces less frequently (#2501)
- Only of three successive (non-overlapping) list failures

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-04-19 11:46:07 -04:00
Jim Ehrismann
bbfad2f35f
Modified kubeconfig manager test to avoid intermittent ENXIO error (#2516)
* modified kubeconfig manager test to avoid intermittent ENXIO error

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

* fix lint

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
2021-04-13 06:57:56 +03:00
Sebastian Malton
743597e2f5
Cleanup shell sessions (#2469)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-04-12 09:51:25 +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
Sebastian Malton
8c5f0ddfe3
Fix node shell failure to open (#2467) (#2468)
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>

Co-authored-by: Jim Ehrismann <40840436+jim-docker@users.noreply.github.com>
2021-04-08 07:34:25 +03:00
Patrick J. McNerthney
48ea877cd5
Use a POST with a form body when querying Prometheus. (#2401)
Fixes: https://github.com/lensapp/lens/issues/1352
Signed-off-by: Patrick J McNerthney <pat@mcnerthney.com>
2021-04-01 10:27:46 -04:00
Violetta
584e191326
Fix lens node shell (#2001)
Signed-off-by: vshakirova <vshakirova@mirantis.com>
2021-04-01 10:27:37 -04:00
Sebastian Malton
eec0644667
Notify user if Helm list fails (#2262)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-03-30 10:14:34 -04:00
Sebastian Malton
0e307e65b6
Improve tray initialization and logging (#2048)
- Remove all async click handlers as the typing of the expected method
  is that of `void` so it doesn't know how to handle `Promise<void>`

- Replace the above with promise chains with correctly handle any errors
  by logging them

- Fix the tray menu update logic to actually produce a new menu when the
  reaction is run

- Improve the Clusters submenu generation to involve less work and to
  utilize the built-in checkmark rendering

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-03-30 10:14:19 -04:00
Jari Kolehmainen
4856fdda2f
Fix path traversal bug in router (#2398)
* fix path traversal bug in router

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

* add tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-03-26 14:53:53 +02:00
Jari Kolehmainen
7a35253710
Proxy should listen only on loopback device (#2388)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-03-25 12:50:13 +02:00
Sebastian Malton
ee4d434d35
Add notification to user to add accessible namespaces (#2173) 2021-03-23 13:21:47 -04:00
Roman
62c3501011
Fix: incorrect subscribing event name to navigate in cluster view (#2363)
Co-authored-by: Sebastian Malton <sebastian@malton.name>
2021-03-23 11:04:31 -04:00
Lauri Nevala
4afec72ceb
Fix: Recreate proxy kubeconfig if it is deleted (#2372) 2021-03-23 08:12:01 -04:00
Sebastian Malton
7d14ba5e48
Move clearKubeconfigEnvVars to separate file (#2337)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-03-16 08:05:28 -04:00
Sebastian Malton
6c872c1aad
Fix Lens not clearing other KUBECONFIG env vars (#2297) 2021-03-15 11:28:14 -04:00
Jari Kolehmainen
817f01321d
Start hidden on autostart (#2334)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-03-15 08:03:06 -04:00
Roman
c815396622
Fix: cluster-settings page back-button navigation is broken (#2330)
Signed-off-by: Roman <ixrock@gmail.com>
2021-03-12 12:48:09 -05:00
Jim Ehrismann
51715b6a8c
properly load workspace cluster store outside of render() (#2320)
also minor bulletproofing for cluster version string

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
2021-03-11 16:01:50 -05:00
Lauri Nevala
5c6a6e14f5
Allow to define the path of the shell in app preferences (#2194)
Co-authored-by: Sebastian Malton <sebastian@malton.name>
2021-03-11 11:25:06 -05:00
Jim Ehrismann
713ec8c69d
Basic workspace overview (#2047)
* basic workspace overview

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

* css tweaks for landing page as a PageLayout

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

* address review comments

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

* more review comment addressing, added overview to workspace command palette

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

* added back the landing page startup hint

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

* refactoring as per review comments

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

* added original landing page back only for default workspace with no clusters

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

* Workspace overview layout tweaks (#2302)

* tweaks workspace overview layout

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

* cluster settings on top

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

* header logo for add cluster page

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

* tweak landing page

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

* combine left menu icons

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

* always show bottom status bar

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

* tweak

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

* integration test fixes

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

* change cluster menu

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

* first attempt to fix integration test

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

* lint

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

* get selectors right for integration test

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

Co-authored-by: Jim Ehrismann <jehrismann@mirantis.com>
Co-authored-by: Jim Ehrismann <jehrismann@miranits.com>

* address review comments, and rebased to master

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

Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Co-authored-by: Jim Ehrismann <jehrismann@miranits.com>
2021-03-11 09:56:12 +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
35e6065487
Broadcast update available only after downloading update (#2232)
* broadcast update available only after downloading update

* remove unnecessary downloads, force silent and restart modes if user chooses to install update immediately

* add app.exit() for installing (fixes bug on Windows)

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-03-04 08:38:07 -05:00
Lauri Nevala
4f74b9aabe
Ignore clusters with invalid kubeconfig (#1956)
* Ignore clusters with invalid kubeconfig

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

* Improve error message

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

* Mark cluster as dead if kubeconfig loading fails

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

* Fix tests

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

* Validate cluster object in kubeconfig when constructing cluster

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

* Add unit tests for validateKubeConfig

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

* Refactor validateKubeconfig unit tests

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

* Extract ValidationOpts type

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

* Add default value to validationOpts param

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

* Change isDead to property

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

* Fix lint issues

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

* Add missing new line

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

* Update validateKubeConfig in-code documentation

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

* Remove isDead property

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

* Display warning notification if invalid kubeconfig detected (#2233)

* Display warning notification if invalid kubeconfig detected

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-03-01 17:30:22 +02:00
Sebastian Malton
b3176a6fc4
fix protocol log line grammer (#2234)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-02-26 09:33:47 -05:00
Lauri Nevala
a2ce429f22
Pass Lens wslenvs to terminal session on Windows (#2198)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-02-26 14:56:51 +02:00
Jari Kolehmainen
090a3c2bf5
Flush response headers always when proxy gets a response (#2229)
* flush response header always when proxy gets a response

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

* force flush only when watch param exists

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-02-26 07:34:54 +02: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
Alex Andreev
6876d774a5
Fix: deprecated helm chart filtering (#2158)
* Refactor of excludeDeprecated helm service method

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

* Pick first helm chart from the list on load

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

* Removing helm filtering in UI

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

* Cleaning up

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

* Cleaning up type definitions

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

* Adding sorting charts by version

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

* Adding tests for methods that manipute chart listing

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

* Cleaning up tests a bit

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

* Adding semver coercion before comparing versions

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-02-24 10:20:06 +03:00
Sebastian Malton
5559c166d0
Fix auto update on quit with newer version (#2128)
- Fix auto update on quit with newer version

- If the user specifies that Lens should auto update on quit to a specific version, and before they quit the auto-updater finds a newer version. Then disregard the previous request to update

- reset broadcast-ed version if failed to broadcast

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-02-22 16:53:34 -05:00
Jari Kolehmainen
4ce618b4d4
Trigger quitAndInstall after update-downloaded event (#2181)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-02-18 13:36:35 +02:00