Code Monkey home page Code Monkey logo

plugins's People

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

yolossn

plugins's Issues

app-catalog: Add offical, verified, CNCF badges to the apps

Our apps come from ArtifactHub and they have the concept of being official, verified, and a CNCF project.
We should make these clear in our app catalog as well, since these are important characteristics that help users opt for installing certain packages and it's also related to security (by making sure e.g. that an app being installed is a verified app by its owner).

App Catalog broken install button

When trying to install an item from the app catalog the install button will load the UI for a moment and then error redirect to a something went wrong screen.

I have tried the following thus far:

  • Installing and building previous versions of the main project
  • Installing and building previous versions of the plugins

App-Catalog broken install button

The install button for any item on the app catalog page is broken. This will need to be fixed for the filter and badge branch.

I have tried the following thus far:

  • Installing and building previous versions of the main project
  • Installing and building previous versions of the plugins

Add default values to the top options when installing apps/helm charts

The top entries of the dialog when installing an app in the app catalog should get default values when we can. E.g. the version should be the latest one by default (and there should always be one selected).
The description should have something like [APP NAME HERE] deployment as a default value.

Building Prometheus plugin fails

Hi,

I tried building the prometheus plugin in order to ship it to my in-cluster deployment of headlamp but unfortunately the build of the plugin is failing with the following error. Any help would be appreciated!

`Errors:

ModuleNotFoundError: Module not found: Error: Can't resolve 'use-between' in '/headlamp-plugins/prometheus/src'
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/webpack/lib/Compilation.js:2029:28
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/webpack/lib/NormalModuleFactory.js:895:13
at eval (eval at create (/root/.npm/_npx/03f1d306e9548fcf/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:33:10), :10:1)
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/webpack/lib/NormalModuleFactory.js:332:22
at eval (eval at create (/root/.npm/_npx/03f1d306e9548fcf/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:33:10), :9:1)
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/webpack/lib/NormalModuleFactory.js:509:22
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/webpack/lib/NormalModuleFactory.js:151:11
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/webpack/lib/NormalModuleFactory.js:767:25
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/webpack/lib/NormalModuleFactory.js:979:8
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/webpack/lib/NormalModuleFactory.js:1109:5
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/neo-async/async.js:6883:13
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/webpack/lib/NormalModuleFactory.js:1092:45
at finishWithoutResolve (/root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/lib/Resolver.js:567:11)
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/lib/Resolver.js:656:15
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/lib/Resolver.js:714:5
at eval (eval at create (/root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/node_modules/tapable/lib/HookCodeFactory.js:33:10), :15:1)
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/lib/Resolver.js:714:5
at eval (eval at create (/root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/node_modules/tapable/lib/HookCodeFactory.js:33:10), :27:1)
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:89:43
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/lib/Resolver.js:714:5
at eval (eval at create (/root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/node_modules/tapable/lib/HookCodeFactory.js:33:10), :15:1)
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/lib/Resolver.js:714:5
at eval (eval at create (/root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/node_modules/tapable/lib/HookCodeFactory.js:33:10), :16:1)
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/lib/Resolver.js:714:5
at eval (eval at create (/root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/node_modules/tapable/lib/HookCodeFactory.js:33:10), :16:1)
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/lib/Resolver.js:714:5
at eval (eval at create (/root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/node_modules/tapable/lib/HookCodeFactory.js:33:10), :27:1)
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:89:43
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/lib/Resolver.js:714:5
at eval (eval at create (/root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/node_modules/tapable/lib/HookCodeFactory.js:33:10), :16:1)
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/lib/Resolver.js:714:5
at eval (eval at create (/root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/node_modules/tapable/lib/HookCodeFactory.js:33:10), :15:1)
at /root/.npm/_npx/03f1d306e9548fcf/node_modules/enhanced-resolve/lib/DirectoryExistsPlugin.js:41:15
at process.processTicksAndRejections (node:internal/process/task_queues:81:21)
resolve 'use-between' in '/headlamp-plugins/prometheus/src'
Parsed request is a module
using description file: /headlamp-plugins/prometheus/package.json (relative path: ./src)
Field 'browser' doesn't contain a valid alias configuration
resolve as module
/headlamp-plugins/prometheus/src/node_modules doesn't exist or is not a directory
/headlamp-plugins/prometheus/node_modules doesn't exist or is not a directory
/headlamp-plugins/node_modules doesn't exist or is not a directory
/node_modules doesn't exist or is not a directory`

Don't use hardcoded server url

While making request to external proxy on the backend here(

return fetch(`http://localhost:4466/externalproxy`, {
and
export function fetchChartValues(packageID: string, packageVersion: string) {
) We are using hardcoded server url, this should not be the case as when if something is already running on this port the user can start server on a different port, in that case this request will fail.

Possible solution
One way that i could think of is, Pass the server url from elctron main process to renderer process and use that as the server url here

Acceptance criteria
When making request to external proxy we use the dynamic server link generated in the electron main process

Show YAML based on the Helm version

A user has reported that when we are installing an app (Helm), changing the version doesn't seem to update the YAML being displayed, which means that it may end up trying to install a YAML that is not compatible with that version of the chart.

Acceptance Criteria:

  • When changing the version of the chart in the Install dialog, the YAML is updated to the one corresponding to that version

prometheus: Add pvc metrics

It would be great to have metrics on PVCs.

Some metrics:

  • sum(kubelet_volume_stats_used_bytes{persistentvolumeclaim="{pvc}",namespace="{namespace}"}) by (persistentvolumeclaim, namespace)
  • sum(kubelet_volume_stats_capacity_bytes{persistentvolumeclaim="${pvc}",namespace="${namespace}"}) by (persistentvolumeclaim, namespace)

app-catalog: Filter apps based on being verified, official, CNCF

Once we implement #20 , we should have a filter to choose whether we show apps with/without those characteristics.
By default we should show only apps that are verified+official, for security reasons (this makes it more clear that one is installing the expected apps). So users would have to use this new filter in order to show apps that aren't verified or official.

prometheus: make backend configurable for now admin users

First step, make Prometheus service address configurable.

In my case, i would like to provide the endpoint by an different plugin which serves dynamic clusters.


I used Lens before, here i was able to provide such settings by an different lens extension.
image

Prometheus Plug-In: Also detect victoriametrics

Hello,

I run victoriametrics in my stacks (as replacement of prometheus). It should provide the same information (at least with lens it does) but it's not detected by the plug-in.

Could detection of victoriametrics be added? What is the exact mechanism to check if prometheus is available in the cluster or not?

What is required api rights for prometheus plugin?

Hi. I'm running in-cluster installation of headlamp 0.23.1.
When I use cluster-admin or edit cluster role then prometheus chart is working fine for pods, but if I use view role or custom set of privileges, then chart is not showing with error "Error fetching prometheus Info"
I managed to get understanding that plugin is trying to search all namespaces to see if there is prometheus pod, so I added previleges to get pods in all namespaces, error message disappear, but chart still not showing, in browser console I see error "GET generated url with prometheus pod 403 (Forbidden)".

I can't understand which api right is missing, I tried to grant all api resources in "" group, "apps" group and etc with full scope ("get", "list", "watch", "create", "update", "patch", "delete") clusterwide, but still no result.

My idea is that I don't want to give full access to the cluster for team or even edit role clusterwide and give as few as possible api scope for token, but still provide necessary metrics and tools.

Add Inspektor Gadget generic plugin

We want to have a generic Inspektor Gadget plugin for Headlamp, so users can get a quick access to all the insights given by it.
This plugin should offer a generic UI for all gadgets, with certain special cases maybe getting their own dedicated UI.

Acceptance Criteria:

  • A good % of IG gadgets can be used in the plugin
  • CI is set up so the plugin is tested with Headlamp automatically

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.