如何使用管道环境变量配置Jenkins代理?
我尝试使用环境变量来配置Jenkins代理,如下所示:如何使用管道环境变量配置Jenkins代理?,jenkins,kubernetes,Jenkins,Kubernetes,我尝试使用环境变量来配置Jenkins代理,如下所示: pipeline { environment { TEST = "test" } agent { kubernetes { label 'kubernetes' defaultContainer 'jnlp' yaml """ apiVersion: v1 kind: Pod metadata: labels: name: "${env.TEST}" ...
pipeline {
environment {
TEST = "test"
}
agent {
kubernetes {
label 'kubernetes'
defaultContainer 'jnlp'
yaml """
apiVersion: v1
kind: Pod
metadata:
labels:
name: "${env.TEST}"
...
env.MY_VALUE = "some value"
但是${env.TEST}
显示为null
。使用${env.BUILD\u NUMBER}
的效果与预期一致,因此代理似乎无法访问管道中定义的环境变量
有什么办法可以让它工作吗?你基本上是对的。env.VALUE用于特定的用户环境变量(例如,如果我在设置了KUBECONFIG的代理环境中运行jenkins,根据AMI或其他方式,这将被视为env.KUBECONFIG)。这是令人困惑的,但通常在库中定义全局环境变量如下:
pipeline {
environment {
TEST = "test"
}
agent {
kubernetes {
label 'kubernetes'
defaultContainer 'jnlp'
yaml """
apiVersion: v1
kind: Pod
metadata:
labels:
name: "${env.TEST}"
...
env.MY_VALUE = "some value"
当引用env.VALUE时,它是您正在检查的实际用户环境变量。对于在环境闭包中设置的值,可以通过MY_值调用它们:
pipeline {
environment {
TEST = "test"
}
agent {
kubernetes {
label 'kubernetes'
defaultContainer 'jnlp'
yaml """
apiVersion: v1
kind: Pod
metadata:
labels:
name: "${TEST}"
...
你基本上是对的。env.VALUE用于特定的用户环境变量(例如,如果我在设置了KUBECONFIG的代理环境中运行jenkins,根据AMI或其他方式,这将被视为env.KUBECONFIG)。这是令人困惑的,但通常在库中定义全局环境变量如下:
pipeline {
environment {
TEST = "test"
}
agent {
kubernetes {
label 'kubernetes'
defaultContainer 'jnlp'
yaml """
apiVersion: v1
kind: Pod
metadata:
labels:
name: "${env.TEST}"
...
env.MY_VALUE = "some value"
当引用env.VALUE时,它是您正在检查的实际用户环境变量。对于在环境闭包中设置的值,可以通过MY_值调用它们:
pipeline {
environment {
TEST = "test"
}
agent {
kubernetes {
label 'kubernetes'
defaultContainer 'jnlp'
yaml """
apiVersion: v1
kind: Pod
metadata:
labels:
name: "${TEST}"
...
至于env.BUILD_NUMBER或其他jenkins特定值的引用,当传递作业上下文时,这些值将加载到worker代理中。它们是为作业的用户会话全局设置的,因此具有特定于正在运行作业的特定环境变量。要查看jenkins提供的所有可用环境变量,请转到参考env.BUILD_NUMBER或其他jenkins特定值,这些值在传递作业上下文时加载到worker agent中。它们是为作业的用户会话全局设置的,因此具有特定于正在运行作业的特定环境变量。要查看jenkins提供的所有可用环境变量,请转到我看不到这样的属性:类的测试:WorkflowScript我看不到这样的属性:类的测试:WorkflowScript