Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用管道环境变量配置Jenkins代理?_Jenkins_Kubernetes - Fatal编程技术网

如何使用管道环境变量配置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}" ...

我尝试使用环境变量来配置Jenkins代理,如下所示:

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