* 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>
* 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>
* 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>
* 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>
* Convert StatusBarRegistration to use components field
- More similar to all other *Registration types for extensions
- Simpler fix for using the components.Icon type, now accepts functions
that return component instance like all other *Registration types
- Kept old fix for backwards compatability
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* fix docs
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Initial in-app survey implementation
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Add surveyId fetching and store integration
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Add empty line
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Fix typos
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Use async version of machineId + refactoring
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Update preferences hint text
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* 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>
* allow to quick select/deselect all namespaces in `NamespaceSelect`
Signed-off-by: Roman <ixrock@gmail.com>
* fixes & refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* Allow users to specify the namespace when creating a custom role.
* Default role namespace remains the "global" namespace allowing for
cluster role creatoin.
Signed-off-by: Jameel Al-Aziz <me@jalaziz.io>
* add exclude-labels to release-drafter
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* add dl links to release-drafter template
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@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>
* Configurable columns in Deployments table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in DaemonSets table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in StatefulSets table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in ReplicaSets table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in Jobs table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in CronJobs table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in Nodes table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in ConfigMaps table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in Secrets table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in ResourceQuota table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in LimitRanges table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in HPAs table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in PodDistributionBudget table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in Services table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in Endpoints table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in Ingresses table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in NetworkPolicies table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in Storage section
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in Namespaces table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in Events table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in Apps section
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in Access Control section
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Configurable columns in CRDs tables
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding LogTabStore
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding Pod selector in logs tab
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Refresh containers on pod change
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding <LogResourceSelector /> tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding LogTabStore tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Clearn getPodsByOwnerId method
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Extracting dummy pods into mock file
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Eliminating containers and initContainers from store
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Refreshing tab pods if pod amount is changed in store
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* A bit of cleaning up, fixing tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix lint newline errors
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Return getPodsByOwner() method
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Rename log tab when pod changes
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* fix extension cluster pages re-render when they are registered as a sub-menu item
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* lint fix
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* refactor
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>