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

Allow picking a lockable resource from a node label

    Details

    • Similar Issues:

      Description

      This plugin has really helped in the scenario of testing client-server, or cloud applications where we want to lock a deployment across multiple test jobs, however we end up duplicating configuration between lockable resources and node.  A really useful improvement to lockable resources would be to choose the resource from online nodes in a pool represented by a node label.

       

      For example, I currently configure:

      • node label "BACKEND_POOL" representing a pool of Jenkins nodes where I can deploy my applcation back end/services
      • lockable resources "SERVICE_POOL" with the identical list

      Now I have a pipeline like pseudocode: 

       

      stage("Build") {
          build()
      }
      RESOURCE = get lockable resource from SERVICE_POOL
      stage ("Deploy") {
          node (RESOURCE) {
                deploy()
         }
      stage ("Test1") {
         node ("Test") {
            Test1(server=RESOURCE)
         }
      }
      stage ("Test2") {
         node ("Test") {
             Test2 (server=RESOURCE)
         }
      }
      

      However, now I am maintaining the same list of resources in both the node label/pool and the lockable resource pool.  This leads to issues like nodes being locked for deployment even though they are offline, someone adding or deleting a resource from one pool but not the other, or someone taking a node offline in one place but not the other.

       

      Lockable resources should be able to lock a resource from online nodes in a node pool, and keep it locked across multiple stages that require using that resource but not as a node.

        Attachments

          Issue Links

            Activity

            Hide
            wgc123 D Pasto added a comment -

            JENKINS-44141  is talking about more complex data than the simple one to many relationship whereas this is integration with node labels/resources.  There is nothing in that ticket that covers this, and they are not necessarily related but certainly could be implemented together.

            Show
            wgc123 D Pasto added a comment - JENKINS-44141   is talking about more complex data than the simple one to many relationship whereas this is integration with node labels/resources.  There is nothing in that ticket that covers this, and they are not necessarily related but certainly could be implemented together.
            Hide
            aarondmarasco_vsi Aaron D. Marasco added a comment -

            I think this is a dupe/specialized case of JENKINS-44141.

            Show
            aarondmarasco_vsi Aaron D. Marasco added a comment - I think this is a dupe/specialized case of JENKINS-44141 .

              People

              • Assignee:
                Unassigned
                Reporter:
                wgc123 D Pasto
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: