Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Umbrella issue for UI dashboard #1

Open
21 tasks
vincentgoat opened this issue Jan 9, 2023 · 12 comments
Open
21 tasks

Umbrella issue for UI dashboard #1

vincentgoat opened this issue Jan 9, 2023 · 12 comments

Comments

@vincentgoat
Copy link
Member

vincentgoat commented Jan 9, 2023

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
@Ciggzy1312
Copy link

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

@hamees-sayed
Copy link

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?

@vincentgoat
Copy link
Member Author

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

@vincentgoat
Copy link
Member Author

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.

@Piwriw
Copy link
Member

Piwriw commented Feb 1, 2023

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

@maheshkasabe
Copy link

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

@fengshunli
Copy link
Member

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

@bagariaraj23
Copy link

@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.

@vincentgoat
Copy link
Member Author

@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.

@bagariaraj23
Copy link

Okay thanks a lot for the update sir.

@Forchapeatl
Copy link

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.

@vincentgoat
Copy link
Member Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants