Commit Graph

109 Commits

Author SHA1 Message Date
Neil MacDougall f6c80b295f
Add root product to improve performance of nav change within inExplorer products (#10447)
* Fix race condition in loadCluster

* Revert new error and comments

* Improve navigation performance for products within the explorer product

* Remove unused getter

* Fix issue with not loading nwe cluster when changing clusters

* Fix bug where sidenav take a short time to update (was using queueUpdate)

* Fix lint issues

* Address PR feedback
2024-03-28 09:28:23 +00:00
Richard Cox d6122779a2
Merge pull request #10669 from richard-cox/fix-node-spam
Handle resources that cannot be watched
2024-03-27 11:03:52 +00:00
Richard Cox 89d4eab4ca
Merge pull request #10455 from richard-cox/fix-dup-mgmt-setting-requests
Remove duplicate calls to mgmt settings on fresh load
2024-03-27 11:03:21 +00:00
Richard Cox a91f0303db Revert fixes for list vs individual watch handling
- 9318936c72
- BUG 1
  - Navigating from nodes list to a node detail page unwatches nodes list but doesn't watch new resources
  - Node's list destroy has a forgetType node
    - this removes entries from store and unwatches nodes list watch
    - we clear the fact we're watching the node list once we receieve a resource.stop from socket
  - There's a race condition, the node we're going to is still in the store... but the find action for this doesn't kick off a watch for the rsource
  - This was resolved by the change in the find action
- BUG 2
  - Refreshing on the detail page results in a watch for that specific node
  - Navigating to the list starts a watch for all nodes, but doesn't stop the individual watch
  - This was resolved by the change in subscribe
- HOWEVER
  - These fixes could impact how what we watch in other cases where we might call find all and find specific in the same context
  - Safer to address later
2024-03-26 16:59:14 +00:00
Richard 7ee02dd10c Add unit tests 2024-03-26 16:00:08 +00:00
Richard f4416cc647 Fix two more watch related node watch related bugs
1. Switching from a detail page with a watch on a specific resource to the list page where we watch all resources did not unwatch on the specific one
2. Switching to a detail page of a resource that's already in the store should ensure we're watching it
2024-03-26 16:00:08 +00:00
Richard Cox 64e3e923f6
Merge pull request #10480 from richard-cox/fix-pod-cache
Ensure pods loaded by incremental loadDataPage make it to the pod by namespace cache
2024-03-26 15:32:45 +00:00
codyrancher b0d2dcbeb4
Vue 3 Nuxtism Removal (#10533)
* Removing everything related to scrollTrigger.

The latest vue router seems to behave exactly as it does with the modified scrollBehavior so it can all be removed.

* Removing unused $nuxt.{suffixes} that I found
- routeChanged  (didn't find any watches of this event)
- nbFetching (The only place reading this was a computed property which wasn't used anywhere)

* Replace the use of Vue[installKey]

* Removing some ssr rehydration code since we're not doing ssr

* Remove the remaining $nuxt.$on,$off,$emit and replace with the use of our primary store which already had related code

* Replacing usages of the .$nuxt on vue instances with globalApp references

* Removing SSR dead code

* Fixing an issue where extensions could still be referencing window.$nuxt. This now provides a deprecation warning.

* Migrating another $nuxt over to the window.$globalApp

* Removed the usage of Vue.config.$nux

* Removed the usage of Vue.util.defineReactive

- Saw that the Nuxt component wasn't needed any longer so I removed it instead of trying to work around Vue.util.defineReactive

* Re-run missing check

---------

Co-authored-by: cnotv <giuseppe.leo@suse.com>
2024-03-11 18:38:25 +01:00
Richard Cox 5ba075f891 Changes following review
- better comments
- improved tests
- handle trailing url `/`
2024-03-08 11:25:32 +00:00
Richard Cox 01683ae8f4 Ensure `too old` messages for watches in individual resources are handled correctly
- also fix issue where `find` on `resyncWatch` didn't work with namespaced resources
2024-03-07 11:18:54 +00:00
Richard Cox 1fe8f7368d Add unit tests 2024-03-04 14:30:41 +00:00
Richard Cox 08f612eab7 Ensure pods loaded by incremental loadDataPage make it to the pod by namespace cached
- Also address a possible race condition made more likely by change
2024-03-04 14:30:41 +00:00
Neil MacDougall 3faa4ad729
Fix race condition in loadCluster (#10445)
* Fix race condition in loadCluster

* Revert new error and comments
2024-03-04 12:55:48 +00:00
Richard Cox 097a220225 Fix new, revealed issues. See PR for description 2024-02-29 17:30:26 +00:00
Richard Cox b464d15ee0
Integrate new schemaDefinitions endpoint (#10141)
* resource edit AS yaml

* fix cruresource (yaml from form)
- lazy load the schemaDefinitions when needed, avoids sync all to createYaml before we have an async chance to fetch schemaDefinitions

* Fix questions
- there are only four places we use questions, none of which use schema, this is just to be safe

* cluster scan, plugins/fieldsForDriver, defaultFor, validationErrors

* pathExistsInSchema
- used to optionally show conditions tab/list in resource detail view
- logs of things in ingress list/edit

* createPopulated / defaultFor
defaultFor requires resourceFields, it's only used by createPopulated in one place to support machine configs without components

* wip

* WIP MONITORING.SPOOFED
- these aren't spoofed types, but secondary schemas
- testing fix blocked, primary schema's have resourceFields

* Move steve specific (resourceField) code to steve models
- create models for steve schemas and apply to cluster and management stores
- move resoureField based validationto steve model
- move pathExistsInSchema to steve store getter
- don't fetch schemaDefinitions on start up when saving prefs (not needed and blocking)

* comments / improvements

* (untested) refactoring

* Fix alertmanager definitions, add retry definition fetch

* Fix pathExistsInSchema for path length > 2

* Fix questions that accept schemas
- tested by adding Questions to random page and the node schema

* Fix to saving configmap part 1
- the save works but doesn't show data. the yaml is the same as before. debug info added

* Validation by resourceFields is a norman specific thing, so make it such

* small refactor

* Tidying up

* Remove rebase junk

* fix linting and unit tests

* fix unit tests

* fix linting from fix for test....

* Tidying up, fix alertmanagerconfig

* Remove unit test todos

* add unit tests for resource fields

* sdssdf

* Add unit tests for pathExistsInSchema

* JS --> TS

* Store schemas in local singleton cache to avoid hitting store

* fix minor changes from review

* cruresource changes following review
- improvement - remove spurious canDiff
- createResourceYaml - pass in resource to use instead of calc in code

* WIP changes to parseType

* Fix generic cloud credential and node driver forms

* handle missing reactivity given schema definitions not in store

* fix and add unit tests for `parseType`

* Fix create-yaml test

* Changes following review
- improved comments
- SchemaDefinitionCache is now per store (and is reset as such)
- typeRef now uses parseType

* Fix dep loop by moving route based helps in auth out to utils file

* fix unit tests

* Changes following review
2024-02-28 17:08:35 +00:00
Richard Cox e90eb2a01b
Merge pull request #10413 from richard-cox/fix-label-selector
Fix issue where labelSelector param was incorrectly applied to filter param
2024-02-14 16:05:12 +00:00
Richard Cox 48d5695359 Improve getGroups performances
- Improve performance of allTypes fn
  - This consumed the majority of time within getGroups
  - Reduced execution time by a half
  - Change from running allTypes products * modes times, run it once per product
- Reduce the amount of times getGroups is called
2024-02-09 15:47:33 +00:00
Richard Cox b161ed7c6b
Merge pull request #10387 from richard-cox/fix-incremental-loading
Fix incremental loading
2024-02-08 09:42:34 +00:00
Richard Cox d69fefc867 Fix issue where labelSelector param was incorrectly applied to filter param
- the two fixes are small
- add unit tests to ensure
  - findMatching action calls urlFor with correct args
  - urlOptions getter create correct url given labelSelector
2024-02-06 17:17:16 +00:00
Richard Cox ba2ae401db - Incremental should be applied
- UI makes two requests
  - the initial incremental loading request (limit is 100 to show something quickly)
  - one more for actual incremental processing (limit is 1/4 of total). should be followed by another 3 requests for remaining resources
- What currently happens
  - url contains duplicated `?` in url leading to limit being ignored
  - both requests will fetch ALL resources
  - so x2 requests to fetch ALL resources
- what should happen
  - first request of 100 returns quickly, shows stuff on page
  - next request gets the first `next` url to iterate through pages
  - next three requests iterate through pages
2024-02-02 14:32:15 +00:00
Richard Cox f4c39fcb6c Wire in cleanForDownload per resource customisation to existing model cleanForX pattern
- base resource model has cleanForX style functions which specific resources override with their own custom neads
- wire in the cleanForDownload into this pattern
- add cleanForDownload override for secrets
2024-02-02 09:03:08 +08:00
Richard Cox ab5b0cf90b Avoid duplicate / surplus requests to fetch mgmt clusters
- loadManagement and loadCluster run in parallel
- both make requests to fetch mgmt clusters
- normally this is fine (loadManagement fetch finishes first, loadCluster requests then use that result)
- however in scenarios where there are a lot of clusters multiple requests are made
- we now wait for the loadManagmeent request to finish

Additionally
- make requests to correct (though harmless) url path (cluster --> clusters)
2024-01-17 15:51:10 +00:00
Richard Cox 0368f657f0
Merge pull request #10037 from Shavindra/9371-remove-unwatned-properties
Removed unwanted properties from steve resources
2024-01-08 15:48:08 +00:00
Richard Cox cc9136b633 Fix unit tests (move mocks into utils folder) 2024-01-02 09:49:52 +00:00
Richard Cox aa6461802d improve unit tests, ensure super.cleanForSave's run correctly 2023-12-20 16:56:59 +00:00
Richard Cox aacf71b822 fix resource-class test 2023-12-20 16:10:51 +00:00
Richard Cox d1a8b2f33b Refactoring and many fixes 2023-12-20 15:26:23 +00:00
Shavindra 2e69430808
Fix fleet cluster state (#10162)
* Display cluster state.

* Display cluster repo status badge.

* Fix typo.

* Fix typo.

* Fix linting.

* Fix linting.

* Removed type from request.

* Reverted change.
2023-12-18 10:52:11 +01:00
cnotv 03dba9f064 Add test for resource class 2023-12-15 17:30:22 +01:00
Shavindra de550a86d4 Merge branch 'master' into 9371-remove-unwatned-properties 2023-12-14 23:17:59 +01:00
Neil MacDougall 83550bd0ca
Yaml Editor: Auto-fold section in RKE2 cluster config (#10108) 2023-12-14 13:22:44 +00:00
Alexandre Alves 6637583874
remove "process." mentions from Dashboard and adjust code (#10119)
* remove process.client and process.server mentions and adjust code

* fix a couple of missing conditions for process.server

* remove commented line

* remove process.static

* fix lint errors

* uncomment code

---------

Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro.local>
2023-12-13 08:41:26 +00:00
Richard Cox 8f0c769b60
Merge pull request #10054 from richard-cox/squash-findAll-secret-monitoring-chart
Avoid fetching all secrets and workloads when installing Monitoring Chart
2023-12-12 13:03:41 +00:00
Richard Cox c9b2f79053
Merge pull request #10024 from richard-cox/cluster-cert-view
Add certificates view to cluster dashboard
2023-12-12 11:57:20 +00:00
Giuseppe Leo cb6f806274
Correct issue with TS after tsconfig split with unit tests (#9686)
* Correct file test naming

* Correct test files import and names

* Restructure TS configuration with shared path

* Copied TS configuration for shell due current architecture state
2023-12-12 11:35:38 +01:00
Richard Cox fd9285ea4d Remove use of findAll secrets - Monitoring Chart
- Contributes to #9964
- Monitorign chart fetched all secrets, then all usages of it filtered down to a single namespace
- So we now only fetch

Related
- Fix scenario where fetching all then fetching namespaced would return all results

Improvement
Also improve spacingin a placeholder
2023-11-17 17:58:43 +00:00
Richard Cox 4e3a282b79 Add certificates view to cluster dashboard
- Add a new tab, next to events, in the cluster dashboard
- Tab shows a list of all secrets of cert type
- List allows users to see which certs are expiring soon, how long they've lived etc
- Tab also shows a notification if certs are expiring or have expired
- Related fixes
  - plumb in option list paging params (so we can show X of Y Certificates in pagination controls)
  - fix usages of from = from || now
  - Count requests to kube steve as steve requests (alongside local steve requests)
2023-11-08 11:52:23 +00:00
Shavindra 9ac7eb2360 Removed unwanted properties from pod, secret and workload 2023-11-02 11:05:55 +01:00
Richard Cox a70fe1b431
Merge pull request #9598 from richard-cox/fix-modified-resource
Fix resource modified handler
2023-09-27 17:36:49 +01:00
Richard Cox eac7eea187 Ensure failures when saving YAML are caught 2023-09-01 16:40:47 +01:00
Richard Cox f9aa1f38bb Fix resource modified handler
- fixes issue in handleConflict that meant
  - conflicts were not detected
  - non-conflicting changes were not applied to users resource
- see #9597 issue description for more detail
2023-08-25 18:41:04 +01:00
Shavindra e11a73d6be
Fix fleet cluster labels and annotations save via YAML view. (#9383)
* Fix fleet cluster labels and annotations save via YAML view.
2023-07-26 13:25:31 +02:00
Sean-McQ 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
2023-07-18 09:23:26 -04:00
Alexandre Alves 43ca333bdf
Table actions 'enabled' function not working correctly (#9331)
* fix bug

* fix lint issues

* fix lint issues + remove pkg folder

* address PR comments

---------

Co-authored-by: Alexandre Alves <aalves@Alexandres-MBP.lan>
2023-07-17 16:07:24 +01:00
momesgin 7e77ec7d5e
remove error icon when the condition is Ready and Waiting (#9309)
* remove error icon when the condition is Ready and Waiting

* fixed importing clean tooltip directive

* change testing component name

* use replace instead of replaceAll to fix node version support issue on GH's unit test action

* added more unit tests

* import replaceAll polyfill and clean tooltip directive to jest setup

---------

Co-authored-by: Mo Mesgin <mmesgin@Mos-M2-MacBook-Pro.local>
2023-07-14 13:09:04 -07:00
Giuseppe Leo 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
2023-06-23 17:02:55 +02:00
Richard Cox 9fada7f0b6 Remove richards-logger 2023-05-18 14:28:28 +01:00
Richard Cox 6fffc0d36a Fix linting 2023-05-18 14:28:28 +01:00
Richard Cox 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
2023-05-18 14:28:28 +01:00
Sean-McQ e256669e74
cluster and rancher stores now use advanced worker (#8717)
* cluster and rancher stores now use advanced worker

* Addressing feedback

* addressing PR feedback and unit tests

* Fixed sticky footer in Helm Chart Install Yaml (#8497)

* Remove dependency: nuxt

Signed-off-by: Francesco Torchia <francesco.torchia@suse.com>

* Remove dependency @nuxt/types

Signed-off-by: Francesco Torchia <francesco.torchia@suse.com>

* fix lint

Signed-off-by: Francesco Torchia <francesco.torchia@suse.com>

* Remove dependency: @nuxt/typescript-build

Signed-off-by: Francesco Torchia <francesco.torchia@suse.com>

* Remove dependency: @nuxtjs/eslint-module
Remove dependency: @nuxtjs/proxy
Remove dependency: @nuxtjs/style-resources

Signed-off-by: Francesco Torchia <francesco.torchia@suse.com>

* align package.log

Signed-off-by: Francesco Torchia <francesco.torchia@suse.com>

* Storybook, add vue-loader dependency

Signed-off-by: Francesco Torchia <francesco.torchia@suse.com>

* Added placeholder in url input (#8036)

* Added placeholder in url input

* Added format checker for Url input

* Update test

* Fixed lint

* Fixed breaking for other providers

* Fixed lint

* Update vue options to preserve whitespace (#8742)

* Update vue options to preserve whitespace

* Bug fix with tidy-up

* Fix response times for multiple clusters (#8720)

* Update extensions publish workflow for assets in gh-pages branch (#8618)

* Update extensions workflow to move assets into gh-pages branch

Fix gh-pages check

* Move bundle execution - add default basename and ext version

* Fix basename op

* PR changes

* [v2.7] Update Chinese translation (#8731)

* Upgrade to Vue 2.7 (#8654)

* upgrade @vue/cli-xxx

* Update Vue to latest 2.7

* Update eslint-plugin-vue

* Disable new linting rules

* Remove linting issue

* Pin Dom purify library version

* Add resolution to avoid conflicts with packages

* Update yarn/lock after the enforced resolution

* Exclude node 16 types resolution

* Fixed extra space bug in the generic cluster-page (#8626)

* Fixed extra space bug in the generic cluster-page

* Fixed space issue in banner

* Revert changes

* Removed extra div

* Fixed selected rows counter (#8419)

* Fixed selected rows counter

* Fixed lint

* Fixed counter in selection.js

* Small fix in toAdd condition

* Lints

* Fixed condition for selected row counter

* Changes in focusAdjacent function

* Fixed lints

* Improve OPA Gatekeeper constraint detail page (#8586)

This adds the following functionality to the violations list on the OPA Gatekeeper constraint detail page:

* Add a namespace column to the violations
* Make the violations list searchable
* Allow to download the violations as a CSV, similar to CIS scanner violations

Signed-off-by: Bastian Hofmann <mail@bastianhofmann.de>

* Increase memory on build (#8751)

* Remove extension autoLoad functionality (#8700)

* fix(BrandImage): remove async fetch method (#8432)

* Removed hasClass method (#8752)

* Removed hasClass method

* Clean code

* Two minor tweaks
- supported store types now a const
- WORKERMODES --> WORKER_MODES

* Fix two bugs
- Ensure advanced worker runs in cluster manager with no current cluster context
- Ensure `resource.stop` from advanced worker successfully kicks off watch


Also
- make rancher, managment and cluster store names a const

* Tweaks
- Fix some comments (jsdoc --> standard, todos)
- Made the web worker redispatch requirement clearer

* Fix unit tests

* Fix resource.stop / resource.error TOO_OLD bugs

- Persist watcher error state after resource.stop
  - this will ensure the resource.stop given alongside the resource.error TOO_OLD is ignored
- Ensure any errors are cleared when we succesfully connect (given above)
  - Should fix the next resource.stop being ignored after recovering from TOO_OLD
- Fix resync watch params
  - these weren't correct, so the resync after TOO_OLD never worked
  - the format could be slimmer, but i thinkg it matches how other socket's data works

Note - I manufactored the TOO_OLD by setting a revision of 1 in subscribe resource.stop if it came from the advanced worker

---------

Signed-off-by: Francesco Torchia <francesco.torchia@suse.com>
Signed-off-by: Bastian Hofmann <mail@bastianhofmann.de>
Co-authored-by: richa <richa.bisht@suse.com>
Co-authored-by: Francesco Torchia <francesco.torchia@suse.com>
Co-authored-by: Neil MacDougall <nwmac@users.noreply.github.com>
Co-authored-by: Jordon Leach <40806497+jordojordo@users.noreply.github.com>
Co-authored-by: vickyhella <vickyhella@hotmail.com>
Co-authored-by: Giuseppe Leo <giuseppe.leo@suse.com>
Co-authored-by: Bastian Hofmann <mail@bastianhofmann.de>
Co-authored-by: LiuYan <361112237@qq.com>
Co-authored-by: Richard Cox <richard.cox@suse.com>
2023-05-17 03:48:10 -04:00