如何自定义构建产物中默认包含的插件
插件引用机制
LoongCollector 通过 插件引用配置文件 来定义要包含在构建产物中的插件,该文件中默认包含了LoongCollector 仓库中的所有插件。
同时,LoongCollector 也以同样的机制支持引入外部私有插件,关于如何开发外部插件,请参阅如何开发外部私有插件。LoongCollector 默认会检测仓库根目录下的 external_plugins.yml 文件来查找外部插件定义。
当执行诸如 make all 等构建指令时,该配置文件会被解析并生成 go import 文件到 plugins/all 目录下。
插件引用配置文件的格式定义如下:
# 需要注册的插件,按适用系统分类(以下为结构说明,# 表示 YAML 注释)
plugins:
common:
- gomod: code.private.org/private/custom_plugins v1.0.0 # 可选,外部插件 Go module
import: code.private.org/private/custom_plugins # 可选,代码中 import 的包路径
path: ../custom_plugins # 可选,replace 本地路径,用于调试
windows: []
linux: []
project:
replaces: [] # 可选,解决多模块依赖冲突
go_envs: # 可选,如私有仓库 GOPRIVATE
GOPRIVATE: "*.code.org"
git_configs: # 可选,私有仓库鉴权 url insteadof 等
url.https://user:token@github.com/user/.insteadof: https://github.com/user/
自定义构建产物中包含的插件
方式一:修改默认的 `plugins.yml` 或 `external_plugins` 文件
如前文所述,您可以通过直接修改默认的 插件引用配置文件 文件内容,来选择要包含在构建产物中的插件。
方式二:自定义文件
您也可以通过指定一个自定义的插件引用配置文件来指导构建,该文件可以是一个本地文件或者远程文件url,该文件的内容格式应当与默认的 plugins.yml文件一致。
假设您自定义的插件引用配置文件名为 /tmp/custom_plugins.yml,可以通过设置 PLUGINS_CONFIG_FILE 环境变量为该文件的路径来指导构建,如:
PLUGINS_CONFIG_FILE=/tmp/custom_plugins.yml make all
注:PLUGINS_CONFIG_FILE 支持多个配置文件路径,用英文逗号分割。