1

我想知道是否可以动态配置全局代理。

我需要在 Kubernetes 或 VM 上运行的不同 Jenkins 环境中运行我的管道。

当我必须在 VM 中运行管道时,我需要docker在 Kubernetes 上运行时使用代理,我需要使用kubernetes代理。

我试图引用代理并使用此引用,但它不起作用。

我试过的一些例子:

def myAgent = {
    return {
        kubernetes {
            containerTemplate {
                name 'maven-container'
                image 'maven:3.0.6'
                ttyEnabled true
                command 'cat'
            }
            defaultContainer 'maven-container'
        }
    }
}

pipeline {
  agent myAgent()
  //...
}

/////////////////

kube = {
    containerTemplate {
        name 'maven-container'
        image 'maven:3.0.6'
        ttyEnabled true
        command 'cat'
    }
    defaultContainer 'maven-container'
}

pipeline {

  agent {
    kubernetes kube
  }
}

任何帮助将不胜感激。

谢谢塞诺尔

4

1 回答 1

1

问题是代理值是在管道开始运行之前评估的,而不是在阶段即将运行时评估。这有点违反直觉,但我们到了。

您可以通过在声明之前运行脚本化管道来“欺骗系统”,如本答案中所述。

于 2020-03-02T21:23:21.340 回答