* Revert "review comments"
This reverts commit 97f2ecd88d.
* Revert "Switch to I, remove type parameter default"
This reverts commit a3073cc99b.
* Revert "Improve Table typing and remove annotations on callbacks"
This reverts commit defb0ea0dd.
* remove isClusterScoped from ItemListLayout
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Move <NamespaceSelectFilter> to KubeObjectListLayout
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* revert to simpler NamespaceSelectFilter fix
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* 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>
* 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>
* - 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>
* 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>
* 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>
* Fix jsonPath calls by removing \ characters and using $..[] notation
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Parse jsonPath properly
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Cleanup
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* More cleanup
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Improve parsing
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Finetuning
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Stringify children only if value is object or array
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Test other escaped characters do not cause issues
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Fix rendering of boolean values in CRDs
- add optional special casing for boolean values in DrawerItems and
TableRows since React (imo annoying fashion) does not render boolean
values by default.
- add a spinner on the sidebar for when the CRD menu is expeanded but
the entries have not been loaded yet.
- Add ability to double click a Badge to expand, also make it so that
Badges highligh all text on first click.
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Update CRD api to use preferred version and implement v1 differences
Signed-off-by: Trevor Nichols <trevor@nichols.id.au>
* Fix unit test failure
Signed-off-by: Trevor Nichols <trevor@nichols.id.au>
* Register alternate API base URL if preferred version changes.
Signed-off-by: Trevor Nichols <trevor@nichols.id.au>
* Adjust for validation moving to the version.schema
Signed-off-by: Trevor Nichols <trevor@nichols.id.au>