semaphoreui / semaphore

Modern UI and powerful API for Ansible, Terraform, OpenTofu, PowerShell and other DevOps tools.
https://semaphoreui.com
MIT License
10.74k stars 1.07k forks source link

Dockerfile: ANSIBLE_VERSION, v9.4.0 --> v10.6.0 #2543

Open AlwinAntreich opened 2 weeks ago

AlwinAntreich commented 2 weeks ago

Issue

Hi :wave:

Any reason for Ansible being on v9.4.0 in the dockerfile [0]? The current Ansible version is v10.6.0, according to here [1]. May be related to #2330.

Thank you and cheers, Alwin

[0] https://github.com/semaphoreui/semaphore/blob/develop/deployment/docker/server/Dockerfile#L52C5-L52C20 https://github.com/semaphoreui/semaphore/blob/develop/deployment/docker/runner/Dockerfile#L80 https://github.com/semaphoreui/semaphore/blob/develop/deployment/docker/debug/Dockerfile#L57 [1] https://github.com/ansible-community/ansible-build-data/blob/main/10/CHANGELOG-v10.md

Impact

Docker

Installation method

Docker

Database

No response

Browser

No response

Semaphore Version

v2.10.35-a71a3c5-1730103926

Ansible Version

No response

Logs & errors

No response

Manual installation - system information

No response

Configuration

No response

Additional information

No response

tolecnal commented 17 hours ago

Hi,

I wanted to chime in on this, as I recently started to look into Semaphore. Though I have liked most of what I have seen so far, the fact that Semaphore is running a soon-to-be End Of Life version [1] in the latest Docker images is a huge concern.

I just pulled the v2.10.43 Docker image and first inspected the Docker image with docker inspect semaphore when I noticed it was using the environmental variable ANSIBLE_VERSION=9.4.0 and thought to myself, this can't possibly be right.

To confirm this, I then performed a docker exec -it semaphore /bin/bash and ran the command ansible --version which returned the following:

semaphore:~$ ansible --version
ansible [core 2.16.13]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/semaphore/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /opt/semaphore/apps/ansible/9.4.0/venv/lib/python3.11/site-packages/ansible
  ansible collection location = /home/semaphore/.ansible/collections:/usr/share/ansible/collections
  executable location = /opt/semaphore/apps/ansible/9.4.0/venv/bin/ansible
  python version = 3.11.10 (main, Sep 11 2024, 09:58:40) [GCC 13.2.1 20231014] (/opt/semaphore/apps/ansible/9.4.0/venv/bin/python3)
  jinja version = 3.1.4
  libyaml = True

The latest release on the 9 branch is 9.12.0 which was released on 2024-11-05, while 9.4.0 which ships with Semaphore was released on 2024-03-27. According to Ansible's documentation [1], the 9x branch will be EOL (End Of Life) after 9.13, which will also be the next release on the 9x branch, and also most likely the last release on 9x.

Ansible themselves state that the following:

ansible-core has a graduated maintenance structure that extends to three major releases.

The 9x branch is the oldest of the three major releases, and it's only a matter of time before 9x is dead and obsolete. There might be a very good reason why the Semaphore team chose the 9x, and has not moved on to a more recent branch, but I for one find it somewhat troublesome.

It would be nice with an update and/or clarification on the choices made here, and what is planned ahead.

References: [1] https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html#ansible-community-changelogs