go-atomci / atomci

🐳 为中国企业而来,以应用为中心的云原生cicd平台
https://go-atomci.github.io/atomci-press/
Apache License 2.0
215 stars 49 forks source link

构建失败,jenkins控制台报错显示:Failed to parse yaml #194

Open Linwenqiang-git opened 1 year ago

Linwenqiang-git commented 1 year ago

运行环境

问题描述

按照如下步骤,环境均已配置完成:

系统基础配置 ->服务集成(K8s、harbor、jenkins) ->编译环境 ->代码源集成(github、gitee、gitlab)

创建应用(具体的服务) -> 选择代码源(系统配置的代码源) -> 仓库路径 -> 编译环境

创建项目 -> 项目环境(dev、test、online) -> 项目流程(构建、部署、人工卡点) -> 关联代码仓库(选择已创建好的应用) -> 应用编排 -> 创建流水线 -> 选择流程 -> 选择分支 -> 构建部署 -> jenkins拉取构建服务 -> 部署到K8s jenkins与K8s可正确连接,且K8s相关插件正确安装 测试过两个场景,报错一致: 第一种:编排文件按照视频用官网默认的; 第二种:不填写编排文件; 构建均失败,jenkins控制台报错如下: Started by user administrators [Pipeline] Start of Pipeline [Pipeline] podTemplate [Pipeline] // podTemplate [Pipeline] End of Pipeline hudson.remoting.ProxyException: io.fabric8.kubernetes.client.KubernetesClientException: name not specified for an operation requiring one. at io.fabric8.kubernetes.client.dsl.internal.BaseOperation.requireFromServer(BaseOperation.java:182) at io.fabric8.kubernetes.client.dsl.internal.BaseOperation.get(BaseOperation.java:142) at io.fabric8.kubernetes.client.dsl.internal.BaseOperation.get(BaseOperation.java:93) at org.csanchez.jenkins.plugins.kubernetes.PodTemplateUtils.parseFromYaml(PodTemplateUtils.java:610) at org.csanchez.jenkins.plugins.kubernetes.PodTemplateUtils.validateYamlContainerNames(PodTemplateUtils.java:639) at org.csanchez.jenkins.plugins.kubernetes.PodTemplateUtils.validateYamlContainerNames(PodTemplateUtils.java:629) at org.csanchez.jenkins.plugins.kubernetes.pipeline.PodTemplateStepExecution.start(PodTemplateStepExecution.java:145) at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:322) at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:196) at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:124) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:47) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20) Caused: hudson.remoting.ProxyException: java.lang.RuntimeException: Failed to parse yaml: " apiVersion: v1 kind: Pod metadata: namespace: devops spec: containers:

截图

截图一直上传失败,直接复制了控制台信息

colynn commented 1 year ago

添加下『项目流程』包含哪些阶段, 及关联的任务模板的配置

Linwenqiang-git commented 1 year ago

任务模板采用的系统默认的:应用构建->应用部署->人工卡点 image 目前在第一个阶段,应用构建出现上述问题 image

Linwenqiang-git commented 1 year ago

image

colynn commented 1 year ago

类似下图,你添加下关联应用的编译环境 再试下

image

上图编译环境的来源是这里

image
Linwenqiang-git commented 1 year ago

类似下图,你添加下关联应用的编译环境 再试下 image

上图编译环境的来源是这里 image

image 不行,还是和上面一样的报错

colynn commented 1 year ago

系统管理 下的 选择的编译环境的详情麻烦也发出来看下

Linwenqiang-git commented 1 year ago

系统管理 下的 选择的编译环境的详情麻烦也发出来看下 都是默认的,没有修改过,麻烦在帮忙看下

image image image image image

Linwenqiang-git commented 1 year ago

image image 找了下源码,K8s Yaml文件的containers节点应该是不允许有重复Key的, 麻烦确认一下这是否是个bug

colynn commented 1 year ago

逻辑上 name前有 - 表示为两个条目,

Linwenqiang-git commented 1 year ago

逻辑上 name前有 - 表示为两个条目,

那会跟K8s插件版本之类的有关系吗? 目前整体流程还没跑通,个人感觉依赖jenkins过重,能否替换成一个具备构建环境的容器来代替? yaml文件需要自己编写,有些繁琐。 还会持续关注,有机会希望也能够参与进来

colynn commented 1 year ago

你可以确认下 对应生成jenkins的 pipeline的代码 是否符合预期,如果符合预期那就有可能是kubernetes插件版本不一致导致的问题,

另外v1.0 重度依赖jenkins, v2.0会引入 argo-workflow

colynn commented 1 year ago

逻辑上 name前有 - 表示为两个条目,

那会跟K8s插件版本之类的有关系吗? 目前整体流程还没跑通,个人感觉依赖jenkins过重,能否替换成一个具备构建环境的容器来代替? yaml文件需要自己编写,有些繁琐。 还会持续关注,有机会希望也能够参与进来

使用的jenkins是哪个版本?我复现下问题

Linwenqiang-git commented 1 year ago

image

colynn commented 1 year ago

@Linwenqiang-git please confirm if can we close this issue.