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

support migrating implementation for same Pipeline keyword

      for JENKINS-48050 we expect to offer an alternate implementation for "docker" agent type. This implementation should be triggered by a high level option set for the whole pipeline.

      A generic mechanism to support such a global implementation switch would offer opportunities to do the same in another context

          [JENKINS-49748] support migrating implementation for same Pipeline keyword

          I expected we could switch to a complete distinct implementation for "agent:docker" implementation but would require SymbolLookup#findDescriptor to return a list of candidates, not just a single matching instance, then check which one offer best match for configured options. abayer do you think it would make sense to follow up in this direction and prepare a PR for structs-plugin ?

          Nicolas De Loof added a comment - I expected we could switch to a complete distinct implementation for "agent:docker" implementation but would require SymbolLookup#findDescriptor to return a list of candidates, not just a single matching instance, then check which one offer best match for configured options. abayer do you think it would make sense to follow up in this direction and prepare a PR for structs-plugin ?

          After discussion we concluded this will be implemented with a fresh new "container" agent type, which declarative pipeline will delegate to a new ContainerAgent extension point, with default implementation to rely on docker-plugin's dockerNode().

          kubernetes-plugin (and maybe others) could then offer an alternate implementation, offering transparent migration to another infrastructure.

          Nicolas De Loof added a comment - After discussion we concluded this will be implemented with a fresh new "container" agent type, which declarative pipeline will delegate to a new ContainerAgent extension point, with default implementation to rely on docker-plugin's dockerNode(). kubernetes-plugin (and maybe others) could then offer an alternate implementation, offering transparent migration to another infrastructure.

            Unassigned Unassigned
            ndeloof Nicolas De Loof
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: