Skip to content

Jenkins Plugin Dependency Installation Inefficient Recursion #10833

@Hookyhook

Description

@Hookyhook

Summary

Using with_dependencies flag when using jenkins_plugin leads to ultra long task execution.

Potential Reason:

After a first quick investigation I noticed that in this plugins recent changes introduced a new recursion logic that seems very inefficient and problematic. Requests are never cached but called multiple times etc.

Issue Type

Bug Report

Component Name

jenkins_plugin

Ansible Version

12.0.0 (latest)

Community.general Version

11.2.1 (latest)

Configuration

Playbook

- name: Install Jenkins plugins using password
  community.general.jenkins_plugin:
    name: "{{ item.name }}"
    version: "{{ item.version | default(omit) }}"
    jenkins_home: /var/lib/jenkins
    url_username: "{{ jenkins_controller_admin_username }}"
    url_password: "{{ jenkins_controller_admin_password }}"
    state: present
    timeout: 30
    updates_expiration: 86400
    updates_url: https://updates.jenkins.io
    url: "http://127.0.0.1:{{ jenkins_controller_http_bind_port }}"
    with_dependencies: true (this leads to the issue)
  loop: "{{ jenkins_controller_plugins }}"
  notify: Restart jenkins
  register: jenkins_plugin_result
  until: jenkins_plugin_result is success
  retries: 3
  delay: 2

List of plugins:

jenkins_controller_plugins:
  - name: ansicolor
  - name: bitbucket-push-and-pull-request
  - name: cloudbees-bitbucket-branch-source
  - name: cloudbees-folder
  - name: configuration-as-code
  - name: docker-compose-build-step
  - name: docker-workflow
  - name: git
  - name: git-parameter
  - name: job-dsl
  - name: list-git-branches-parameter
  - name: multibranch-action-triggers
  - name: parameterized-scheduler
  - name: pipeline-stage-view
  - name: ssh-agent
  - name: ssh-steps
  - name: remote-file
  - name: workflow-aggregator
  - name: ws-cleanup
  - name: pipeline-graph-view
  - name: rebuild
  - name: keycloak
  - name: golang

OS / Environment

Debian Linux, Ran in Docker

FROM python:3.13-alpine

RUN apk --no-cache add --update \
    bash \
    git \
    openssh \
    sshpass

RUN python3 -m pip install ansible passlib

RUN ansible-galaxy collection install community.docker
RUN ansible-galaxy collection install community.general

COPY ./ansible/docker/ansible-playbook/bin/entrypoint.sh /run/entrypoint.sh

RUN chmod +x /run/entrypoint.sh

WORKDIR /ansible/ansible

ENTRYPOINT ["/run/entrypoint.sh"]
CMD ["--help"]

Steps to Reproduce

Try install plugins with with_dependencies enabled on a jenkins.

Expected Results

Normal installation in reasonable time (5-10 minutes)

Actual Results

The installation of the first three plugins of the list is not complete after 2 hours.

Code of Conduct

  • I agree to follow the Ansible Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugThis issue/PR relates to a bugmodulemodulepluginsplugin (any type)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions