tidb-opertor加载参数失败

【 TiDB 使用环境】测试环境
【 TiDB 版本】

【复现路径】做过哪些操作出现的问题

【遇到的问题:问题现象及影响】

【资源配置】

【TiDB Operator 版本】:
1.4.6

【K8s 版本】:
【附件:截图/日志/监控】

将1.3.3版本operator升级到1.4.6配置报错,

配置如下:

升级命令:
/root/helm/linux-amd64/helm upgrade tidb-operator ./tidb-operator --namespace=tidb-admin

报错内容如下:
Error: UPGRADE FAILED: error validating “”: error validating data: ValidationError(Deployment.spec.template.spec.imagePullSecrets[0]): invalid type for io.k8s.api.core.v1.LocalObjectReference: got “string”, expected “map”

根据错误信息,可以看出在升级 TiDB Operator 时,出现了一个验证错误,其中 Deployment.spec.template.spec.imagePullSecrets[0] 的类型不正确,应该是一个 map 类型,但是实际上是一个 string 类型。

这个错误通常是由于 Helm Chart 中的某个配置项格式不正确导致的。为了解决这个问题,您可以尝试以下方法:

  1. 检查 Helm Chart 中的配置项,确保格式正确。可以参考 TiDB Operator 的官方文档 [1] 中的配置示例,检查您的配置是否符合要求。

  2. 如果您使用的是自定义的 Helm Chart,可以尝试使用官方提供的 Helm Chart 进行升级。官方提供的 Helm Chart 可以从 TiDB Operator 的 GitHub 仓库中获取 [2]

  3. 如果以上方法都无法解决问题,可以尝试卸载旧版本的 TiDB Operator,然后重新安装新版本的 TiDB Operator。卸载 TiDB Operator 的命令如下:

    helm uninstall tidb-operator --namespace=tidb-admin
    

    然后,您可以按照 TiDB Operator 的官方文档 [1] 中的步骤,重新安装 TiDB Operator。

直接上示例吧

这行注释掉就行

在 v1.3.3 也会报错,之前是怎么部署成功的

➜  ~ helm install tidb-operator pingcap/tidb-operator --namespace tidb-admin --version v1.3.3 -f values.yaml
Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.imagePullSecrets[0]): invalid type for io.k8s.api.core.v1.LocalObjectReference: got "string", expected "map"