Giter VIP home page Giter VIP logo

dev-guide's Issues

如何快速开发一个 KSE 插件

当您希望能基于 KSE 快速开发一个插件时,首先需要确定的是给用户提供什么样的功能。
下面的一些示例可以有助于您理解 KSE 可以实现的功能和扩展组件机制。

示例插件:

  1. Redis Helm 应用
    在应用商店中提供 Redis 应用,每个租户都可以在自己的项目中使用这个 Redis 应用,它实际上是使用 Helm Chart 来创建资源。如果您已有开发好的 Helm Chart,希望通过 KSE 进行分发,可以参考这个示例
  2. Redis Operator 应用
    在应用商店中提供 Redis 应用,每个租户都可以在自己的项目中使用这个 Redis 应用,它实际上是使用 Operator 机制来创建资源。如果您已有开发好的 Operator,希望通过 KSE 进行分发,可以参考这个示例
  3. 监控、日志
    在自定义的注入点提供监控和日志功能。如果您希望深度修改 KSE 中已有的功能,并且给用户提供无缝的体验,可以参考这个示例
  4. nginx ingress controller
    在应用路由中提供 nginx ingress controller 类型,每个租户都可以在创建应用路由时选择这个 ingress 类型。如果您已有开发好的 ingress controller,希望在 KSE 界面中新增这种类型,可以参考这个示例
  5. OpenEBS 存储
    在存储中提供 OpenEBS 相关的存储类型,每个租户都可以在创建持久卷声明时选择这个存储类型。如果您有已经开发好的 CSI 插件,希望在 KSE 界面中新增这种类型,可以参考这个示例
  6. Weave Scope 网络拓扑
    在工作台中提供网络拓扑功能,集群管理员可以在工作台中进入 Weave Scope 查看网络拓扑。如果您的云原生应用有独立的用户界面,希望在 KSE 界面中新增一个入口,可以参考这个示例
  7. DMP 应用
    在应用商店提供 MySQL、PostgreSQL、MongoDB 等应用,每个租户都可以在自己的项目中使用这些应用,它们的底层是 Helm Chart 或者 Opeator 实现。在工作台中提供数据库后台管理功能,集群管理员可以在工作台中进入 DMP 后台管理数据库应用。如果您希望为用户提供应用服务,并提供相应的管理后台和界面自定义,可以参考这个示例

按用户使用的入口来区分插件:

  • 动态入口
    • ApplicationClass
      • Helm(link to 快速开发指南)
      • Operator(link to 快速开发指南)
    • StorageClass
    • WorkbenchEndpoint
    • IngressClass
    • GatewayClass(将于 v4.1 提供)
    • RuntimeClass(将于 v4.1 提供)
  • 自定义入口
    • JSBundle 自定义
  1. 动态入口在 KSE 中皆为动态获取,如果没有安装对应的插件,将提示用户进行安装。
  2. 自定义入口在插件安装完成后才会在对应页面中进行注入。

扩展组件开发指南

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.