1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
Commit Graph

60 Commits

Author SHA1 Message Date
Roman
2c3b510997
Mobx-6 migration (#2718)
* 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>
2021-05-25 10:24:31 +03:00
Sebastian Malton
5ed4537979
Turn on noUnusedLocals, noImplicitReturns, importsNotUsedAsValues: error, and isolatedModules (#2777) 2021-05-19 12:11:54 -04:00
Jari Kolehmainen
2d0609ed24
Check source files for license header (#2763)
* 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>
2021-05-12 18:33:26 +03:00
Jim Ehrismann
c0dddc0f40
relax kube api data type validation (to allow metrics-server resources) (#2744)
* relax kube api data type validation (to allow metrics-server resources)

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

* removed a few now incorrect tests

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

* correct PodMetrics kind

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
2021-05-12 06:56:31 +03:00
Sebastian Malton
1f854d0a0f
Cherry-pick from 4.2.3 (#2628)
* 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>
2021-04-27 08:11:50 +03:00
Sebastian Malton
9ed395ea80
Display a pod as terminating even if it isn't running (#2575)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-04-21 08:26:42 +03:00
osddeitf
04d3cd5b14
Add support for viewing 'User-supplied values' of helm release (#1862)
Co-authored-by: Sebastian Malton <sebastian@malton.name>
2021-04-20 11:47:38 -04:00
Sebastian Malton
a2be178191
Refactor helm-release.api to use free functions instead of an object (#2264)
- Rename functions to be more descriptive

- Change all functions to be Promise based

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-04-20 10:51:45 -04:00
Sebastian Malton
5a72f7a022 Fix CRD versions not being provided (#2500) 2021-04-19 11:46:07 -04:00
Sebastian Malton
c7e1ab27fd
Improve correctness and efficiency in some of pods api helper functions (#2067)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-03-30 10:53:18 -04: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
pashevskii
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
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
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
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
Violetta
b36d9ff418
Helm rollback window with more details (#2085)
Signed-off-by: vshakirova <vshakirova@mirantis.com>
2021-02-05 12:23:15 -05:00
Lauri Nevala
da1d0d162f
Add missing envFrom.secretRef property to IPodContainer (#2044)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-02-02 14:44:07 +02:00
Roman
d8e088f352
fix: chart.digest is the same for all charts and not suited as unique id (#1964)
Signed-off-by: Roman <ixrock@gmail.com>
2021-01-19 14:15:37 +02:00
Violetta
c48816ca5c
Add support for LimitRange (#1796)
Signed-off-by: vshakirova <vshakirova@mirantis.com>
2021-01-14 11:49:39 +03:00
Jari Kolehmainen
11595abc93
Fix fill the gaps logic in normalize metrics (#1940)
* fix fill the gaps logic in normalize metrics

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

* fix

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

* fix

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-01-12 12:01:06 +02:00
Alex Andreev
131a6fb410
Getting api by kind when editing an object (#1936)
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-01-11 15:43:13 +03:00
Violetta
fd63f2f4e3
Add suspend/resume button for CronJobs (#1860)
Signed-off-by: vshakirova <vshakirova@mirantis.com>
2020-12-29 17:19:23 +02:00
Violetta
abd4223675
Add information about the startupProbe (#1538)
Signed-off-by: vshakirova <vshakirova@mirantis.com>
2020-12-13 19:08:26 +02:00
Violetta
d143b234b7
Full support for ReplicaSets (#1704)
Signed-off-by: vshakirova <vshakirova@mirantis.com>
2020-12-10 15:23:51 +03:00
Panu Horsmalahti
dcf253e7d5
Add eslint rule padding-line-between-statements (#1593)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-12-02 09:55:52 +02:00
Panu Horsmalahti
335778aeef
Enforce template strings in eslint (#1574)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-11-30 15:35:16 +02:00
Sebastian Malton
7451869c25
add no-unused and react/recommended to eslint (#1523)
* 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>
2020-11-27 08:48:38 -05:00
vshakirova
5b484ca692
Add stateful set scale slider (#1406)
Signed-off-by: vshakirova <vshakirova@mirantis.com>
2020-11-25 15:21:54 +03:00
Panu Horsmalahti
ff93760dc4
Enable object-shorthand rule (#1500)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-11-24 13:16:35 +02:00
Panu Horsmalahti
22ff706f4c
Support networking.k8s.io/v1 for Ingress (#1439)
* Support networking.k8s.io/v1 for Ingress

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Add helper method to Ingress

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>

* Fix lint errors.

Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-11-20 11:59:11 +02:00
Sebastian Malton
43976f5bd9
fix SwitchCase indent rule in eslint (#1454)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2020-11-19 15:15:49 -05:00
Panu Horsmalahti
460dfe4d2b Use @typescript-eslint/semi.
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-11-19 18:12:52 +02:00
Panu Horsmalahti
1477bb8274 Enforce semicolons in eslint
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-11-19 16:35:04 +02:00
Roman
1f88c05e82
Refactoring: removed kube versioned api (#1328)
Signed-off-by: Roman <ixrock@gmail.com>
2020-11-12 08:39:50 +02:00
Sebastian Malton
a78bbb5f6c
Fix rendering of boolean values in CRDs (#1087)
* 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>
2020-11-10 10:10:19 -05:00
Lauri Nevala
0f8e8c2237
Expose CRD api to extensions (#1297)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2020-11-10 09:02:32 +02:00
pashevskii
d074e0499f
Restart deployment (#1175)
Signed-off-by: Pavel Ashevskii <pashevskii@mirantis.com>
2020-11-05 10:23:14 +03:00
chh
484de2ec21
Add +/- buttons in scale deployment popup screen (#1191)
* Add @testing-library/jest-dom and @testing-library/react for writing test cases

* Make eslint check __mocks__/*.ts files

* Mock electron.ipcRenderer.on to prevent errors in React compoment test cases

* Mock <Trans /> from @lingui/macro as a component simplely returns children components

* Use optional chaining operator (?.) to avoid TypeError: Cannot read property 'replicas' of undefined

* Add jest-fetch-mock for mocking global.fetch, activate for all test cases in jest.setup.ts

* Add basic tests for <DeploymentScaleDialog /> to ensure it initialises/renders without errors

* Add +/- button for changing desired replicas, and its test cases

* Adjust the styles of +/- buttons container to make sure it aligns with the slider

* Refactor after rebase from master

* Use var defined in vars.scss

* Add flex align-center to slider-container and remove margin-top: -4px

* Use <Icon /> to replace <i/>

* Add flex gaps to plus-minus-container

Signed-off-by: Hung-Han (Henry) Chen <1474479+chenhunghan@users.noreply.github.com>
2020-11-03 20:30:36 +08:00
Jari Kolehmainen
4e8bdace79 Merge branch 'master' into extensions-api
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-10-27 09:24:27 +02:00
JeongHoon Byun (a.k.a Outsider)
2a3b391870
force revision type to number for sort (#1097)
Signed-off-by: Outsider <outsideris@gmail.com>
2020-10-27 09:44:09 +03:00
Jari Kolehmainen
62ae7771df
Allow extensions to define cluster features (#1125)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-10-26 08:21:22 +02:00
Jari Kolehmainen
99db7aca19
Allow extensions to register kube-object menus + details (#1108)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-10-22 21:41:20 +03:00
Jari Kolehmainen
d25e2f015b
Restructure extension apis (#1101)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-10-20 14:45:15 +03:00
steve richards
c0b8d472a0
Add LoadBalancer information to the Ingress view (#1064)
Signed-off-by: Steve Richards <srichards@mirantis.com>
2020-10-16 17:13:18 +03:00
steve richards
bf20a15819
Added Last Status information for Container (#1041)
Signed-off-by: Steve Richards <srichards@mirantis.com>
2020-10-16 17:12:13 +03:00
Alex Andreev
83b8fa9d98
Ability to show previous terminated container logs (#1074)
* Show previous terminated container logs

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

* Fix for parsing error object

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2020-10-12 15:58:18 +03:00
Alex Andreev
f4f0cba6ca
Moving Pod logs into Dock panel (#1043)
* 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>
2020-10-11 19:36:19 +03:00
Alex Andreev
459742556b
Fix CRD conditions rendering (#994)
* Using reason field if no type provided

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

* Lowecasing condition badge class

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2020-09-29 10:58:16 +03:00
Lauri Nevala
265aa41968
Fix reading CRD conditions (#967)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2020-09-25 12:59:12 +03:00