手动应用部署失败

  • Choerodon平台版本:0.22.0

  • 运行环境:自主搭建

  • 问题描述:
    持续集成中打包docker镜像以及chart包显示成功的,但是在进行手动部署到K8S集群时,部署失败,错误日志显示Invalid remote: origin: ,并且我尝试删除实例,也出现Invalid remote: origin:这个提示,也删不了。

  • 执行的操作:
    如:我是以管理员身份部署的

你好,可能的原因:

  1. gitlab不正常(可能是功能不正常,可能是访问地址有问题)
  2. 在devops-service的values中的SERVICES_GITLAB_SSHURL值不对,这里面填的gitlab的ssh地址(需要带上端口)
  3. 从devops-service的pod中访问gitlab不正常

image

首先非常感谢大佬的回复和技术分析,根据您的建议,我验证发现如下:

1.gitlab WEB访问没有问题,另外我通过ssh的方式clone仓库源码到本地以及推送到gitlab也都是没有问题的,(gitlab SSH带端口的)

2.我这边持续集成也是没有问题的,包括docker构建,chart包构建,并且chart压缩包已经在NFS中发现,我直接通过helm install NFS中tgz chart包是可以部署的

3.在devops-service的values中的 SERVICES_GITLAB_SSHURL 值经核实是带上端口的,另外我直接在devops-service容器中能正常访问gitlab

另外我猪齿鱼版本是最新的0.22,一键部署;K8S是v1.17.5

以下是截图:


还望大佬能帮忙分析一下,万分感谢

请点击蓝色方框下的重试按钮,然后观察devops-service日志,然后提供下异常信息
image

image

这个地方的值应该是你的gitlab ssh地址(带上端口号),麻烦再看看分步安装的文档,将这个值用helm upgrade命令更新下

image


下面是报错日志信息:
2020-08-31 11:53:42.785 INFO 8 — [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Force full registry fetch : false
2020-08-31 11:53:42.785 INFO 8 — [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Application is null : false
2020-08-31 11:53:42.785 INFO 8 — [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Registered Applications size is zero : false
2020-08-31 11:53:42.785 INFO 8 — [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Application version is -1: false
2020-08-31 11:53:42.785 INFO 8 — [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Getting all instance registry info from the eureka server
2020-08-31 11:53:42.788 INFO 8 — [freshExecutor-0] com.netflix.discovery.DiscoveryClient : The response status is 200
2020-08-31 11:53:44.031 WARN 8 — [nio-8060-exec-1] o.h.core.exception.BaseExceptionHandler : Common exception, request: RequestInfo{URI=/v1/projects/1/app_service/2/git/page_branch_by_options, method=public org.springframework.http.ResponseEntity<io.choerodon.core.domain.Page<io.choerodon.devops.api.vo.BranchVO>> io.choerodon.devops.api.controller.v1.DevopsGitController.pageBranchByOptions(java.lang.Long,java.lang.Long,io.choerodon.mybatis.pagehelper.domain.PageRequest,java.lang.String)}, user: CustomUserDetails{userId=1, username=admin, roleId=12, roleIds=[10, 12], siteRoleIds=[], tenantRoleIds=[10, 12], roleMergeFlag=true, tenantId=1, tenantIds=[1, 0], organizationId=0, isAdmin=true, clientId=null, timeZone='GMT+8, language='zh_CN}

io.choerodon.core.exception.CommonException: error.branch.get
at io.choerodon.devops.api.controller.v1.DevopsGitController.lambda$pageBranchByOptions$9(DevopsGitController.java:259)
at io.choerodon.devops.api.controller.v1.DevopsGitController$$Lambda$978/00000000E801ACC0.get(Unknown Source)
at java.util.Optional.orElseThrow(Unknown Source)
at io.choerodon.devops.api.controller.v1.DevopsGitController.pageBranchByOptions(DevopsGitController.java:259)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:891)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.hzero.mybatis.parser.autoconfigure.SqlParserInterceptorConfiguration$SqlParserAutoClearFilter.doFilter(SqlParserInterceptorConfiguration.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.hzero.core.jackson.config.ObjectMapperConfiguration$SensitiveAutoCloseFilter.doFilter(ObjectMapperConfiguration.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:90)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.hzero.starter.keyencrypt.mvc.EncryptHeaderContextFilter.doFilter(EncryptHeaderContextFilter.java:34)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at io.choerodon.resource.filter.JwtTokenFilter.doFilter(JwtTokenFilter.java:106)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:155)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:123)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:108)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

2020-08-31 11:53:44.035 WARN 8 — [nio-8060-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [io.choerodon.core.exception.CommonException: error.branch.get]
2020-08-31 11:53:45.788 INFO 8 — [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Disable delta property : true
2020-08-31 11:53:45.788 INFO 8 — [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Single vip registry refresh property : null
2020-08-31 11:53:45.788 INFO 8 — [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Force full registry fetch : false
2020-08-31 11:53:45.788 INFO 8 — [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Application is null : false
2020-08-31 11:53:45.788 INFO 8 — [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Registered Applications size is zero : false
2020-08-31 11:53:45.788 INFO 8 — [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Application version is -1: false

上面那个部署问题解决了。感谢大佬的耐心支持 :grinning:,这个gitlab ssh地址的value是最新版一键安装的BUG,你们可以完善一下的。
还有一个问题就是我这边点击“代码管理”菜单,打不开直接弹出报错提示:
image
这个要看哪个容器的日志啊

1 个赞

你好,证书这个问题我解决了,现在就是代码管理功能打开报错不知道什么情况

另外一个问题是应用部署中无法创建证书,菜单显示灰色

获取不到分支这个问题是必现吗?

无法创建证书请到集群管理页面 -> 组件标签页, 安装certManager组件

1 个赞

我也遇到 这个问题了 你解决了吗
获取工程分支名失败!!!

在界面上查看分支失败后, 查看下devops-service的日志

大佬,我目前版本是最新0.23的,现在还是出现手动部署失败,提示:git pull失败;

  1. gitlab本地通过git clone没有问题
  2. devops-service中的SERVICES_GITLAB_SSHURL是对的,如图:
    image
  3. 从devops-service的pod中能ping通gitlab地址,但是通过git clone 提示没有git命令
  4. devops-service报错日志如下:

    大佬,能帮我分析一下吗,谢谢

git pull失败那张日志图中显示的是连接超时,你用自己的电脑用git clone 图中的地址看看可以吗?