v1.5.4版本tidb-operator spec.logBackupTemplate不能为空

【 TiDB 使用环境】测试环境 kubernetes环境 opertator为1.5.4版本
【 TiDB 版本】企业版7.1.0
【复现路径】创建bks时不置顶日志备份配置导致报错

【遇到的问题:问题现象及影响】
1、创建bks时指定logBackupTemplate为空,集群创建后会有一个bk创建失败
2、创建bks时不指定logBackupTemplate,则创建bks失败,报错信息为:
BackupSchedule.pingcap.com “basic-backup-schedule” is invalid: spec.logBackupTemplate: Invalid value: “null”: spec.logBackupTemplate in body must be of type object: “null”

问题:
1、在创建bks时可不可以不指定logBackupTemplate参数(因为有时候不需要开启日志备份)

你可以通过配置一个空的 logBackupTemplate 对象来绕过这个类型检查。以下是一个示例的 BackupSchedule YAML 文件:

  # 日志备份模板,配置为空对象
  logBackupTemplate: {}
2 个赞

1.5.4 不该有这个问题呀 :thinking:
https://github.com/pingcap/tidb-operator/commit/e03b1b22a7b64010f1bace36bfa788af14b20a53

1 个赞

:thinking:企业版?可以直接提工单吧 :yum:

K8s 对应版本发一下呢?

原则上可以加上这个配置,但在创建集群过程中会出发一个失败的bk任务,不是太友好

版本为1.19.5

我用2个版本的k8s集群做了个实验,过程如下

1、k8s版本信息如下

2、上传创建bks程序到两个k8s集群的测试目录,并执行程序

3、查看1.21版本集群的bks配置,并将其复制到1.19版本k8s集群中

4、在1.19版本k8s集群中执行复制的bks配置

创建bks程序:
main.go (3.8 KB)

如果是升上来的 operator,CRD 记得也更新下,或者看当前 CRD 里是否是 optional
https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/upgrade-tidb-operator

crd已经更新

官方文档上说是得讲k8s集群至少升级到20版本

这个地方有个疑问:
在1.19版本k8s集群中为什么调用operator接口创建bks失败,但是通过yaml文件创建bks却可以成功,而且这个yaml文件是在21版本中调用operator接口生成的,why?