* Setting up tailwind and css modules env
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using tailwind with scss files also
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Introducing react-table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Spread extensions to smaller components
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Add table sorting
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing inputs line-height
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fine-tuning page view
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Align table rows
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding extension notice
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fine-tuning overall styling
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding a extensions placeholder
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Updating MaterialIcons font
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Aligning not found state
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Making extension components observable
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing search input cross icon
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix drag-n-drop indication
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing extension name sorting
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix linter
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Ignoring ts files to tailwind purge
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Renaming Table -> ReactTable
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing integration tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving tailwind imports into app.scss
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving userExtensionList() out from extension-loader
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Transform extension list to array
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Expand install input placeholder a bit
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* 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>
- 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* ClusterOverview page refactorings
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Minor test fix for MainLayoutHeader
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Replacing class name in tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Remove unnecessary parenthesis
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* remove observer from app class
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* proper fix
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* add no-unused-vars and no-unused-imports
* added quotes: double, and remove ignore pattern
* move itif and describeif into utils
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* PageRegistration & PageMenuRegistration fixes & more simplification, fix#1383
Signed-off-by: Roman <ixrock@gmail.com>
* clean up test, deprecate page.routePath
Signed-off-by: Roman <ixrock@gmail.com>
* fix: proper `isActive` state matching for page-menu-target to page considering current document location
Signed-off-by: Roman <ixrock@gmail.com>
* initial telemetry extension
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* Fix preferences saving and default value
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
Co-authored-by: Lauri Nevala <lauri.nevala@gmail.com>
* Moving pod logs into Dock
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Always set up default container
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Open existent tab if fount
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving logs load and properties into store
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Setting a refresher
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding showButtons prop to InfoPanel
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Hiding sequence number in log tabs
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing PodLogsDialog
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing unused PodLogsDialog import
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Tiny cleaning
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* A bit of cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Hiding drawer when opening logs
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* fix bug: side bar scrolls after clicking on lower item
Signed-off-by: Yangjun Wang <yangjun.wang@wartsila.com>
* fix issue main area missing issue, add mobx observer to TabLayout
Signed-off-by: Yangjun Wang <yangjun.wang@wartsila.com>
Co-authored-by: Yangjun Wang <yangjun.wang@wartsila.com>
* Cluster dashboard not rendered, fix#811
Signed-off-by: Roman <ixrock@gmail.com>
* refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* actual fix
Signed-off-by: Roman <ixrock@gmail.com>
* reverted back reconnect check in cluster.activate()
Signed-off-by: Roman <ixrock@gmail.com>
* fix: cluster.activate() should not start reconnect on init (if not accessible)
Signed-off-by: Roman <ixrock@gmail.com>