You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
High Availability: The file server needs to be deployed as a core component to ensure SLA.
Version management: The mirror needs to be bound to the plug-in version, respond to the wasm plug-in-related PR, and supports automatic construction and manual deployment.
Compatibility: **Coexist with existing OCI plug-in loading methods. Users can configure plug-in pulling policies (such as IfNotPresent). It is necessary to test and verify whether the file server's method can perceive changes when verifying the Always policy and update the plug-in content. (e.g. md5 of comparison file). **
1.2 Architectural Design
Independent components: Create a new higress-plugin-server repository, including:
Dockerfile: Build an Nginx image and inject plugin files.
Plugin directory structure: organize files by plugins/plugin-name/version/.
nginx configuration file: nginx.conf
K8s deployment configuration file
All wasm plugin files
Plugin initialization related scripts
Integration method:
Build directly with docker build by individual or beta users.
Users install the higress-plugin-server component through Helm Chart.
hgress-gateway Specifies the file server address through environment variables or configuration files.
Create a warehouse
Create a new repository under higress-group higress-plugin-server. (I will first create a new warehouse under my local and personal github account)
Directory structure (all plugins are downloaded and placed in the repository, and scripts are provided to pull plugins from the OCI repository. You can configure parameters to directly package or pull plugins in the remote repository)
Pipeline 1: alibaba/higress main branch plug-in related PR triggers. When triggering, pull the latest plug-in from OCI and push it to the repository, and synchronize the plug-in PR of the main branch.
Pipeline 2: Higress-plugin-server related PR triggers, rebuild the image when triggered and push it to the mirror repository.
**Does the user side need to automatically upgrade? How to perceive the change in the mirror version? **
Manual update: You can manually replace the plug-in file, execute the metadata generation script, and rebuild the image.
Mirror version management
Use latest (higress-plugin-server:latest)
Associated with plugin version (higress-plugin-server:1.0.0)
2.3 Configuring plug-in pull policy
Default policy IfNotPresent
In Helm Chart in the higress-gateway, the default setting imagePullPolicy: IfNotPresent is avoided from frequent pulling affecting performance.
Sample configuration:
wasm:
plugin:
imagePullPolicy: IfNotPresent
2.4 K8s deployment should be orchestrated into the helm of the alibaba/higress warehouse
higress integrated environment testing
Deploy into the higress test environment, configure higress-gateway to download the plug-in from the higress-plugin-server node, and test whether it is OK.
2.6 The entire process
Control components such as higress-console support environment variables and support the default issuance of plug-ins to use file server solutions.
2.7 User Documentation
Installation Guide: How to install higress-plugin-server through Helm.
Configuration instructions: How to configure the plug-in download address of higress-gateway.
Custom Build: How to replace plugin files and build custom images.
Troubleshooting: Solutions for common problems (such as 404 plugin files, performance issues).
The text was updated successfully, but these errors were encountered:
github-actionsbot
changed the title
higress-plugin-server开发方案
higress-plugin-server开发方案 || higress-plugin-server development plan
May 23, 2025
Thanks, very detailed design. Let me add some background:
The wasm plug-in mechanism of higress is to decouple the life cycle (version) of the plug-in from the life cycle (version) of the gateway, so that the plug-in can be flexibly updated without upgrading the gateway.
However, judging from feedback from some community users, there is still a need to let the plug-in version follow the gateway version, such as for the sake of stability and consistency, as well as privatization deployment in a network isolation environment.
I will focus on the solution to the actual needs of these users in subsequent PRs, such as linkage with Higress Console, which may be a point to pay attention to.
Uh oh!
There was an error while loading. Please reload this page.
关联 issue: #2232 #2280
1 需求分析与架构设计
1.1 核心需求
功能:提供 HTTP 文件服务器,支持网关通过 http://file-server/plugins/plugin-name/version/plugin.wasm 下载 Wasm 插件。
高可用性:文件服务器需作为核心组件部署,保障 SLA。
版本管理:镜像需与插件版本绑定,响应 wasm 插件相关 PR ,支持自动构建和人工部署。
兼容性:与现有 OCI 插件加载方式共存,用户可配置插件拉取策略(如 IfNotPresent ),需要测试验证 Always 策略时,文件服务器的方式是否能感知到变化,并更新插件内容。(例如对比文件的 md5 )。
1.2 架构设计
独立组件:新建 higress-plugin-server 仓库,包含:
集成方式:
2 具体开发方案
2.1 新建仓库与代码结构
创建仓库
在 higress-group 下新建仓库 higress-plugin-server 。(我先在本地和个人 github 账号下新建一个仓库)
目录结构( plugins 全部下载放到仓库里,同时提供从 OCI 仓库拉取插件的脚本,可配置参数选择直接打包或者拉取远程仓库中的插件)
2.2 实现插件和镜像版本管理
版本更新策略
镜像版本管理
2.3 配置插件拉取策略
默认策略 IfNotPresent
2.4 K8s 部署,要编排进 alibaba/higress 仓库的 helm 中
2.5 测试与验证
部署到 higress 测试环境中,配置 higress-gateway 使其从 higress-plugin-server 节点中下载插件,测试是否 OK 。
2.6 全流程
higress-console 等管控组件支持环境变量,支持默认下发插件使用文件服务器方案。
2.7 用户文档
Related issue: #2232 #2280
#1 Requirements Analysis and Architecture Design
1.1 Core Requirements
Function: Provides an HTTP file server, and supports the gateway to download the Wasm plug-in through http://file-server/plugins/plugin-name/version/plugin.wasm.
High Availability: The file server needs to be deployed as a core component to ensure SLA.
Version management: The mirror needs to be bound to the plug-in version, respond to the wasm plug-in-related PR, and supports automatic construction and manual deployment.
Compatibility: **Coexist with existing OCI plug-in loading methods. Users can configure plug-in pulling policies (such as IfNotPresent). It is necessary to test and verify whether the file server's method can perceive changes when verifying the Always policy and update the plug-in content. (e.g. md5 of comparison file). **
1.2 Architectural Design
Independent components: Create a new higress-plugin-server repository, including:
Integration method:
#2 Specific development plan
2.1 Create a new repository and code structure
Create a warehouse
Create a new repository under higress-group higress-plugin-server. (I will first create a new warehouse under my local and personal github account)
Directory structure (all plugins are downloaded and placed in the repository, and scripts are provided to pull plugins from the OCI repository. You can configure parameters to directly package or pull plugins in the remote repository)
2.2 Implement plug-in and mirror version management
Version update strategy
Mirror version management
2.3 Configuring plug-in pull policy
Default policy IfNotPresent
2.4 K8s deployment should be orchestrated into the helm of the alibaba/higress warehouse
2.5 Testing and Verification
Deploy into the higress test environment, configure higress-gateway to download the plug-in from the higress-plugin-server node, and test whether it is OK.
2.6 The entire process
Control components such as higress-console support environment variables and support the default issuance of plug-ins to use file server solutions.
2.7 User Documentation
The text was updated successfully, but these errors were encountered: