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

WIP: GRPC/Container Based Render Plugin supports #28656

Open
lunny opened this issue Dec 30, 2023 · 2 comments
Open

WIP: GRPC/Container Based Render Plugin supports #28656

lunny opened this issue Dec 30, 2023 · 2 comments
Labels
type/proposal The new feature has not been accepted yet but needs to be discussed first.

Comments

@lunny
Copy link
Member

lunny commented Dec 30, 2023

Feature Description

Original Implementation Drawbacks

Gitea support render plugin based on OS process for many years. The render plugin system has some drawbacks.

  • The third-party software has to be installed on the same machine, so users have to create their own Dockerfile based on the official one.
  • It's not out-of-box, users need to configure it themselves and restart Gitea after the configuration.
  • It's difficult to be shared.

The New Implementation

This proposal introduce a new type render plugins which based on GRPC/WebSocket and container. Every plugin is a conatiner image which is also a RGPC client. It will connect to Gitea Server and registered as a special format render. It can register one or more extend names, like .md, .mdx and etc. After registered, it will be blocked to wait render task. If it got a render task, it will render the given special format content and return the HTML.

There are two different possible resultions.

  • Run the render plugin as actions services on some container runner
  • It will not depend on actions but have a standalone system, then it will have a default running container type. It could be docker, k8s.
    For the plugins, it can be running on local docker or remote k8s. Then when installing a plugin from the marketplace, using different method to download the image and run it and configure it.

TBC

@lunny lunny added the type/proposal The new feature has not been accepted yet but needs to be discussed first. label Dec 30, 2023
@delvh
Copy link
Member

delvh commented Dec 30, 2023

Duplicate of #20126?

@lunny
Copy link
Member Author

lunny commented Dec 30, 2023

Common Plugin is a big topic which is not easy to implement. This is only for a renderer plugin based on container and GRPC.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/proposal The new feature has not been accepted yet but needs to be discussed first.
Projects
None yet
Development

No branches or pull requests

2 participants