dashboard icon indicating copy to clipboard operation
dashboard copied to clipboard

Umbrella issue for UI dashboard

Open vincentgoat opened this issue 2 years ago • 13 comments

Prerequisites for using UI DashBoard

Already installed the KubeEdge cluster.

Features and Tasks

After configuring the k8s address, you can use the CRUD functions of KubeEdge. The detailed modules and APIs are as follows. Feel free to comment if there is anything missing and welcome all contributors.

  • [ ] The basic framework

    • Building user interfaces based on React
  • [ ] Edge Node

    • GET /api/v1/nodes
    • GET /api/v1/nodes/{node-name}
    • DELETE /api/v1/nodes/{node-name}
    • PUT /api/v1/nodes/{node-name}
  • [ ] Deployments/Pods

    • POST /apis/apps/v1/namespaces/{default}/deployments -d{body}
    • PUT /apis/apps/v1/namespaces/{default}/deployments/{deployment-name} -d{body}
    • GET /apis/apps/v1/namespaces/{default}/deployments
    • GET /apis/apps/v1/namespaces/{default}/deployments/{deployment-name}
    • DELETE /apis/apps/v1/namespaces/{default}/deployments/{deployment-name}
    • GET /api/v1/namespaces/{default}/pods
    • DELETE /api/v1/namespaces/{default}/pods/{pod-name}
  • [ ] Configmaps

    • POST /api/v1/namespaces/{default}/configmaps -d{body}
    • PUT /api/v1/namespaces/{default}/configmaps/{cm} -d{body}
    • GET /api/v1/namespaces/{default}/configmaps
    • GET /api/v1/namespaces/{default}/configmaps/{cm}
    • DELETE /api/v1/namespaces/{default}/configmaps/{cm}
  • [ ] Secrets

    • POST /api/v1/namespaces/default/secrets -d{body}
    • PUT /api/v1/namespaces/default/secrets -d{body}
    • GET /api/v1/namespaces/default/secrets
    • GET /api/v1/namespaces/default/secrets/{name}
    • DELETE /api/v1/namespaces/default/secrets/{name}
  • [ ] Services

    • POST /api/v1/namespaces/default/services -d{body}
    • PUT /api/v1/namespaces/default/services -d{body}
    • GET /api/v1/namespaces/default/services
    • GET /api/v1/namespaces/default/services/{name}
    • DELETE /api/v1/namespaces/default/services/{name}
  • [ ] Devices

    • POST /apis/devices.kubeedge.io/v1alpha2/namespaces/default/devices -d{body}
    • PUT /apis/devices.kubeedge.io/v1alpha2/namespaces/default/devices -d{body}
    • GET /apis/devices.kubeedge.io/v1alpha2/namespaces/default/devices
    • GET /apis/devices.kubeedge.io/v1alpha2/namespaces/default/devices/{device}
    • DELETE /apis/devices.kubeedge.io/v1alpha2/namespaces/default/devices/{device}
  • [ ] DeviceModel

    • POST /apis/devices.kubeedge.io/v1alpha2/namespaces/default/devicemodels -d{body}
    • PUT /apis/devices.kubeedge.io/v1alpha2/namespaces/default/devicemodels -d{body}
    • GET /apis/devices.kubeedge.io/v1alpha2/namespaces/default/devicemodels
    • GET /apis/devices.kubeedge.io/v1alpha2/namespaces/default/devicemodels/{device}
    • DELETE /apis/devices.kubeedge.io/v1alpha2/namespaces/default/devicemodels/{device}
  • [ ] Policy

    • POST /api/v1/namespaces/default/serviceaccounts -d{body}
    • PUT /api/v1/namespaces/default/serviceaccounts -d{body}
    • GET /api/v1/namespaces/default/serviceaccounts
    • GET /api/v1/namespaces/default/serviceaccounts/{account}
    • DELETE /api/v1/namespaces/default/serviceaccounts/{account}
    • POST /apis/rbac.authorization.k8s.io/v1/namespaces/default/roles -d{body}
    • PUT /apis/rbac.authorization.k8s.io/v1/namespaces/default/roles -d{body}
    • GET /apis/rbac.authorization.k8s.io/v1/namespaces/default/roles
    • GET /apis/rbac.authorization.k8s.io/v1/namespaces/default/roles/{role}
    • DELETE /apis/rbac.authorization.k8s.io/v1/namespaces/default/roles/{role}
    • POST /apis/rbac.authorization.k8s.io/v1/namespaces/default/rolebindings -d{body}
    • PUT /apis/rbac.authorization.k8s.io/v1/namespaces/default/rolebindings -d{body}
    • GET /apis/rbac.authorization.k8s.io/v1/namespaces/default/rolebindings
    • GET /apis/rbac.authorization.k8s.io/v1/namespaces/default/rolebindings/{role}
    • DELETE /apis/rbac.authorization.k8s.io/v1/namespaces/default/rolebindings/{role}
    • POST /apis/rbac.authorization.k8s.io/v1/clusterrolebindings -d{body}
    • PUT /apis/rbac.authorization.k8s.io/v1/clusterrolebindings -d{body}
    • GET /apis/rbac.authorization.k8s.io/v1/clusterrolebindings
    • GET /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{role}
    • DELETE /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{role}
    • POST /apis/rbac.authorization.k8s.io/v1/clusterroles -d{body}
    • PUT /apis/rbac.authorization.k8s.io/v1/clusterroles -d{body}
    • GET /apis/rbac.authorization.k8s.io/v1/clusterroles
    • GET /apis/rbac.authorization.k8s.io/v1/clusterroles/{role}
    • DELETE /apis/rbac.authorization.k8s.io/v1/clusterroles/{role}
  • [ ] EdgeApplication

    • POST /apis/apps.kubeedge.io/v1alpha1/namespaces/default/edgeapplications -d{body}
    • PUT /apis/apps.kubeedge.io/v1alpha1/namespaces/default/edgeapplications -d{body}
    • GET /apis/apps.kubeedge.io/v1alpha1/namespaces/default/edgeapplications
    • GET /apis/apps.kubeedge.io/v1alpha1/namespaces/default/edgeapplications/{app}
    • DELETE /apis/apps.kubeedge.io/v1alpha1/namespaces/default/edgeapplications/{app}
  • [ ] Nodegroup

    • POST /apis/apps.kubeedge.io/v1alpha1/nodegroups -d{body}
    • PUT /apis/apps.kubeedge.io/v1alpha1/nodegroups -d{body}
    • GET /apis/apps.kubeedge.io/v1alpha1/nodegroups
    • GET /apis/apps.kubeedge.io/v1alpha1/nodegroups/{group}
    • DELETE /apis/apps.kubeedge.io/v1alpha1/nodegroups/{app}
  • [ ] CRD

    • GET /apis/apiextensions.k8s.io/v1/customresourcedefinitions
  • [ ] Rule

    • POST /apis/rules.kubeedge.io/v1/namespaces/default/rules -d{body}
    • PUT /apis/rules.kubeedge.io/v1/namespaces/default/rules -d{body}
    • GET /apis/rules.kubeedge.io/v1/namespaces/default/rules
    • GET /apis/rules.kubeedge.io/v1/namespaces/default/rules/{rule}
    • DELETE /apis/rules.kubeedge.io/v1/namespaces/default/rules/{rule}
  • [ ] RuleEndpoint

    • POST /apis/rules.kubeedge.io/v1/namespaces/default/ruleendpoints -d{body}
    • PUT /apis/rules.kubeedge.io/v1/namespaces/default/ruleendpoints -d{body}
    • GET /apis/rules.kubeedge.io/v1/namespaces/default/ruleendpoints
    • GET /apis/rules.kubeedge.io/v1/namespaces/default/ruleendpoints/{ruleendpoint}
    • DELETE /apis/rules.kubeedge.io/v1/namespaces/default/ruleendpoints/{ruleendpoint}

Advance features

  • [ ] Deployed by containerized and helm
  • [ ] Optimized the home page
  • [ ] Added node upgrade function
  • [ ] Collect and display metrics data
  • [ ] Dashboard on Edge
  • [ ] Provide the ComboBox to select the installation package, and the "Quick Installation" function.
  • [ ] Batch installation of edge nodes on the control plane via ssh

vincentgoat avatar Jan 09 '23 06:01 vincentgoat

Hey, @vincentgoat this idea looks interesting to me I would love to be a mentee for this under the LFX mentorship. I love open source and am proficient in React and I think I can deliver everything required for this issue. I would love it if you point me to some resources to get started Thank you

Ciggzy1312 avatar Jan 31 '23 12:01 Ciggzy1312

Hi, I would like to work on this issue in the upcoming LFX mentorship term. If I understand it correctly the frontend will be built using react and what language will be used to interact with the Kubernetes resources on the backend? Golang?

hamees-sayed avatar Jan 31 '23 17:01 hamees-sayed

Thank you for your application! Please apply on the LFX website https://mentorship.lfx.linuxfoundation.org/ after the application channel is open.

vincentgoat avatar Feb 01 '23 02:02 vincentgoat

Hi, I would like to work on this issue in the upcoming LFX mentorship term. If I understand it correctly the frontend will be built using react and what language will be used to interact with the Kubernetes resources on the backend? Golang?

Golang is one of the interacting languages, it's non-constraint and JS may also be available.

vincentgoat avatar Feb 01 '23 03:02 vincentgoat

Hi, I've also recently done a Kubeeddge-based management platform using Gin and have done a lot of work. In this serendipity, I saw that you are finishing this project, and I feel honored if I can join you, and I hope I can make some contribution.If I can join you, I can try to contribute the Gin version of the code, and hopefully you will give me this opportunity. @vincentgoat

Piwriw avatar Feb 01 '23 13:02 Piwriw

Hey @vincentgoat I have worked (created) on a similar project around it , would love it if u take a moment to check it out and i really wanna contribute to this issue ! I think i'll appy for this one on LFX , would love to get to know more about it , if u have any instructions. Don't forget to checkout the repo : https://github.com/maheshkasabe/K-Dash

maheshkasabe avatar Feb 04 '23 15:02 maheshkasabe

I have successfully signed up for this project, and I want to work with you to complete this requirement @vincentgoat

fengshunli avatar Feb 11 '23 05:02 fengshunli

@vincentgoat sir, I had submitted my application for LFX mentorship program but there is no update yet. Can I know about the progress of application.

bagariaraj23 avatar Mar 04 '23 19:03 bagariaraj23

@vincentgoat sir, I had submitted my application for LFX mentorship program but there is no update yet. Can I know about the progress of application.

Thanks for your feedback @bagariaraj23, we are currently reviewing candidates and the results will be released in the next few days.

vincentgoat avatar Mar 06 '23 02:03 vincentgoat

Okay thanks a lot for the update sir.

bagariaraj23 avatar Mar 06 '23 15:03 bagariaraj23

Hello @vincentgoat , I am Forcha Pearl from Cameroon . A new version (1.16) of the KubeEdge API has been released but I can't see any details on the new APIs . Please , please , please , please @vincentgoat can you help me with the latest changes on the KubeEdge API. I intend to participate on LFX mentorship this year.

Forchapeatl avatar May 09 '24 09:05 Forchapeatl

Hello @vincentgoat , I am Forcha Pearl from Cameroon . A new version (1.16) of the KubeEdge API has been released but I can't see any details on the new APIs . Please , please , please , please @vincentgoat can you help me with the latest changes on the KubeEdge API. I intend to participate on LFX mentorship this year.

The new features are listed in the release notes, details of APIs can be found at https://github.com/kubeedge/kubeedge/tree/master/docs/proposals WDYT @Shelley-BaoYue

vincentgoat avatar May 11 '24 02:05 vincentgoat