Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-55299

Read pod template yaml from library resource

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Minor
    • Resolution: Not A Defect
    • Component/s: kubernetes-plugin
    • Environment:
      Jenkins 2.150.1
      Kubernetes::Pipeline::DevOps Steps 1.5
      Kubernetes::Pipeline::Kubernetes Steps 1.5
      Kubernetes::Plugin 1.14.0
    • Similar Issues:

      Description

      I'd like to move pod definition from pipeline to a file resource in a shared library.
       
      My pipeline is like:

      pipeline {
          agent none
          stages {     
              stage('step-in-kubernetes') {
                  agent {
                      kubernetes {
                          label 'kube'
                          yamlFile libraryResource('myPod.yaml')
                      }
                  }       
                  stages {
                      stage('Checkout') {
                          steps {
                              checkout([$class: 'MercurialSCM', clean: true,
                                  source: 'https://acme.com/hg/myproject'])
                          }
                      }
      
                  } 
              }
          }
      }
      

       
      I put 'myPod.yaml' in resources folder of my library.
      I get an error saying that HG is not installed.

      But:

      • it's work if I used yaml property instead of yamlFile
      • libraryResource fails when using wrong filename
         

        Attachments

          Issue Links

            Activity

            Hide
            arnaud Arnaud Bourree added a comment -

            Issue $JENKINS-52259 adds yamlFile attribute to kubernetes agent

            Show
            arnaud Arnaud Bourree added a comment - Issue $ JENKINS-52259 adds yamlFile attribute to kubernetes agent
            Hide
            azelezni Alex Zeleznikov added a comment -

            "libraryResource" returns a string, not file, you can load pod templates from resource files this like so:

            pipeline {
              agent {
                kubernetes {
                  label "Jenkins-${env.JOB_NAME}"
                  yaml libraryResource('pod_templates/kube_agent.yaml')
                }
              }
            }
            

             

            Show
            azelezni Alex Zeleznikov added a comment - "libraryResource" returns a string, not file, you can load pod templates from resource files this like so: pipeline { agent { kubernetes { label "Jenkins-${env.JOB_NAME}" yaml libraryResource( 'pod_templates/kube_agent.yaml' ) } } }  
            Hide
            arnaud Arnaud Bourree added a comment -

            Your right, I should used yaml and not yamlFile because that is libraryResource which reads from file, not kubernetes plugin.

            I'll close the issue

             

            Show
            arnaud Arnaud Bourree added a comment - Your right, I should used yaml and not yamlFile because that is libraryResource which reads from file, not kubernetes plugin. I'll close the issue  
            Hide
            arnaud Arnaud Bourree added a comment -

            libraryResource read from file, we should use yaml and not yamlFile

            Show
            arnaud Arnaud Bourree added a comment - libraryResource read from file, we should use yaml and not yamlFile

              People

              • Assignee:
                csanchez Carlos Sanchez
                Reporter:
                arnaud Arnaud Bourree
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: