0.23升级0.24问题汇总

  • Choerodon平台版本: 0.23.0

  • 遇到问题的执行步骤:

  • 文档地址:

  • 环境信息(如:节点信息):

  • 报错日志:
    第一步升级chartmuseum就报错了

[root@juyi-01 update3]# helm upgrade --install chartmuseum c7n/chartmuseum \
>     -f chartmuseum.yaml \
>     --version 2.15.0 \
>     --namespace c7n-system
Error: UPGRADE FAILED: rendered manifests contain a resource that already exists. Unable to continue with update: Deployment "chartmuseum-chartmuseum" in namespace "c7n-system" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "chartmuseum"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "c7n-system"
[root@juyi-01 update3]#
是不兼容吗? 少了这么多key?

chartmuseum 升级步骤没有问题。

helm 版本是什么?

你把 chartmuseum 的deployment 发一下(注意保护隐私)

默认 chartmuseum deployment会有下面的内容

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
    meta.helm.sh/release-name: chartmuseum
    meta.helm.sh/release-namespace: c7n-system
  creationTimestamp: "2021-05-17T03:17:08Z"
  generation: 1
  labels:
    app: chartmuseum
    app.kubernetes.io/managed-by: Helm
    chart: chartmuseum-2.6.0
    heritage: Helm
    release: chartmuseum

我私信发你下

helm3,chartmuseum 是很早前装的,应该是c7n 0.16一路升级上来的

建议删除旧的 chartmuseum 直接安装最新的版本的chartmuseum

需要挂载旧的pvc

...
persistence:
  enabled: true
  existingClaim: chartmuseum-pvc
...
Caused by: liquibase.exception.MigrationFailedException: Migration failed for change set script/db/notify_message_setting.groovy::2020-08-28-fix-message-data::xiangwang04@mail.com:
     Reason: liquibase.exception.DatabaseException: Duplicate key name 'UK_NOTIFY_MESSAGE_SETTING_U1' [Failed SQL: CREATE INDEX UK_NOTIFY_MESSAGE_SETTING_U1 ON hzero_message.NOTIFY_MESSAGE_SETTING(NOTIFY_TYPE, CODE, PROJECT_ID, EVENT_NAME, ENV_ID)]
	at liquibase.changelog.ChangeSet.execute(ChangeSet.java:619) ~[liquibase-core-3.5.5.jar!/:na]
	at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:51) ~[liquibase-core-3.5.5.jar!/:na]
	at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:79) ~[liquibase-core-3.5.5.jar!/:na]
	at liquibase.Liquibase.update(Liquibase.java:214) ~[liquibase-core-3.5.5.jar!/:na]
	at liquibase.Liquibase.update(Liquibase.java:192) ~[liquibase-core-3.5.5.jar!/:na]
	at liquibase.Liquibase.update(Liquibase.java:188) ~[liquibase-core-3.5.5.jar!/:na]
	at org.hzero.installer.liquibase.LiquibaseExecutor.load(LiquibaseExecutor.java:306) ~[hzero-installer-0.2.6.RELEASE.jar!/:0.2.6.RELEASE]
	at org.hzero.installer.liquibase.LiquibaseExecutor.runToDb(LiquibaseExecutor.java:200) ~[hzero-installer-0.2.6.RELEASE.jar!/:0.2.6.RELEASE]
	at org.hzero.installer.liquibase.LiquibaseExecutor.execute(LiquibaseExecutor.java:116) ~[hzero-installer-0.2.6.RELEASE.jar!/:0.2.6.RELEASE]
	... 16 common frames omitted
Caused by: liquibase.exception.DatabaseException: Duplicate key name 'UK_NOTIFY_MESSAGE_SETTING_U1' [Failed SQL: CREATE INDEX UK_NOTIFY_MESSAGE_SETTING_U1 ON hzero_message.NOTIFY_MESSAGE_SETTING(NOTIFY_TYPE, CODE, PROJECT_ID, EVENT_NAME, ENV_ID)]
	at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:309) ~[liquibase-core-3.5.5.jar!/:na]
	at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:55) ~[liquibase-core-3.5.5.jar!/:na]
	at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:113) ~[liquibase-core-3.5.5.jar!/:na]
	at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1277) ~[liquibase-core-3.5.5.jar!/:na]
	at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1259) ~[liquibase-core-3.5.5.jar!/:na]
	at liquibase.changelog.ChangeSet.execute(ChangeSet.java:582) ~[liquibase-core-3.5.5.jar!/:na]
	... 24 common frames omitted
Caused by: java.sql.SQLSyntaxErrorException: Duplicate key name 'UK_NOTIFY_MESSAGE_SETTING_U1'
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) ~[mysql-connector-java-8.0.15.jar!/:8.0.15]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.15.jar!/:8.0.15]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.15.jar!/:8.0.15]
	at com.mysql.cj.jdbc.StatementImpl.executeInternal(StatementImpl.java:782) ~[mysql-connector-java-8.0.15.jar!/:8.0.15]
	at com.mysql.cj.jdbc.StatementImpl.execute(StatementImpl.java:666) ~[mysql-connector-java-8.0.15.jar!/:8.0.15]
	at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:307) ~[liquibase-core-3.5.5.jar!/:na]
	... 29 common frames omitted

message 会报加索引重复,造成失败,删除对应索引即可

[root@juyi-01 ~]# helm upgrade --install elasticsearch-kb c7n/elasticsearch-kb \
>   --reuse-values \
>   --version 0.24.0 \
>   --namespace c7n-system --timeout 700s
Error: UPGRADE FAILED: rendered manifests contain a resource that already exists. Unable to continue with update: Deployment "elasticsearch-kb" in namespace "c7n-system" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "elasticsearch-kb"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "c7n-system"
[root@juyi-01 ~]#

升级elasticsearch-kb 会报错,由于没有做持久化 可以直接 uninstall 然后再执行安装操作

升级devops

    --set env.open.DEVOPS_ANSIBLE_IMAGE=registry.cn-shanghai.aliyuncs.com/c7n/kubeadm-ha:0.1.3

少了个 \

升级 prod-repo 也少了一堆 \

已修复

{"failed":true,"code":"{\"error\":\"open /storage/operation/juyi/qita-2021.5.20-211848-dev.tgz: permission denied\"}","message":"io.choerodon.devops.infra.exception.DevopsCiInvalidException: {\"error\":\"open /storage/operation/juyi/qita-2021.5.20-211848-dev.tgz: permission denied\"}\n\tat io.choerodon.devops.app.service.impl.AppServiceVersionServiceImpl.create(AppServiceVersionServiceImpl.java:137)\n\tat io.choerodon.devops.app.service.impl.AppServiceVersionServiceImpl$$FastClassBySpringCGLIB$$8f3ecff3.invoke(<generated>)\n\tat org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n\tat org.springframework.transaction.interceptor.TransactionInterceptor$$Lambda$1031/0x000000008c059130.proceedWithInvocation(Unknown Source)\n\tat org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\n\tat org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n\tat org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\n\tat io.choerodon.devops.app.service.impl.AppServiceVersionServiceImpl$$EnhancerBySpringCGLIB$$c38e9058.create(<generated>)\n\tat io.choerodon.devops.api.controller.v1.CiController.create(CiController.java:103)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\n\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\n\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:891)\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)\n\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n\tat

升级 chartmuseum ci报没权限。。。 对了下 账号密码都没问题呀。。。

需要去对应存储pv,把 chartmuseum存储目录 授权777解决问题了。。。

是不是 只能 chartmuseum 以前持久化的 给干掉??



制品库管理 403 没权限。。。一直转圈

部署的repo的版本是多少?

已经好了