Commit Graph

208 Commits

Author SHA1 Message Date
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
Evgeniya Vashkevich 47ff3ddac6
[FEAT] Moved driver pages from Ember (#10557)
* [FEAT] Moved driver pages from Ember
2024-03-26 16:33:15 -07:00
Richard Cox 230ad4d8f0 Handle resources that cannot be watched
- examples metrics.k8s.io.podmetrics, metrics.k8s.io.nodemetrics, componentstatus
- change 1
  - when these are watched the BE now sends an error... which we ignore and try to watch again
  - so handle the error
- change 2
  - avoid this scenario though by stopping watches that don't have the watch verb
  - because of this change 1 can only be tested by changing code
2024-03-26 16:00:08 +00:00
Alexandre Alves 5409f2b23a
remove v1 monitoring code (#10539)
* remove v1 monitoring code

* fix lint issue

* remove monitoring v1 uninstall code + remove v1 uninstall translation strings + simple checks for detail pages in e2e tests to verify integrition of work done

* address pr comments

* fix unit tests

---------

Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro.local>
2024-03-22 17:39:32 +00:00
Richard Cox f5ab831f37 Changes after review 2024-03-22 15:36:55 +00:00
Alexandre Alves 3df4e9dd53 Reintroduce "Replace `Vue.extend` with `defineComponent` in shell"
This reverts commit 1eacbdea40.
2024-03-13 10:10:26 -07:00
Sorin a54edec8b6
Merge pull request #10522 from scures/9810/incorrect-abbreviation
9810/incorrect-cluster-name-abbreviation
2024-03-12 14:44:30 +01: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
scures 27889b0dbf
feat: cluster abbreviation to 3 chars, shows customisation on cluster creation 2024-03-11 14:43:28 +01: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
codyrancher 1dfd3c0c2c
Merge pull request #10333 from codyrancher/title
More informative page titles
2024-02-15 09:43:57 -07:00
Cody Jackson 36a31a397e More informative page titles 2024-02-12 20:11:45 -07:00
Mo Mesgin e934c8bd55 check string type before creating blocks in dumpBlock 2024-02-07 10:59:28 -08: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
Alexandre Alves 64e20bb50f
Revert "Replace `Vue.extend` with `defineComponent` in shell" (#10344) 2024-01-29 17:22:06 +00:00
Nancy 4cca5faf81
AKS provisioning extension (#9669)
Adds a built-in AKS provisioning extension to replace the embedded ember pages, as well as modifications to the provisioning UI to support other non-rke2 provisioning extensions
2024-01-11 07:52:45 -08:00
Phillip Rak 610b826319 Replace `Vue.extend` with `defineComponent` in shell
Replace the usage of `Vue.extend` with `defineComponent` throughout multiple components located under `shell/components/`. `defineComponent` provides better type inference, improved TypeScript support, and will be the recommended way to define components when Dashboard migrates to Vue 3.

Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
2024-01-10 09:06:46 -07: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 d1a8b2f33b Refactoring and many fixes 2023-12-20 15:26:23 +00:00
Phillip Rak a9d7d4bf4d Prevent mutating yaml when a header isn't found
This prevents `dumpBlock()` from mutating parsed yaml when a header can't be located. More investigation might be warranted to discover why the regex used by `getBlockHeader()` isn't matching the keys when parsing the example yaml:

```
 apiVersion: v1
data:
  a: "a\nb\tc"
  b: "a\nb\tc"
kind: ConfigMap
metadata:
  name: yaml-tab-test
```

but the crux of the issue still comes down to the fact that `dumpBlock()` will indiscriminately mutate yaml output when a key can't be located; it's important that this behavior is corrected.  

Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
2023-12-15 11:38:17 -07:00
Phillip Rak 0292e1182d
Merge pull request #10142 from rak-phillip/bugfix/10044-config-maps
Allow for `jsyaml.dump()` Options in `dumpBlock`
2023-12-15 07:16:21 -07:00
Alexandre Alves 541684f511
remove argument "ssrContext" from "createApp" function and it's subsequent calls (#10131)
* remove ssrcontext arg from createapp function

* remove all mentions to beforeRenderFns and ssrContext + bonus to remove another function related to ssr

---------

Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro.local>
2023-12-15 11:51:22 +00:00
Shavindra b750d776f7 Remove type. 2023-12-14 23:30:33 +01:00
Shavindra de550a86d4 Merge branch 'master' into 9371-remove-unwatned-properties 2023-12-14 23:17:59 +01: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
Phillip Rak 2b482f8293 Add new unit test for `create-yaml` `dumpBlock()`
This unit test asserts that `dumpBlock()` can properly accept dump options for `jsyaml` and will output the expected string when long lines (over 80 characters) are present in a block.

Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
2023-12-12 10:58:42 -07:00
Phillip Rak 01c043099e Allow for `jsyaml.dump` options in `dumpBlock`
Introduce the capability to customize `jsyaml.dump` options in the `dumpBlock` function, allowing developers to supply all of the dump options specified by `jsyaml.dump()`.

Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
2023-12-12 10:52:37 -07: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
Evgeniya Vashkevich 25618ad4a0
[INT] Replaced vue-clipboard2 library with clipboard-polyfill (#10072)
* [INT] Replaced vue-clipboard2 library with clipboard-polyfill
2023-11-30 16:31:35 -08: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
Shavindra 3436e4271c Fix linting errors. 2023-11-14 10:51:46 +01: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 a4aa9f7f4d
Merge pull request #9941 from richard-cox/fix-supplement-error-handling
Allow extentions to redirect the user to another location if authentication fails
2023-10-27 11:34:25 +01:00
momesgin 5919915b29
Validating server url on Setup & Global Settings pages (#9701)
* added more validations for server-url on Setup and Global Settings pages

* handling server-url 'use default value' case

* consistent error messages

---------

Co-authored-by: Mo Mesgin <mmesgin@Mos-M2-MacBook-Pro.local>
2023-10-26 11:17:45 -07:00
Richard Cox 48d0807181 Revert "App upgrade notification shown for incorrect app (#9806)"
This reverts commit eec4a46fdb.
2023-10-20 15:13:52 +01:00
Nancy a498e1754a
hide embedded grafana graphs on cluster index when the user cant view grafana endpoint (#9942)
* only show cluster embedded grafana dashboards when user has permission to view the grafana endpoint

* Remove unsed var ENDPOINTS

---------

Co-authored-by: Neil MacDougall <nwmac@users.noreply.github.com>
2023-10-19 08:43:24 -07:00
Richard Cox 8fdadee8e3 Allow extentions to redirect the user to another location if authentication fails
- if entering the product, loading cluster, etc fails extensions can now throw a `RedirectToError` error
- this avoids the user being redirect to the dashboard home or fail-whale page
- example - epinio auth fails and we want to return user to the epinio cluster list

In theory we should be able to to instanceof with something that extends error and has a `name`,
unfortunately this does not work, so gone for something more manual.

Also bump shell so we can publish a new version
2023-10-17 18:47:21 +01:00
Sean-McQ 39adb0880a
was incorrectly checking for apiGroups on the missingOneResource error. (#9916) 2023-10-13 15:46:18 -04:00
Giuseppe Leo 50aac73712
Automation: No matching clusters msg fix (#9864)
* Remove conditional chaining in template

* Prevent app to break if no setting available

* Prevent to break if no mgmt cluster

* Prevent sidebar to break if no kube cluster

* Prevent breaking if no product available

* Prevent sort utils to break if no value is provided

* Add markup comments

* Replace getter mapping

* Prevent error if missing label for the inspected cluster

* Add tests for sidebar
2023-10-11 11:03:39 +02:00
Giuseppe Leo eec4a46fdb
App upgrade notification shown for incorrect app (#9806)
* Heavy code cleanup: move function to utils, config and types to their own file

* Add fallback and tests for version comparison not retrieving values

* Fix refactoring

* Add partial case of array filterBy

* Replace multiple functions handling the same case with single getter; add covering tests

* Add no parameter case to be correctly handled

* Add case with different chart values, e.g. Epinio issue case

* Prevent issues if retrieved version is undefined; Add unit tests for upgrade cases

* Filter out charts if lack parameters
2023-10-10 11:14:24 +02:00
momesgin 4892bb7c95
updated support link (#9870)
* updated support link

* revert mistakenly removed test

---------

Co-authored-by: Mo Mesgin <mmesgin@Mos-M2-MacBook-Pro.local>
2023-10-06 13:40:35 -07:00
Sean-McQ 86a448b0e5
now properly escaping key names prior to diffing objects (#9865) 2023-10-06 12:48:57 -06:00
Nancy 702c54e96f
check if a user can list apps before trying to fetch the monitoring app (#9826) 2023-10-06 09:13:14 -07:00
Giuseppe Leo d2d6139496
Add test for version dev detection (#9848) 2023-10-04 19:42:53 +02:00
Sean-McQ 6f0a3d436a
save method in model fixes payload, validator catches the rest (#9758) 2023-09-27 13:40:36 -04:00
wujun 0ae35023b8
show harvester cluster in fleet page (#9652) 2023-09-27 09:49:19 -07:00