通用数据初始化插件
概述
项目地址:https://github.com/goodrain/data-initer-plugin
这是一个用于初始化数据的插件,适用于包括 Rainbond 在内的所有基于 Kubernetes 体系的云平台使用。
其基本的原理,是利用 Kubernetes 的 init容器 实现的。插件所在的容器会在业务容器启动之前运行直至完成,通过定义好的下载、解压逻辑,将事先准备好的初始化数据压缩包(仅支持 zip 、tgz、 tar.gz 三种格式)解压到目标目录中去,下载过程支持断点续传。当然,我们要事先将目标目录进行持久化的设置。
插件需要的环境变量配置如下:
ENV | VALUE | Tip |
---|---|---|
FILE_URL | url | 初始化文件下载地址 |
FILE_PATH | path to dir | 单个目录初始化时,指定持久化目录地址;多目录初始化时,指定 / |
EXTRACT_FILE | true/false | 默认自动对初始化文件进行解压 |
DOWNLOAD_ARGS | -X ,--xx | 适用于 wget 的额外命令行参数 |
LOCK_PATH | path to dir | 锁文件保存路径,指定任意存在的持久化目录 |
DEBUG | anything true | 开启 Debug 日志 |
在 Rainbond 构建插件
Rainbond 的插件机制中,有对 init 容器的天然支持 —— 初始化类型插件。
1. 新建插件
2. 填写构建源信息
关键信息包括:
- 源码地址:https://github.com/goodrain/data-initer-plugin.git 当选择Dockerfile安装时,需要提供的代码地址
- 代码版本:main
接下来点击创建插件,等待构建成功即可。