Jenkins Podtemplate()不接受使用readFile或yamlFile的yaml文件

Jenkins Podtemplate()不接受使用readFile或yamlFile的yaml文件,jenkins,kubernetes,readfile,Jenkins,Kubernetes,Readfile,我的代码: podTemplate(label: slave_label, cloud: ${cloud_name}, readFile : 'deploy.yml') { } 我使用了yamlFile和readFile,但它不接受输入。bddrunner吊舱未启动 当我使用这种直接yaml方法时,它工作得很好。像这样: podTemplate(label: slave_label, cloud: ${cloud_name}, yaml: """ """) { } [...] podTem

我的代码:

podTemplate(label: slave_label, cloud: ${cloud_name}, readFile : 'deploy.yml') {

}
我使用了yamlFile和readFile,但它不接受输入。bddrunner吊舱未启动

当我使用这种直接yaml方法时,它工作得很好。像这样:

podTemplate(label: slave_label, cloud: ${cloud_name}, yaml: """ """) {
}
[...]
podTemplate(
  yaml: libraryResource('maven-build-release.yaml')) {
  node(POD_LABEL) {
    stage('Clone Source Code (Git)') {
[...]
如何修复此问题?

选项为yamlFile not readFile 请参见此示例

yaml:readFile“路径到文件”

必须注意的是,readFile仅在活动工作区内工作。这意味着您必须位于节点部分。

您的代码应该是:

podTemplate(label: slave_label, cloud: ${cloud_name}, yaml: readFile('deploy.yml')) {

}
编辑:更正了从yamlFile:到yaml:的大脑输入错误。
yamlFile不应在Jenkins脚本化管道中使用。

本周我遇到了这个问题,无法快速找到正确的解决方案

根据插件文档,要加载yaml文件,应使用readFile或readTrusted。这对于脚本化管道来说是错误的,因为这些命令只能在您已经拥有代理吊舱的情况下使用,这样您就不能自食其果了

我找到的解决方案是将所有yaml(如maven-build-release.yaml)放在resources/文件夹中,并在libraryResource的帮助下加载所需的配置,如下所示:

podTemplate(label: slave_label, cloud: ${cloud_name}, yaml: """ """) {
}
[...]
podTemplate(
  yaml: libraryResource('maven-build-release.yaml')) {
  node(POD_LABEL) {
    stage('Clone Source Code (Git)') {
[...]

您不需要使用yamlFile读取文件,但yamlFile仅在声明性管道中受支持。这个例子很好,但是第一行应该是yaml:readFile'path-to-file'@csanchez。感谢您指出。yamlFile仅在声明性管道中受支持。对于脚本,您需要yaml:readFile'thefile'