headlamp-k8s / plugins Goto Github PK
View Code? Open in Web Editor NEWOfficial plugins of the Headlamp project
Home Page: https://headlamp.dev/
License: Apache License 2.0
Official plugins of the Headlamp project
Home Page: https://headlamp.dev/
License: Apache License 2.0
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).
It's a bit of a mystery button without being able to hover it and see what it is.
cc @ashu8912
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.
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.
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.
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`
While making request to external proxy on the backend here(
plugins/app-catalog/src/api/charts.tsx
Line 24 in 2d1db6a
plugins/app-catalog/src/api/charts.tsx
Line 31 in 2d1db6a
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
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:
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)
As in the workloads views, I would like to have the same filters for namespace and text search in the apps/installed view.
Preselecting the namespace like when switching between workloads views would be the icing on the cake. ;-)
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.
Seems like the graph axis doesn't have a label, and the time isn't rendered as a time.
Was confusing to me.
cc @ashu8912
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?
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.
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 declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.