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

Pick Nodes using Multiple Labels

XMLWordPrintable

      I would like to have Hudson decide how best to utilize build nodes by specifying that a build node must (or must not) have one or more labels. Basically I envision this having a main collection of Pivot labels (like the current interface) and another list of labels that are required on a node for it to be selected by the queue. Consider the following list of nodes with corresponding labels

      Nodes

      A - label1, label2, label3, OS1
      B - label1, label3, OS2
      C - label1, label2, OS2
      D - label1, OS3
      E - label1, OS3

      Matrix Job

      Pivot Labels (I need to cover all of these once) - OS1, OS2, OS3
      Node Selection Rules - (labels.contains(label1) and !labels.contains(label3))

      In this scenario, when this Matrix Job kicks off it will select nodes A, C, and D or E (whichever is available first) to cover its Pivot labels, but will ignore B since it does not pass the node selection rules. It will also ignore one of D or E because it only needs one of them to fulfill its OS3 requirement.

      My main use case for this is to maximize the utilization of our Hudson nodes and have Hudson decide whether or not a node has everything necessary to run a job (without having to reconfigure the job). There are times when a particular matrix sub-job will block when there are nodes available which could support it, but due to the limitations in configuration (only being able to select specific nodes or a one-dimensional set of labels) I can't get it to do what I want. Is this viable to implement, and is it even the best way to solve the problem?

            Unassigned Unassigned
            mbaker000 mbaker000
            Votes:
            2 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: