【发布时间】:2021-09-28 03:49:30
【问题描述】:
我在一个名为 jenkins-pipelines 的 git 存储库中有 jenkins 管道。我有多个 jenkins 实例每个环境一个。为了为所有环境保留一个管道,我将每个管道的环境特定变量外部化到 jenkins-pipelines git repo 中名为 config 的文件夹中。
这是我在 k8s 管道中用于读取管道配置的 sn-p。问题是管道配置在项目工作区中不可用,我必须编写条件 sn-p 来猜测和读取管道配置文件。有没有更好更直接的方法来解决这个问题?
sh '''#!/bin/bash
if [ -d 'config' ]; then
cat config/k8s.json
elif [ -d ../workspace@script ]; then
cat ../workspace@script/config/k8s.json
elif [ -d ../${JOB_NAME}@script ]; then
cat ../${JOB_NAME}@script/config/k8s.json
fi
'''
jenkins-pipelines repo k8s/config.json 中的示例配置:
{
"aws-env1": {
"state": "blah"
},
"azure-env1": {
"state": "blah2"
}
}
【问题讨论】:
-
你保留什么样的配置信息? Jenkins 是否在 k8s 上运行?
-
该配置主要用于 jenkins 管道。我在不同的云提供商上有几个不同的环境。我在配置文件中保留了这个环境特定的值,比如存储桶信息、jenkins 作业的 metzdata 等。 jenkins 不能在 k8s 上运行。
-
它是什么配置之王?每个应用程序和环境都是唯一的吗?或者只是每个环境?
-
更新问题。每个管道都有一个配置,包含所有环境详细信息。
-
好的,你有多个 Jenkins 实例,每个实例都使用相同的管道,但配置不同。那是对的吗?您是否关心该配置的 git 历史记录?
标签: jenkins jenkins-pipeline jenkins-groovy