- 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>
* 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>
- Transition workspace's to be labels
- Fix migrations to support multiple migrations for the same version
Signed-off-by: Sebastian Malton <sebastian@malton.name>
- 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>
* 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>
* 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>
* 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>
* 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>
- 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>
* 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>
* 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>
* 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>
- 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>
- 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>
* 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>
* 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>
* 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>
* 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>
- 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>
* 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>
- 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>
* 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>
* 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>
* Add more log entries on start up
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* And log entry about shell sync
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Refactoring
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Add new line
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Apply suggestions from code review
Co-authored-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
* Detach NamespaceStore from KubeWatchApi, proper KubeObjectStore.loadAll (rebase of #2033)
Signed-off-by: Roman <ixrock@gmail.com>
* Watch-api requests optimization (#2066)
* subscribe for watching resources in single request when has admin-like access rights
Signed-off-by: Roman <ixrock@gmail.com>
* responding to comments
Signed-off-by: Roman <ixrock@gmail.com>
* fix unit-tests
Signed-off-by: Roman <ixrock@gmail.com>
* fix: reloading stores when preloading enabled and waitUntilLoaded=false
Signed-off-by: Roman <ixrock@gmail.com>
* mark Cluster.canUseWatchApi() and Cluster.refreshAccessibility() as private
Signed-off-by: Roman <ixrock@gmail.com>
* fix unit test: make public Cluster.canUseWatchApi()
Signed-off-by: Roman <ixrock@gmail.com>
* responding to comments in #2066
Signed-off-by: Roman <ixrock@gmail.com>
* 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>
* loading k8s resources into stores per selected namespaces -- part 1
Signed-off-by: Roman <ixrock@gmail.com>
* loading k8s resources into stores per selected namespaces -- part 2
- fix: generating helm chart id
Signed-off-by: Roman <ixrock@gmail.com>
* loading k8s resources into stores per selected namespaces -- part 3
Signed-off-by: Roman <ixrock@gmail.com>
* fixes
Signed-off-by: Roman <ixrock@gmail.com>
* fixes / responding to comments
Signed-off-by: Roman <ixrock@gmail.com>
* chore / small fixes
Signed-off-by: Roman <ixrock@gmail.com>
* Watch api does not work for non-admins with lots of namespaces #1898 -- part 1
Signed-off-by: Roman <ixrock@gmail.com>
* fixes & refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* make lint happy
Signed-off-by: Roman <ixrock@gmail.com>
* reset store on loading error
Signed-off-by: Roman <ixrock@gmail.com>
* added new cluster method: cluster.isAllowedResource
Signed-off-by: Roman <ixrock@gmail.com>
* fix: loading namespaces optimizations
Signed-off-by: Roman <ixrock@gmail.com>
* fixes & refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* fix: parse multiple kube-events from stream's chunk
Signed-off-by: Roman <ixrock@gmail.com>
* fix: mobx issue with accessing empty observable array by index (removes warning), use common logger
Signed-off-by: Roman <ixrock@gmail.com>
* fine-tuning
Signed-off-by: Roman <ixrock@gmail.com>
* fix: parse json stream chunks at client-side (might be partial, depends on network speed)
Signed-off-by: Roman <ixrock@gmail.com>
* store subscribing refactoring -- part 1
Signed-off-by: Roman <ixrock@gmail.com>
* store subscribing refactoring -- part 2
Signed-off-by: Roman <ixrock@gmail.com>
* store subscribing refactoring -- part 3
Signed-off-by: Roman <ixrock@gmail.com>
* store subscribing refactoring -- part 4
Signed-off-by: Roman <ixrock@gmail.com>
* auto-reconnect on online/offline status change, interval connection check
Signed-off-by: Roman <ixrock@gmail.com>
* check connection every 5m
Signed-off-by: Roman <ixrock@gmail.com>
* split concurrent watch-api requests by 10 at a time + 150ms delay before next call
Signed-off-by: Roman <ixrock@gmail.com>
* refactoring / clean up
Signed-off-by: Roman <ixrock@gmail.com>
* use `plimit` + delay for k8s watch requests
Signed-off-by: Roman <ixrock@gmail.com>
* lint fix
Signed-off-by: Roman <ixrock@gmail.com>
* added explicit `preload: true` when subscribing stores
Signed-off-by: Roman <ixrock@gmail.com>
* kubeWatchApi refactoring / fine-tuning
Signed-off-by: Roman <ixrock@gmail.com>
* clean up
Signed-off-by: Roman <ixrock@gmail.com>
* loading k8s resources into stores per selected namespaces -- part 1
Signed-off-by: Roman <ixrock@gmail.com>
* loading k8s resources into stores per selected namespaces -- part 2
- fix: generating helm chart id
Signed-off-by: Roman <ixrock@gmail.com>
* loading k8s resources into stores per selected namespaces -- part 3
Signed-off-by: Roman <ixrock@gmail.com>
* fixes
Signed-off-by: Roman <ixrock@gmail.com>
* fixes / responding to comments
Signed-off-by: Roman <ixrock@gmail.com>
* chore / small fixes
Signed-off-by: Roman <ixrock@gmail.com>
* fixes & refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* make lint happy
Signed-off-by: Roman <ixrock@gmail.com>
* reset store on loading error
Signed-off-by: Roman <ixrock@gmail.com>
* added new cluster method: cluster.isAllowedResource
Signed-off-by: Roman <ixrock@gmail.com>
* fix: loading namespaces optimizations
Signed-off-by: Roman <ixrock@gmail.com>
* fixes & refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* Prevent initializing clusters multiple times
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Do not expose intializing to cluster state
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Convert initializing to observable and ensure it is set to false after init
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* use pid+frameId
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* use correct process id
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix tencent distribution detect
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* Change method orders to avoid conflicts
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
Co-authored-by: Lauri Nevala <lauri.nevala@gmail.com>
* optimise Cluster.getAllowedResources()
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* make it faster (max 5 concurrent requests)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* 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>
* force only one app instance
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* 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>
* performance fix when cluster has lots of namespaces
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix tests
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>