Commit Graph

97 Commits

Author SHA1 Message Date
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
wujun 0ae35023b8
show harvester cluster in fleet page (#9652) 2023-09-27 09:49:19 -07:00
Sean-McQ 8108a4966b
enableRowActions looking at the wrong schema (#9759) 2023-09-27 02:04:08 -04:00
wujun f4856ffccc fix circular dependency 2023-07-26 17:45:27 +08:00
Neil MacDougall c9e1a19396
Extension support for custom provisioning (#9246)
* Extension support for custom provisioning

* FIx lint issues

* Discovery / Tweaks
- fix issue where namespacesOverride was lost
- tidy up PROVIDER
- try to handle missing provider=type url param (could be missing extension-params)
- added a few comments to comments to come back to

* Names and typings
- change param --> customParam to make it clearer it's not url params
- add labels-annotations to shell types

* Wire in provider detailTabs
- as per original readme this should be made generic (extension point working directly with ResourceTabs)

* Update IClusterProvisioner & docs

* Improvements / Changes to support proving out DO extension
- cluster hooks optional
- buff up save hook (and pass in cluster when calling apply fn)
- move normalizeName into generic place
- bring back async create machine config
- hack for do extension (map example provider to do provider)

* updates, add optional saveCluster, add missing kube file
- saveCluster complements hooks, doesn't skip handling of addons, etc
- ensure register hooks take the `this` context in all worlds

* Adding docs

* Updates
- location config based changes
  - change customParams to context
  - add query param
- add new extention point to add tabs to cluster create cluster config section
- fixed some typing
- fixed issue where cluster was not passed to before / after hooks (only important if 'this' changes

* Changes following review, fix `t` in plugins

* Fix linting

* Docs updates, pass through more edit/view things

* Conditionally show the namespace grouping in the cluster list
- means users can differentiate between clusters with same name in different namespaces
- useful when clusters created via extension provisioner where ns can be selected

* docs tweaks, actually include the provisioning page in docs

---------

Co-authored-by: Richard Cox <richard.cox@suse.com>
2023-07-11 22:17:57 +01: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
wujun 717a2b2c14
HARVESTER: add bare-metal container and mcm support (#8754)
* HARVESTER: add bare-metal container and mcm support

* Harvester: Fix re-render old route component

* HARVESTER: fix services and hide repositories

* HARVESTER: add svg icon

* HARVESTER: add harvester version in explorer page

* HARVESTER: change openRancherManagerSupport => isRancherInHarvester

* HARVESTER: move method to models type

* HARVESTER: enhancement TopLevelMenu when use embedded rancher

* HARVESTER: polish harvester mode judgment

* HARVESTER: Add namespace resource quota help text

* HARVESTER: remove service filter

* HARVESTER: set harvester-baremetal-container-workload to false

* HARVESTER: fix svg & namespace component

---------

Co-authored-by: n313893254 <n313893254@126.com>
2023-06-15 13:28:08 -07:00
Richard Cox 0bba39e62c
Merge pull request #8158 from richard-cox/pods-in-workload-list
Include oprhaned `POD`s in Workload list
2023-04-21 13:59:38 +01:00
Alexandre Alves 091ea9b5cf
e2e tests for Extensions (#8128)
* e2e tests

* small tweak and cleanup

* address PR comments

* test e2e fix

* test e2e fix

* test e2e fix

* revert changes to fix e2e step

* increase number of attempts just to make sure we hit the mark if needed

* Many updates
- Use POs where they exist
  - NameNsDescription, Page stuff, AsyncButton, Labels, etc
  - (NameNsDescription works when the label is scrolled into view)
- Create POs where needed
  - helm repo list and create page
- Fix POs where needed
  - Tabbed/Tab
- add basic isVisible check to `ComponentPo`

* remove tab.po

---------

Co-authored-by: Alexandre Alves <aalves@Alexandres-MBP.lan>
Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro.local>
Co-authored-by: Richard Cox <richard.cox@suse.com>
2023-04-21 11:37:30 +01:00
Shavindra 54e084f8fd
Fix clusterrolebindings (#8330)
* Fix ClusterRoleBindings listing.
* Update cluster members list view.
* Fix RBAC project users.
* Add role-binding icon.
2023-04-14 09:47:45 +01:00
Richard Cox 7f4ae7e48d Fix linting 2023-02-28 12:12:45 +00:00
Richard Cox 139fa29d7b Ensure the correct input is given the the Cluster list BasgeState component
- RKE2 clusters were using the mgmt cluster instead of provisioning cluster for status
- Only RKE1 clusters should use the mgmt cluster
- Bug was introduced in https://github.com/rancher/dashboard/pull/8249
- Fix is to use the generic state getters that handles the mgmt/prov state split in models
2023-02-28 11:56:28 +00:00
Richard Cox f93ee861fc Fix stale RKE1 cluser information in clusters list
- For RKE1 clusters we use the mgmt cluster state instead of row's prov cluster
- This should all work generically by using the prov clusters stateObj
- However this does not work, updates sometimes bubble to the prov cluster level and when they do sometimes they even make it to the list
- Workaround is to conver the state column and sub row into custom cell and sub row slots
- These update correctly given changes to the mgmt object

Note - I haven't touched the machine summary column, a similar fix might be needed there
2023-02-24 16:04:01 +00:00
Shavindra e12939115e
Allow basic fleet user to manage fleet without cluster permissions. (#7446)
* Allow basic fleet user to manage fleet without cluster permissions.

* Handle no workspaces.

* Add Fleet bundle namespace mapping - fleet.cattle.io.bundlenamespacemapping

* Add git repo restrictions.

* Handle auth errors for checkSchemasForFindAllHash.

* Fix workspace switcher and handle fleetworkspaces 401 issues.

* Update workspace switcher.

* Fix Gitrepo restriction creation from the Workspace create

* Disable workspace creation
* Fix workspace loading after creation

* Fix Bundle creation error.

* Remove redudant FLEET.TOKEN request.
2023-02-23 14:15:32 +00:00
Shavindra 7d657c58ba
Show node labels on cluster node list view. (#7312)
* Show node labels on cluster node list view.
* Display min number by default.
2023-02-14 16:23:47 +00:00
Richard Cox 6b242c17e8 Include oprhaned PODs in Workload list
- Fixes https://github.com/rancher/dashboard/issues/7506
- Show pods that aren't owned by another workload in the workload list
- Allow the user to create PODS from the workload list
2023-02-13 17:06:48 +00:00
Alexandre Alves 84e260d95e
Manual Refresh Performance Option (#7904)
* update resource fetching on list views so that secondary resources follow the logic of manual refres
h and/or incremental loading if the main resource defines it

* Update resource-fetch logic to take into consideration the storeType for each individual request + fix logic regarding namespace for fetching resources + update missing resources logic (nodes and prov clusters)

* fix tipo

* reinstate hash system to handle requests for nodes and prov cluster lists

* revert mutation code + add check to register type if it doesnt exist on loadDataPage action

* fix issue with timeout that wasnt working properly for the update of live and delayed cols after manual refresh

* Take in to account the per resource count when calculating `limit`
- This means primary resources with a smaller amount don't restrict secondary resources with larger amounts

Co-authored-by: Alexandre Alves <aalves@Alexandres-MBP.lan>
Co-authored-by: Richard Cox <richard.cox@suse.com>
2023-01-27 14:32:42 +00:00
Giuseppe Leo 33e428b945
Add banner to PSA list (#8019) 2023-01-25 11:21:32 +01:00
Giuseppe Leo 8497f587d7
Add PSA custom resource in Cluster Manager (#7678)
* Add PSA resource model, edit, list, types, config, utils and navigation

* Remove controls sorting from config file in PSA form due unnecessary added logic

* Add missing type to exemptions

* Remove component specific grid alignment styling

* Add meaningful values on PSA form tests

* Add prefix for the namespace PSA form

* Correct PSA form test

* Revert RKE cluster erroneous changes

* Rename all the PSA form values to match specification and avoid issues

* Create function to convert array to dictionary

* Add types and replace function with utility in PSA form

* Trim exemptions values for PSA form

* Correct util test and function

* Enable YAML editor for PSA resource
2023-01-20 16:26:43 +01:00
Nancy Butler 53774ce38c move harvester-mgr stuff 2023-01-09 10:48:42 -07:00
Nancy d4261a6e7f
re-add lost cluster.explore translation; rm redundant exploreHarvester translation (#7764) 2022-12-19 14:30:10 -07:00
richa b253857493
Extract non localised strings (#7573)
* WIP

* Fixed Extract non-localised strings issue

* Fixed review comments

* Fix storybook build (#7600)

* WIP

* Removed columns name from explorer and table-header

* Removed not needed labels

* WIP

* Fixed review comments

* WIP

* Removed columns name from explorer and table-header

* Fix in harvester-manager.js and removed extra keys

* Removed labels

* Fix users and groups translations
- Fix users virtualType (this was not changing given the locale)
- Fix groups spoofedType (see below)
- Fix virtualType and spoofedType types side-nav translation changing on locale change (in session)
  - Do this by avoiding using the `label` property when defining the types
  - allTypes respects labelKey now and also supplies a count

Co-authored-by: Richard Cox <richard.cox@suse.com>
Co-authored-by: Neil MacDougall <nwmac@users.noreply.github.com>
2022-12-19 13:40:24 +01:00
Richard Cox 762b3e4163 Updates following review
- Tweak settings text
- Use new filter icon
- Tweak "too many" text
- Allow only selecting a single namespace when in 'too many' mode
2022-12-02 12:37:35 +00:00
Richard Cox 8822c97327 Fix unit test 2022-12-02 12:30:13 +00:00
Richard Cox 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
2022-12-02 12:30:13 +00:00
Neil MacDougall de1c8739d8
Add manage button to home page (#7546)
* Add manage button to home page

* Fix button spacing

* Make buttons smaller - looks better with extra button
2022-11-30 21:45:19 +00:00
Neil MacDougall f0df19764f
Add node inactive warning indicator (#7548) 2022-11-28 09:15:15 +00:00
Nancy 160958fda2
hide create project monitor btn when schema shows no post metho (#7294) 2022-11-21 11:48:10 -07:00
Giuseppe Leo cd947db43b
Add unit tests for Namespace filtering in resources (#7465)
* Prevent errors if no resource is retrieved for NamespaceFilter; Add data-testid attributes for testing purposes and ocmments for readability

* Add NamespaceFilter component tests

* Add Workload loading unit tests

* Restore mokcs globally after each test

* Add issue number to TODO comment
2022-11-18 00:05:42 +01:00
Phillip Rak 3d410d0974 Apply linter auto-fixes
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
2022-11-16 18:38:20 -07:00
Alexandre Alves 649d300e83
add query param to url for simple table filtering on SortableTable (#7368)
* add query param to url for simple table filtering on SortableTable

* enable query param for simple filtering for only default and custom single tabled list pages

* enable query param for simple filtering for workloads list + other minor updates

Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro.local>
2022-11-14 09:31:38 +00:00
Giuseppe Leo d2d4122bc0
Review HTML formatting rules (#6805)
* Prevent ESLint to format generated paths

* Add HTML ESLint Rules

* Format all the Vue HTML templates except Harvester

* Exclude Harvester package from linting HTML, keeping old formatting rules
2022-11-11 17:04:22 +01:00
Richard Cox 31d97ef460
Merge pull request #7364 from richard-cox/hpa-target
Ensure HPA cannot be associated with workloads owned by others
2022-11-10 09:43:36 +00:00
Richard Cox d8171e7de4
Merge pull request #7386 from richard-cox/fix-select-principal
Two Select Principal Fixes
2022-11-10 09:43:01 +00:00
Richard Cox 9b0100c7dd
Create range of Page Objects to support cluster management and other e2e tests (#6675)
* Set data test id and allow complex component to have default and inherited values for all the actions

* Create cluster tests with steps; Create cluster E2E test

* Extend command to use selector matchers

* Create test for cluster navigation and deletion

* Extend commands to find by id as in get method

* Extend documentation with guidelines and info about E2E

* Correct cluster delete and details tests to get menu within speciftc cluster row

* Add remaining E2E tests for the cluster

* Add baseUrl to the paths

* Add RKE2 selection on cluster creation for CI

* Add E2E debugging information

* Rename clluster manager E2E for consistency

* Correct data test ID after rebase

* Prevent cluster provider errors if no management parameter is provided

* Prevent accessing objects in mutation if none is provided

* Remove imported cluster sample due discarded logic

* Reset RKE2 switch on cluster creation

* Adjust test naming for cluster manager

* Replace static data test ID with a variable

* Groupped tests under different common types

* Add POs for pages and componets used in the cluster tests
- fixes #6627
- provides common POs and page POs
- covers a lot of the basic list features

* Remove testid from generic create page
- this is a page at the top level of vue
- any custom test id would need to come from params (cluster, product and/or resource)

Co-authored-by: cnotv <giuseppe.leo@suse.com>
2022-11-09 13:05:34 +00:00
Richard Cox d9771afc3f Two Select Principal Fixes
- Ensure invalid principals aren't selected on press of `return`
- On Users & Authentication --> Groups --> Create page ensure page doesn't reload on press of `return`
2022-11-09 10:42:43 +00:00
Richard Cox 8d2d0de292 Ensure HPA cannot be associated with workloads owned by others
- This ensures ReplicaSets with owners are hidden
- Fixes #2372
2022-11-08 16:29:56 +00:00
Richard Cox bdf6f587be Fix hover state of lists with custom sub-rows
- Fixes #7263
- Covers both node and cis clusterscan tables
2022-10-24 13:44:41 +01:00
Alexandre Alves 866f4d8032
Add manual refresh + incremental loading to all list views (#6908)
* removing check for restriction of types on incremental+manual + update masthead to incorportate directly the ResourceLoadingIndicator so that it can used by list views with custom mastheads + move catalog.clusterrepo typedescription to its rightful component and delete custom list view + updating custom list views to use resource-fetch mixin

* continue updating custom list views to use resource-fetch mixin

* finish updating custom list views to use resource-fetch mixin + prevent error on loadAdd mutation where type is not set in store yet + code cleanup

* address PR comments

* update all custom list views to use loading prop on ResourceTable rather than Loading component + use getter to get incremental updates propagated from the store into the table itself + other minor fixes

* revert changes to mutation loadAdd as check is not needed

* revert all changes to shell/list/harvesterhci.io.management.cluster.vue

* revert deletion of clusterrepo due to CI/CD validation of plugin

* add manual + refresh to namespaces list + fix issue where switching between workspaces results in the manual refresh button continually spinning

* move rows and loading flag to resource-fetch and do necessary changes to custom lists to minimize code changes for the future

* Minor fixes
- Match existing loading check in projectnamespace list (had a check for currentCluster, probably not needed but added just in case)
- Fixed masthead loading indicator for management users and features

Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro.local>
Co-authored-by: Alexandre Alves <aalves@Alexandres-MBP.lan>
Co-authored-by: Richard Cox <richard.cox@suse.com>
2022-10-09 10:37:38 +01:00
Cody Jackson 06b6f358fb Disabling explorer links if the cluster is in an error state
rancher/dashboard#7036
2022-10-04 08:51:30 -07:00
Alexandre Alves 93fd50d807
'View in API' preference is not obvious (#6947)
* splitting up user settings belonging to DEV and updating references on rancher + update settings page to individually control each of the splitted settings

* move view in api to advanced features

* update copy of option in user prefs + update logic for inheriting value from another pref when one is not set on the server/api side + add toggleLocale shortcut to missing layouts + other minor changes

Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro.local>
2022-09-27 10:07:00 +01:00
Richard Cox 73a28016c0 Fix after review
- Ensure that the error case is handled correctly
2022-09-14 10:17:02 +01:00
Richard Cox 2f249647ee Show a loading indicator when the harvester plugin loads slowly
- clicking on a harvester cluster name will make a http request for `ui-info` and then depending on result inject script in to the dom
- these can take some time, the user is left on the cluster list page with no visual indication anything is happening
- to provide this, and prevent multiple clicks, when waiting show a loading indicator and disable all cluster links
2022-09-13 16:52:00 +01:00
Richard Cox 40cae95761 move harvester translations to plugin 2022-09-12 10:36:00 +01:00
Richard Cox 601dd0ff22 Merge remote-tracking branch 'upstream/master' into test-pluginize-rc-2 2022-09-01 19:15:07 +01:00
Richard Cox 43d338fac2
Harvester Plugin (#6729)
* routing maybe

* remove nested edit views

* harvester custom routes

* fix loading imported dev cluster

* move harvester-manager hci.cluster type out of harvester pkg

* fixes for build-pkg

* fix harvester custom dialogs

* fix harvester pkg routing

* generateDynamicTypeImport hyphenated dirs

rename cloud_credential and machine_config back to cloud-credential and machine-config

* Appease linting

* Fix epinio pkg build
- Includes fixes for some dashboard component references

* Revert "Receiver credential secrets are deleted when secret is set to none"

This reverts commit 836460e2998959bcda0b14a9f6511f248980b7b5.

* Fix plugin modal cancel button in dark mode

* Ensure correct components loaded when a new version of a plugin is loaded
- The route matcher was never updated with new route-->component values
- This was due to `this.router.options.routes` not containing the result of `router.add`
- See https://github.com/vuejs/vue-router/issues/2280

* Revert "Revert "Receiver credential secrets are deleted when secret is set to none""

This reverts commit e524bb3d40ea7adfe35c38ec7870560625965d25.

* fix harvester manager->harvester routing

* rename dialogs

* move harvester-manager files out of harvester pkg

* Revert "remove nested edit views"

This reverts commit e835835943d63e74c50942884fec3706f8703047.

* plugin validators dynamic import - not working

* fix merge conflict

* fix harvester members

* fix conflict

* custom validators

* harvester table formatters

* members routing

* import path fixes

* harvester mutli load

* Port across tweaks made during dynamic plugin work
- harvester plugin can be bundled with the dashboard until dynamic work has been completed
- Nav directly to virt cluster dashboard instead of via /harvester-c-cluster
- Fix missing bottom border on virt cluster list, hide actions (as they're never populated)

* move config/settings and config/harvester-map

fix hci setting custom components

* fix harvester setting import path

* Move over SerialConsole and Novnc, remove harvester.notifications
- These components were so 1-1 with harvester in the end i moved them over
- Also removed the like-for-like generic.notification `harvester.notification` strings

* Remove isSingleVirtualCluster, most of isMultiVirtualCluster

* Fix two nav issues
- harv cluster members --> prefs --> click on-screen back
- dashboard --> prefs --> click on-screen back

Both of these would be better fixed by an incoming change to the default layout (don't show old content before switching page)

* Fix reload of project/namespace page

* Split out project namespace into it's own component (1 or 2)

* Split out project namespace into it's own component (2 or 2)

* use product hideSystemResources opt instead of isVirtual/product===virtual

* fix missing prop in header

* Move FilterLabel and CloudInitType to harv pkg + two other references

* Move Harvester Upgrade components to harv pkg
- Needs a review with Neil regarding generics

* rebase build+load not working

* fix harvester route in authenticated

* Experimental Changes

* Fix merge conflicts

* WIP Fix routing
- includes project/namespace and namespace pages

* Tidying up

* Move harvester core store to plugin, remove harvester code from authenticated flow
- harvester store is a steve store that now lives in the plugin
- harvester `loadVirtual` replaced with a shortened `loadCluster` in it's own store
- Also fix xterm css import

* Fix three routing related bugs
- Fix project/namespace create/edit/cancel/done flows
- Update harvester's loadCluster to better match loadCluster
- Make edit namespace page project resource agnostic

* Build fixes

* Fix create namespace button and other tweaks

* fix two issues with nav out of imported harvester cluster

* Fix alignment of action menu button
- Used in many places
  - all generic table action menus
  - global settings --> settings
  - rke1 cluster detail page machine pool group actions
  - project/namespace list project group actions
  - resource detail page action menu

* Revert changes to app and pkg creators
- This should fix `check-plugins-build` gate
- It does hide the underlying issue, but that won't have been brought in by this PR?

Co-authored-by: Nancy Butler <42977925+mantis-toboggan-md@users.noreply.github.com>
2022-09-01 08:57:05 -07:00
Richard Cox 5fd4413c6e Move HCI from shell types to plugin types 2022-09-01 15:31:58 +01:00
Richard Cox 02d9709652 Post merge fixes 2022-09-01 14:31:19 +01:00
Richard Cox b3f13843dd Merge remote-tracking branch 'origin/harvester-plugin-rebased' into test-pluginize-rc-2 2022-09-01 13:57:18 +01:00
Richard Cox 8dde5bf3f2 Merge remote-tracking branch 'upstream/master' into harvester-plugin-rebased 2022-09-01 11:00:39 +01:00