Jenkins管道无法读取kubernetes部署文件

fykwrbwg  于 2023-03-17  发布在  Jenkins
关注(0)|答案(1)|浏览(268)

我设置了一个完整的CI/CD来构建一个Docker映像并将其部署到Kubernetes。一切都运行成功,但是管道找不到X1 M0 N1 X。
我已经安装了envsubst。
/var/lib/jenkins/工作空间/thop-后端_prod@tmp/持久性-86 e75 e61/script.sh:1:无法打开Kubernetes/部署。yml:无此文件

  • 环境替代物
  • 库贝特尔应用-f -

错误:没有传递要应用的对象
[管道] }
[kubernetes-cli] kubectl配置已清理

def kubeDeploy(String regName , String imageName , String imageVersion , String clusterCredentials , String url) {
    
    script.withKubeConfig([credentialsId: clusterCredentials, serverUrl: url]) {
        script.sh "envsubst < Kubernetes/deployment.yml | kubectl apply -f -"
        script.sh "envsubst < Kubernetes/service.yml | kubectl apply -f -"
    }
}
l7mqbcuq

l7mqbcuq1#

由于这是一个无法找到文件的问题,使用pwd应该会给予你当前所在的路径,而ls可以显示路径中存在的文件和文件夹列表。两者都使用,看看你是否在正确的文件夹中。
如果您的“Kubernetes”文件夹与Jenkinsfile沿着位于workspace文件夹中,您可以将script.withKubeConfig Package 为dir

dir($WORKSPACE) {
    script.withKubeConfig([credentialsId: clusterCredentials, serverUrl: url]) {
        script.sh "envsubst < Kubernetes/deployment.yml | kubectl apply -f -"
        script.sh "envsubst < Kubernetes/service.yml | kubectl apply -f -"
    }
}

如果以上都不起作用,请使用&&直接指定可以找到deployment.yml文件的目录:

script.withKubeConfig([credentialsId: clusterCredentials, serverUrl: url]) {
    script.sh "cd /path/to/Kubernetes/folder && envsubst < deployment.yml | kubectl apply -f -"
    script.sh "cd /path/to/Kubernetes/folder && envsubst < Kubernetes/service.yml | kubectl apply -f -"
}

相关问题