Commit Graph
406 Commits
Author SHA1 Message Date
Sebastian Malton 2e8f94b3eb Fix update available notification able to show twice (#2295)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-03-10 09:30:48 -05:00
Sebastian Malton b3ce845d62 Fix font-size on <code> (#2273)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-03-10 09:13:27 -05:00
pashevskiiandPavel Ashevskiy 805268a9d1 Apply custom filters after selecting source (#2241)
Signed-off-by: Pavel Ashevskiy <pavel.ashevskiy@ifellow.ru>

Co-authored-by: Pavel Ashevskiy <pavel.ashevskiy@ifellow.ru>
2021-03-10 11:47:26 +03:00
Violetta 20709d63e9 Add image sha256 in pod inspector (#2252)
Signed-off-by: vshakirova <vshakirova@mirantis.com>
2021-03-10 11:31:24 +03:00
1b0f56f417 VSCode launch configurations for debugging (#2281)
* Add configuration for debugging integration tests

Signed-off-by: Alex Culliere <alozhkin@mirantis.com>

* Add launch configuration for debugging main process

Signed-off-by: Alex Culliere <alozhkin@mirantis.com>

* Continue polishing debug configurations

Signed-off-by: Alex Culliere <alozhkin@mirantis.com>

* Remove unnecessary dependency

Signed-off-by: Alex Culliere <alozhkin@mirantis.com>

* Add debug configuration for unit tests + cleanup vscode tasks

Signed-off-by: Alex Culliere <alozhkin@mirantis.com>

* Update src/renderer/bootstrap.tsx

Add `await` keyword to debugger attachment

Co-authored-by: chh <1474479+chenhunghan@users.noreply.github.com>
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>

* Update src/renderer/bootstrap.tsx

Co-authored-by: chh <1474479+chenhunghan@users.noreply.github.com>
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>

* Use existing  variable to wait for chrome debugger attachment

Signed-off-by: Alex Culliere <alozhkin@mirantis.com>

* Update src/renderer/bootstrap.tsx

Use available helper function instead of raw promise

Co-authored-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>

* Import delay utility

Signed-off-by: Alex Culliere <alozhkin@mirantis.com>

* Move async function to async context (attaching debugger)

Signed-off-by: Alex Culliere <alozhkin@mirantis.com>

Co-authored-by: Alex Culliere <alozhkin@mirantis.com>
Co-authored-by: chh <1474479+chenhunghan@users.noreply.github.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
2021-03-09 17:57:55 +02:00
Sebastian Malton a5621b71af Add more information to a helm chart's ID (#2288)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-03-08 08:12:27 -05:00
Alex Andreev 852aa1147f Fix: preventing <App/> to render on cluster refresh (#2253)
* Removing @observer decorator from <App/>

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

* Add observer wrapper to <MainLayoutHeader/>

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

* Fix eslint claim

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

* Moving extension route renderers to components

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

* Clean up

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

* Removing external observables out from App render()

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

* Fetching hosted cluster inside Command Palette

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

* Setting route lists explicitly
To avoid using observable data within tabRoutes arrays

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

* Review fixes

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-03-04 14:12:28 +02:00
Sebastian Malton bcaef79386 Cleanup add namespace dialog (#2261)
- Remove mixing of async and promises
- Remove unnecessary instance close method
- Use condition call syntax

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-03-03 14:34:35 -05:00
Lauri NevalaandAlex Andreev 25a7403f3c Render only secret name on pod details without access to secrets (#2244)
* Render only secret name on pod details without access to secrets

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

* Preserving layout when amount of secrets passed

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

* Refactor secrets to observable map

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

Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-03-03 15:40:19 +02:00
Sebastian Malton 4931f681e4 log JSON api calls when in DEBUG mode (#2263)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-03-02 08:07:16 -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
Alex Andreev e837e6f1db Removing unused chart files (#2238)
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-03-01 11:35:00 +02:00
pashevskiiandPavel Ashevskiy 3acbdcfd60 Extract chart version ignoring numbers in chart name (#2226)
Signed-off-by: Pavel Ashevskiy <pavel.ashevskiy@ifellow.ru>

Co-authored-by: Pavel Ashevskiy <pavel.ashevskiy@ifellow.ru>
2021-02-25 18:09:07 +03: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
Jim Ehrismann 38c3734d5c the select all checkbox should not select disabled items (#2151)
* the select all checkbox should not select disabled items

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

* remove improper bullet-proofing

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

* added default for customizeTableRowProps

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
2021-02-25 09:09:39 -05:00
Lauri Nevala f18d8618cd Fix loading all namespaces for users with limited cluster access (#2217)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-02-24 16:10:47 +02:00
Violetta 0d3505cfac Add persistent volumes info to storage class submenu (#2160)
Signed-off-by: vshakirova <vshakirova@mirantis.com>
2021-02-24 11:02:39 +03: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
Lauri Nevala 103467d31b Display environment variables coming from secret in pod details (#2167)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-02-23 15:47:40 +02:00
Sebastian Malton 5258aab0d2 Fix removal of langci from repo (#2204)
- Move all strings of the form {`...`} to use just ""

- Fix RoleBindingDetails not rendering the name of the role binding

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-02-23 08:13:46 -05:00
Roman 9bb9e23d55 fix: allow scrolling in main-layout's content area (#2201)
Signed-off-by: Roman <ixrock@gmail.com>
2021-02-22 20:29:26 +02:00
Sebastian Malton b2d4311e94 fix RoleBindings Namespace and Bindings field not displaying the correct data (#2203)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-02-22 12:18:48 -05:00
Roman 25f4833117 - fix: don't reset selected "all namespaces" on page reload (#2185)
- fix: don't reload namespaces on every page visit / NamespaceSelect.render()

Signed-off-by: Roman <ixrock@gmail.com>
2021-02-22 14:44:21 +02:00
Roman 82d8181938 Fix: proper sorting resources by age column (#2182)
* - fix: proper sorting for resource age column
- use Date.now() instead of new Date().getTime() (#2141 follow-up)

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

* fix: proper bar-chart tooltip callback

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

* fix: sorting in cronjobs, more Date.now() replacements

Signed-off-by: Roman <ixrock@gmail.com>
2021-02-19 14:21:07 +02:00
Jari Kolehmainen 06c131f860 Fix duplicate cluster iframes (#2190)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-02-18 19:20:58 +02:00
Jari Kolehmainen 9f15bb9626 Wait for cluster to be ready before loading iframe (#2183)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-02-18 15:11:03 +02:00
Roman 5029196d15 Fix: events sorting with compact=true is broken (#2141)
* fix: use default sorting for <Events/> as on "timeline" (fresh on top)

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

* responding to comments

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

* convert comments to jsdoc (table.tsx)

Signed-off-by: Roman <ixrock@gmail.com>
2021-02-18 12:21:41 +02:00
Lauri Nevala 67395253be Add test for re-registering store (#2161)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-02-18 07:31:40 +02:00
Jari Kolehmainen 174bba98d7 Fix isLoadingAll within KubeObjectStore.loadItems (#2174)
* fix isLoadingAll within KubeObjectStore.loadItems

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

* fix isLoadingAll within KubeObjectStore.loadItems

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-02-17 22:28:33 +02:00
Roman b8c78cd18f fix: keep last selected row during navigation in the details panel (#2165)
Signed-off-by: Roman <ixrock@gmail.com>
2021-02-17 13:39:27 +02:00
Alex Andreev 2c196ec3ad Fix: load releases for all namespaces at once (#2139)
* Load releases for all namespaces at once

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

* Check for accessibleNamespaces length

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

* Replacing loadAll() to loadFromContextNamespaces()

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-02-16 16:53:11 +02:00
Alex Andreev d3cedb49aa Adding paddings to auto-update notification elements (#2163)
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-02-16 16:49:27 +02:00
Lauri Nevala 3f2d912816 Register existing store with new apiBase when re-registering Kube API (#2157)
* Update store key after api's apiBase change

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

* Re-register existing store when registering API

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

* Revert kube-api changes

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-02-16 14:49:51 +02:00
Sebastian Malton 8d74f1c759 Fix tailCount renderering in removeItemsDialog (#2148)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-02-15 07:25:34 +02:00
Jari Kolehmainen f4a3074926 Fix events list default sort column (#2149)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-02-13 09:33:04 +02:00
Sebastian Malton 4513a08b1f don't use list all optimization when operating in accessible namespaces mode (#2142)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-02-12 10:59:58 -05:00
Jari Kolehmainen 557d96d484 Handle suspend/resume error from watch stream read (#2136)
* handle suspend/resume error from stream read

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

* add missing types

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-02-12 16:37:41 +02:00
Jari Kolehmainen 317c4cf072 Fix accessible namespaces functionality under restrictive RBAC (#2138)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-02-12 14:25:17 +02:00
Alex Andreev d40bd0c7d0 Making error boundary layout responsive (#2124)
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-02-12 10:19:52 +03:00
Jari Kolehmainen f14f3b3287 Cleanup iframe when cluster is disconnected (#2120)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-02-11 17:36:47 +02:00
Jari Kolehmainen d7d4be7375 Improve kube watch error handling (#2112)
* improve kube watch error handling

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

* cleanup

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

* review fixes

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

* no more object.assign

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

* keep only items from non-loaded namespaces

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

* cleanup

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

* fix sleep/resume

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

* fallback retry only on error

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-02-11 17:34:14 +02:00
Roman b873ba76bd Fix: compact-mode for Workloads overview -> Events (#2113)
fix: proper event-type column + default sorting by warning events

Signed-off-by: Roman <ixrock@gmail.com>
2021-02-11 13:56:20 +02:00
Jari Kolehmainen 22176219f0 Don't show warning badge if cluster is offline (#2121)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-02-11 12:23:33 +02:00
c0ef006cb8 Fix: preventing namespace filter jumping scroll (#2104)
* fix lint

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

* fixes & refactoring

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

* fix lint, micro-refactoring

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

* more refactoring, clean up, responding to comments

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

* fix: remove extra check for cluster.allowedApi from processing buffered watch-api events

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

* refactoring, detaching NamespaceStore from KubeObjectStore

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

* fix: wait for contextReady in NamespaceStore

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

* refactoring & fixes

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

* fix lint

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

* fixes: reloading context stores on NamespaceSelect-change

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

* optimize loading all resources when "all namespaces" selected -> single request per resource (when have rights)

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

* use native k8s api watches

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

* retry watch when it makes sense

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

* workaround for browser connection limits

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>

* use always random subdomain for getResponse

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

* resubscribe stores on contextNamespace change

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

* fix

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

* modify watch event before calling callback

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

* Replace placeholder component in NamespaceSelectFilter

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

Co-authored-by: Roman <ixrock@gmail.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-02-11 10:32:57 +03:00
Jari Kolehmainen b144eb916b Remove unnecessary subscribeStores from cluster overview (#2108)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-02-10 14:27:48 +02:00
Alex Andreev 2b22ec0aa3 Fix: saving apiManager store keys with string type (#2091)
* Saving apiManager store keys with string type

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

* Replacing stores key from "kind" to "apiBase"

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-02-09 17:52:33 +02:00
Sebastian Malton a61425124f Add auto-update notifications and confirmation (#1941)
* add auto-update notifications and confirmation

* Show single update notification (#1985)

* Moving notification icons to top (#1987)

* Switch to EventEmitter (producer&consumer) model

* Add `onCorrect` and `onceCorrect` to ipc module for typechecking ipc  messages

* move type enforced ipc methods to seperate file, add unit tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-02-09 10:47:24 -05:00
Roman 741973dd29 Fix: export Dialog to extensions-api (#2105)
Signed-off-by: Roman <ixrock@gmail.com>
2021-02-09 17:33:27 +02:00
Jari KolehmainenandRoman 035dd470ef Refactor watches to use native k8s api (#2095)
* fix lint

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

* fixes & refactoring

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

* fix lint, micro-refactoring

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

* more refactoring, clean up, responding to comments

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

* fix: remove extra check for cluster.allowedApi from processing buffered watch-api events

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

* refactoring, detaching NamespaceStore from KubeObjectStore

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

* fix: wait for contextReady in NamespaceStore

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

* refactoring & fixes

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

* fix lint

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

* fixes: reloading context stores on NamespaceSelect-change

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

* optimize loading all resources when "all namespaces" selected -> single request per resource (when have rights)

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

* use native k8s api watches

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

* retry watch when it makes sense

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

* workaround for browser connection limits

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>

* use always random subdomain for getResponse

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

* resubscribe stores on contextNamespace change

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

* fix

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

* modify watch event before calling callback

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

Co-authored-by: Roman <ixrock@gmail.com>
2021-02-09 15:31:15 +02:00
Violetta b36d9ff418 Helm rollback window with more details (#2085)
Signed-off-by: vshakirova <vshakirova@mirantis.com>
2021-02-05 12:23:15 -05:00