bk-ci icon indicating copy to clipboard operation
bk-ci copied to clipboard

feat: agent支持JDK自动升级

Open irwinsun opened this issue 2 years ago • 2 comments

What would you like to be added:

目前自动升级仅支持对devopsAgent,devopsDaemon, worker-agent.jar 等程序的升级,目前agent上一些老旧的jdk可能存在风险,需要有一个统一的自动升级能力。

Why is this needed: 目前agent上一些老旧的jdk可能存在风险,需要有一个统一的自动升级能力。以及后续可能会新增的第三方组件的升级。

irwinsun avatar Aug 03 '22 03:08 irwinsun

Agent侧设计: 1、 心跳逻辑增加上报 JDK版本信息(类似OpenJDK Runtime Environment (Tencent Kona 8.0.6-internal))、系统架构(amd64/arm64/mips64等等)

2、CheckUpgrade 升级逻辑接口上报jdk的版本, downloadUpgradeFiles要能支持下载jdk升级包, 下载后压缩先命名为jdk_${新版本名}, 并将路径刷新到AgentConfig.JdkHome 字段, 并调用SaveConfig 将值保存新增的Config.KeyJDKPath(暂定命名) 调用保存到 .agent.properties , 便于下面第34步的Config.GetJava后续能读取到新的路径,

3、 删除旧版本的JDK目录

4、Config.GetJava 函数兼容现有逻辑,原有jre/开头的(早期使用的是jre,所以命名是jre,其实是jdk),需要新增改为读取 AgentConfig.JdkHome ,该配置项上述第2步指定了jdk的真正路径Home,如文件不存在再兼容读取jre开头(保持旧逻辑)。

后台功能设计: 1、 利用 T_ENVIRONMENT_THIRDPARTY_AGENT 的AGENT_PROPS 字段,保存Agent上报基础信息 2、完善下载接口,让agent可指定要下载的升级文件 3、完善升级逻辑,增加对jdk的版本记录,确保能检测到agent侧的jdk 升级请求

irwinsun avatar Aug 03 '22 04:08 irwinsun

image 通过在redis中添加相关操作系统和架构的jdk版本第三行就可以例如 ** image ** 添加 OpenJDK 64-Bit Server VM Corretto-11.0.10.9.1 (build 11.0.10+9-LTS, mixed mode) 即可

tangruotian avatar Aug 26 '22 08:08 tangruotian