mirror of https://github.com/rancher/dashboard.git
15 Commits
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
718ffd6201
|
checks to see if membership editor is project and adds a project filter (#9761) | |
|
|
2c81742693
|
add "exludeFields" option on findAll, unit tests. (#9300)
* add "exludeFields" option on findAll, unit tests. * fix e2e * lint fix and e2e test * updated action unit test and fixed cy.intercepts * deleted urloptions and test, converted unit tests to ts, removed lodash * deleted unused urloptions and test * converted unit tests to ts * removed lodash * lint fix * Added comment with issue for updating query parameters for steve * Updated based on feedback * added partial flag to mutations * pulled out partial flag, excludeOptions logic now entirely within getter * fixed tests after ripping out partial flag * Fixed e2e test as 'find' action behavior changed but is still valid |
|
|
|
01eeb0548f
|
Add recommended lint rules globally (#8997)
* Update configuration * Create default config for eslint * Restore plugin:vue/recommended * Add exceptions and overrides * Correct manually remaining issues * Adding further picked exceptions groupped up * Fix or disable specific cases manually and singularly * Add naming linting exception * Remove unused variable in component * Move rules to default * Autocorrect rancher/components linting issues * Configure VSCode to use multiple files, to display linting for rancher components * Disable jest lint hook restriction for string list component * Autofix |
|
|
|
6fffc0d36a | Fix linting | |
|
|
281fb6672c |
Simplify forced filtering setting
- Given forced filtering is now not resource dependent have a high level utils function to determine if enabled - This should have opened up the door to setting a nicer default then ALL_USER, however it's actually initially applied somewhere other than ns filter - Fixed a bug where the all option [] was valid |
|
|
|
1708b4d5c3 |
Update after BE changes
- Filtering is now no longer done via `resources.project.cattle.io.` - No need to update the URL anywhere or massage resources fetched via endpoint - Also no need to make the planned change to remove `resources.project.cattle.io.` from side nav |
|
|
|
7e5ad5de34 |
Expand enforced namespace filtering to multiple namespaces and projects
> This uses a new endpoint that has yet to merge. See https://github.com/rancher/rancher/issues/40140 WIP - Contains console.warns (via custom logger, can be disabled) - Waiting for final BE endpoint changes to merge - Contains TODOs to resolve on final enpoint changes delivered Pertinent Points - Incompatible with incremental loading / manual refresh - Harder to get counts (need to sum up from different namespaces) - Requires use of new steve pagination - Enforced NS threshold has been removed - The threshold only applies to the primary resource. This has issues when loading a low count primary (daemon sets) which depends on a very high count secondary (pods) - Fixing this would involve knowing all secondary resources a list uses, which isn't currently possible (each resource is requested individually, need to know them all first) - There is no way to subscribe to multiple namespaces (one or all) - We mock this in subscribe by only persisting changes to resources from within target namespaces - Everything should work with Advanced Worker enabled |
|
|
|
ca1b810c7b
|
Moves sockets into the advanced worker (#7760)
* Moves sockets into the advanced worker
* worker can die peacefully now, making switching between cluster work.
* Make waitFor generic, wire in to waitForTestFn
* General Changes
- Fixes for switching cluster
- includes using common getPerformanceSetting
- avoid new code to unsub before socket disconnect
- handle `watch` `stop` requests
- lots of TODO's (questions, work, checks, test, etc)
- use common
* Switch socket fixes
- isAdvancedWorker should only be true for cluster store
- advancedWorker to be wired in
* Fix socket id for cluster workers
- sockets use an incremented local var for id
- when we nuke the socket file within the worker this resets, so they all ahve id of 1
- work around this by applying the unix time
* Fix handling of new partical counts response
- seen in dex cluster explorer dashboard
- count cards would be removed when partial counts response received
* Make resourceWatcher the sole location for watch state
- getters canWatch, watchStarted now are worked around (they look at state in the UI thread)
- we now don't call resource.stop or restart.start in subscription
- tidied up `forgetType`
- moved clearFromQueue from steve mutations into subscription mutations (better location)
- added and removed some TODOs
- fixed watch (stop handler should be higher up, include force watch handling)
* pushes the csrf value into worker and adds it to fetch request headers.
* refactors batchChanges to address ref concerns and be more performant
* Maintain schema reference whilst updating
- This change mutates input in a function, which is bad...
- but ensures the reference isn't broken, which is needed to maintain similar functionality as before
* Fix waitForTestFn
- Seen when creating or viewing clusters
* On unwatch ensure any pending watch requests are removed from the queue
- the probably would have been a problem if the worker wasn't nuked
- however as the codes there lets make it safe
Also added `trace` feature in advanced worker, will probably bring out to other places as well
* Fix navigation from cluster manager world to any cluster
- Ensure that we handle the case where the advanced worker was created but the resource watcher wasn't
- ... but fix case where this was happening (aka ensure that a blank cluster context is ignored)
* Tidy some TODOs
* Add perf settings page
- This will help test normal flow (when advanced worker is disabled)
- Note - setting is now in a bag. This may help us better support further settings (enable client side pagination, etc)
```
advancedWorker: { enabled: false },
```
* FIX - Nav from cluster dashboard --> specific event --> cluster dashboard and events not re-subbed
- Ensure we block default handling of resource.start (keep state in resource watcher)
* Tidying up some TODOs
* Adds in a cache and uses it to validate SCHEMA messages before batching.
* Forgot to actually save CSRF to the resourceWatcher when instantiated.
* an empty resource in a batchChange to signal remove
* Move addSchemaIndexFields to and created removeSchemaIndexFields in new file
- this avoids bringing class files into the worker
* Fix disconnect/reconnect
- Remove `syncWatch` (do the watch/unwatch straight away)
- Test/Fix re-sub on reconnect
- Test/Fix growls on disconnect
* Tidying up some TODO's
- including clean of workerQueue on resource.stop (this is SUPER defensive)
* batchChanges will now handle aliases
* Fix pods list - WIP
- ensure podsByNamespace is updated on batchChange
TODO
- the final update to the pod is ignored
- removing a namespace cleans the cache correctly
- disabling advanced worker still works
* Fix pods list - fixes
- ensure podsByNamespace is updated on batchChange
Tested / Fixed
- the final update to the pod is ignored
- removing a namespace cleans the cache correctly
- disabling advanced worker still works
* Tidying TODOs
* Remove default same-origin header
- https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials
* Fixed TODO description
* Refactor subscribe, make it clear which vuex feature relates to what
* Lots of Fixes
- batchChanges fixes
- fix index is 0 issues (!/!!index)
- only `set` if we have to
- ensure we set the correct index after pushing to list
- ensure map is updated after reducing list size with limit
- podsByNamespace fixes
- ensure when ew replace... we don't use the same referenced object
- general service resource fixes
- ensure service's pods list stays up to date with store
* Multiple improvements/fixes
- resourceCache - store the hash instead of the whole object. This means longer load time be reduces memory footprint
- resourceWatcher
- don't re-sub on socket reconnect if watcher is in error
- don't sub if watcher is in error
- don't unwatch for 'failed to find schema' and 'too old' errors
- this clears the error, we won't to keep it to ensure we don't watch
- Remove #5997 comments, follow on work #7917
* toggle debug, remap alias types, cleaned up comments and console
* Unit tests for batchChanges
Much more scope for some crazy content
* Logging tweaks
- disable logging by default
- initWorker comes in too late to affect initial trace, so just rely on the `debug` to toggle at runtime
Co-authored-by: Richard Cox <richard.cox@suse.com>
|
|
|
|
4ccb724b53
|
Fix description not working for user resources (#7885) | |
|
|
1e2b3291d9
|
Allow for partial count updates via websocket (#7647)
* account for partial count updates through ws; do not debounce * move count resource update logic to steve store |
|
|
|
75aa51fab9 |
Enforce Namespace Filter
- When there are over a configurable amount of resources to display in a list force the user to select a single namespace and use it to fetch resources related to the list - Disabled by default, this can be enabled via the usual Global Settings --> Performance setting as usual Functional Comments - Gates for forcing the filter (count, resource type is namespaced, etc) apply only to the resources shown in the list. - For example PV's aren't namespaced, so no enforced filtering. However they fetch PVC's which are namespaced - For example we could have 10 resources to show in the list, but the resource types list component fetches 10000 other resources. The secondary resources are not taken in to account - If we're under the threshold and have fetched all resources, if in that session we go over the threshold we won't fetch NS specific resources (because we have them all already) - If we're over the threshold and have fetched namespaced resources, if in that session we go under the threshold we will fetch all resources - If we're over the threshold and have fetched namespaced resources, going to a page that needs them all will result in us fetching them all (for instance from `events` to `cluster dashboard`) - Deselecting a namespace and selecting it again should not kick off another http request General Commit Comments - The threshold to enforce the filter is set at 1500 as per manual fresh and incremental loading - Optimised some code in ResourceList, resource-fetch and $loadingResources |
|
|
|
694310352b |
Garbage Collect Stale Resources
Remove resources from the store if they meet certain criteria. This will reduce the memory footprint of the dashboard and load on the backend (less watchers for large collections)
- GC is disabled by default and can be enabled via the Global Settings --> Performance tab
- User can configure
- The age in milliseconds in which a resource has to exceed in order to be gc'd
- The count which a resource has to exceed in order to be gc'd
- GC occures in stores that have it enabled
- ATM this is just the `cluster` store... but could be enabled for dashboard-store's such as the harvester one (one liner plus optional `gcIgnoreTypes` override for ignoring types)
- GC will be kicked off in two cases
- Route Change for a logged in state
- At a given interval
- Resource type _not_ GC'd if
- The store is ignoring the type
- For example the `cluster` store doesn't want to gc things like `schema` and `count`
- We're going to a page for that resource (list, detail, etc)
- For example don't GC pods if we're going to a pods page
- The last time the resource was accessed was recently
- We store the resource accessed time via hooking into actions and getters
- Setting the last accessed time will cause watchers of that type to trigger (only an issue for duplicate watchers)... but importantly not watchers of other types
- The resource is being used in the current page/context
- We store the route changed time and compare it to the resource accessed time
- There's too few resources
- We might as well keep them to avoid a network request to re-populate
// TODO:
- Should additional features be added to preferences
- if GC on route change is enabled
- if GC on interval is enabled, and how often it runs
- Sensible default preferences
- Remove some logging
|
|
|
|
dc1ccc3c6d
|
Performance: Cache pods by namespace (#6388)
* Performance: Cache pods by namespace * Fix lint issues * Address PR feedback |
|
|
|
50aed3eb9e |
New Epinio pkg, and updates to dashboard (core, pkg process) (#5637)
* Doc * v0.7.0 * v0.7.1 * v0.7.2 * Add creators * v0.1.14 * v0.1.17 * Add Yarn link * Tidy ups and typos * Allow models to be loaded from plugins * v0.1.15 * v0.1.18 * v0.6.6 * Improve readme, fix cyperss log msg * v0.1.17 * v0.1.19 * v0.6.7 * v0.6.8 * Fix logo ref when in shell * Fix lint issues * Fix error in example * Fix script to work on linux * Add ability to revert moves without losing changes * Fix bug with custom models in a plugin * Fix build of UI packages * Add dist-pkg to .eslintignore * Pull out util from extend-router to prevent router being pulled in UI packages * Update PLUGINS.md * Remove duplicate dependency * Reduce size of built UI packages * Share codemirror. Other tidy ups * Further improvements * Tidy ups to support i18n in plugins * Clen up add comments * More clean-ups and comments added * Rename from extension to plugin * Missed file in rename * v0.6.9 * TIdy ups following rename * v0.1.20 * v0.1.21 * More refactor and tidy up * v0.1.22 * v0.1.18 * v0.1.19 * v0.1.23 * v0.6.10 * Version Packages. Improve naming. Unload. * v0.6.11 * v0.1.20 * v0.1.21 * v0.1.24 * v0.6.12 * v0.1.25 * v0.1.22 * v0.6.13 * Fix issues when plugin is builtin * Add missing files * Fix lint issues and watcher ignores * Fixes following review * v0.1.28 * v0.1.31 * v0.6.20 * Fix coer.js version * Fix bug where plugins included via npm don't work * Changes post merge * Move plugins doc to dev guide, add note at top of README * Update cypress version * Add note about the reset --hard in rejig -d * Fixes post merge * Rename @ranch to @rancher and ad plugins * Improve routes support, add package assets support * Add uninstall hooks and pass interal opts * Fix rejig script * Minor fixes * disable consent banner text overflow wrap * add additional metadata to workload detail view * minor css tweak * Routing tweaks - attempted to improve `addRoutes` typing, failed a lot - improved typings in plugins.ts - added "@pkg/*" entry and vue-shim (for importing components) to the pkg creator - fixed some linting - safely fail when Verdaccio isn't running - fixed some typos * Remove frontmatter-markdown-loader reference from nuxt-config * Add annotation to stop upgrades for managed charts Signed-off-by: Phillip Rak <rak.phillip@gmail.com> * Use correct name for Network Attachment Definition Resource (#5579) * Fix heading levels in Account and API keys page (#5563) * SortableTable Performance: Optimise row mouse over/leave handlers (#5550) Co-authored-by: Richard Cox <richard.cox@suse.com> * Keep the check for fleet bundle ID Signed-off-by: Phillip Rak <rak.phillip@gmail.com> * Revert "Remove frontmatter-markdown-loader reference from nuxt-config" This reverts commit |
|
|
|
25acc1f8eb |
Plugins: Rejig files to new shell locations (#5623)
* Doc * v0.7.0 * v0.7.1 * v0.7.2 * Add creators * v0.1.14 * v0.1.17 * Add Yarn link * Tidy ups and typos * Allow models to be loaded from plugins * v0.1.15 * v0.1.18 * v0.6.6 * Improve readme, fix cyperss log msg * v0.1.17 * v0.1.19 * v0.6.7 * v0.6.8 * Fix logo ref when in shell * Fix lint issues * Fix error in example * Fix script to work on linux * Add ability to revert moves without losing changes * Fix bug with custom models in a plugin * Fix build of UI packages * Add dist-pkg to .eslintignore * Pull out util from extend-router to prevent router being pulled in UI packages * Update PLUGINS.md * Remove duplicate dependency * Reduce size of built UI packages * Share codemirror. Other tidy ups * Further improvements * Tidy ups to support i18n in plugins * Clen up add comments * More clean-ups and comments added * Rename from extension to plugin * Missed file in rename * v0.6.9 * TIdy ups following rename * v0.1.20 * v0.1.21 * More refactor and tidy up * v0.1.22 * v0.1.18 * v0.1.19 * v0.1.23 * v0.6.10 * Version Packages. Improve naming. Unload. * v0.6.11 * v0.1.20 * v0.1.21 * v0.1.24 * v0.6.12 * v0.1.25 * v0.1.22 * v0.6.13 * Fix issues when plugin is builtin * Add missing files * Fix lint issues and watcher ignores * Fixes following review * v0.1.28 * v0.1.31 * v0.6.20 * Fix coer.js version * Fix bug where plugins included via npm don't work * Changes post merge * Move plugins doc to dev guide, add note at top of README * Update cypress version * Add note about the reset --hard in rejig -d * Fixes post merge * Rename @ranch to @rancher and ad plugins * Improve routes support, add package assets support * Add uninstall hooks and pass interal opts * Fix rejig script * Minor fixes * Routing tweaks - attempted to improve `addRoutes` typing, failed a lot - improved typings in plugins.ts - added "@pkg/*" entry and vue-shim (for importing components) to the pkg creator - fixed some linting - safely fail when Verdaccio isn't running - fixed some typos * Remove frontmatter-markdown-loader reference from nuxt-config * Revert "Remove frontmatter-markdown-loader reference from nuxt-config" This reverts commit |