Jenkinsfile - 在步骤中找不到这样的DSL方法'属性'

时间:2018-06-01 16:42:53

标签: jenkins kubernetes jenkins-pipeline

如果没有properties部分,类似下面的Jenkins文件可以正常工作。但是当我添加properties Jenkins作业失败时

java.lang.NoSuchMethodError: No such DSL method 'properties' found among steps [archive, bat, build, catchError, checkout, container, containerLog, deleteDir, dir, dockerFingerprintFrom, dockerFingerprintRun, echo, error, .....

我也尝试将它放在根部分中,但结果相同。所以,我不知道现在放在哪里。

Jenkinsfile

def label = "worker-${UUID.randomUUID().toString()}"

podTemplate(label: label, containers: [
  containerTemplate(name: 'kubectl', image: 'lachlanevenson/k8s-kubectl:v1.8.8', command: 'cat', ttyEnabled: true)
],
volumes: [
]) {
  node(label) {
    properties(
      [
        [
          $class  : 'jenkins.model.BuildDiscarderProperty',
          strategy: [
            $class: 'LogRotator',
            numToKeepStr: '50'
          ]
        ],
        pipelineTriggers(
          [
            [
              $class: 'hudson.triggers.TimerTrigger',
              spec  : "*/5 * * * *"
            ]
          ]
        )
      ]
    )

    stage('Run kubectl') {
      container('kubectl') {
        withEnv([
            "ES_URL=elasticsearch.storage:9200"
        ]){
            sh """
               kubectl run -it --rm=true busybox-curl --image=yauritux/busybox-curl --restart=Never -- curl "$ES_URL"
            """
      }
    }
  }
}

Jenkins正在Kubernetes上运行。要设置Jenkins,我使用了stable/jenkins helm chart。

谢谢!

1 个答案:

答案 0 :(得分:2)

好的,我已经找到了问题所在。有些插件没有更新,显然会引起一些冲突。我更新了所有插件,但问题已经消失。