poddingue GSoC Mentors
That will prove really handy, thanks a lot for that, Mark!
That will prove really handy, thanks a lot for that, Mark!
The operating system end of life warning has been backported to Jenkins 2.401.2 after discussion in the Jenkins developer mailing list.
That will make it visible to users of the Jenkins long term support (LTS) release June 28, 2023. That is 8 weeks earlier than the blog post originally stated. Users will have 8 more weeks of notification before the November 2023 end of life for CentOS 7 in Jenkins.
This seems odd since jenkins runs on a jdk, what’s native about jenkins?. Is this just about support or is something going to be disabled?
1 replyThat’s a fun question. Thanks for asking. Jenkins integrates with many native components, like git and OpenSSH. Integrating with the versions of native components in Red Hat Enterprise Linux 7 often requires compromises due to their age.
Once Red Hat Enterprise Linux 7 is no longer supported, the git client plugin code that supports command line git 1.8 can be removed. Command line git 1.8 was released in 2012, with the last patch 1.8.5.6 released in December 2014. The current version of command line git is 2.41. Recent versions of command line git have many, many features and many, many optimizations that are not available in command line git 1.8.
Once Red Hat Enterprise Linux 7 is no longer supported, the oldest version of command line git that will need to be supported by the git client plugin is 2.20 as included in Debian 10.
OpenSSH 7.4 as included in Red Hat Enterprise Linux 7 does not have the accept first
option for host keys. When support for Red Hat Enterprise Linux 7 is dropped, the git client plugin can use accept first
as its default and simplify ssh host key management for new users.
When Red Hat Enterprise Linux 7 is no longer supported, the older OpenSSH version to be supported will be OpenSSH 7.9 as included in Debian 10.
Those two examples are from plugins that I maintain. Other plugins may have additional simplifications they can apply when Red Hat Enterprise Linux 7 is no longer supported.
1 replyAh ok, not binary native but shelled calls to old utilities.
It seems No good deed goes unpunished … or hurry up and wait; not sure …
Red Hat blog: Announcing up to 4 years of Extended Life Cycle Support (ELS) for Red Hat Enterprise Linux 7
As we near the end of the standard 10-year life cycle of RHEL 7, some IT organizations are finding that they cannot complete their planned migrations before June 30, 2024. To support IT teams while they catch up on their migration schedules, Red Hat is announcing a one-time, 4 year ELS maintenance period for RHEL 7 ELS
ps: CentOS 7 will apparently still hit its end-of-life in one year on June 30 of 2024.
1 replyAs far as I can tell from reading that blog post, extended life cycle support is an additional purchased item that can be added to existing purchased Red Hat Enterprise Linux subscriptions. None of the Jenkins maintainers have purchased Red Hat Enterprise Linux subscriptions as far as I know. Jenkins end of life for RHEL 7 and its derivatives is Nov 2023.
1 replyThe blog post from Red Hat is similar to posts from other operating system providers. Red Hat is selling extended support contracts for Red Hat Enterprise Linux 7. They are meeting a business need for the customers that purchase their products.
Canonical offers something similar for subscription users that are running Ubuntu 18.04. They describe their Ubuntu Pro product and its Extended Security Maintenance in their March 2023 blog post.
Microsoft offered something similar for subscription users running Windows 7 after its end of support in January 2020. They announced it in the post on their learning site in 2020:
The Jenkins project has not extended its Linux support policy or its Windows support policy beyond the public end of life for any of those operating systems. It does not seem reasonable to me that Jenkins as an open source project supporting publicly available operating systems would purchase extended operating system support from the operating system providers.
I’m open to disagreement from others in case they feel that there is some path where an operating system that has reached its public end of life should continue to be supported by the Jenkins project after the public end of life.
We’re still a bit uncertain of the severity of impact of this change. Can we please get some additional clarification? For example, after the Nov 6, 2023 date, Jenkins will:
– OR –
Also, we’re assuming that the change will be applied in a Jenkins LTS version release after Nov 6th, so if we delayed updating Jenkins and plugins we may be able to buy ourselves extra time?
Any extra clarification would be much appreciated, thank you!
1 replyThanks for asking the question. My answers are below.
Jenkins may still work on existing installations of Red Hat Enterprise Linux 7 and its derivatives after 16 Nov 2023. I’ve seen no change that will cause existing installations to stop working after 16 Nov 2023. I’d be surprised if such a change were introduced, since there is little benefit to that type of change.
Jenkins developers are not expected to accept patches after 16 Nov 2023 that are specific to fixing issues on Red Hat Enterprise Linux 7 or its derivatives. The Linux support policy describes unsupported platforms by saying:
We do not support the listed platforms and we do not accept patches.
Jenkins 2.414.3, releasing 18 Oct 2023, will be the last Jenkins long term support release to support Red Hat Enterprise Linux 7 and its derivatives. The next Jenkins LTS (baseline undecided, but something like 2.426.1) will release 16 Nov 2023 and will not support Red Hat Enterprise Linux 7 or any of its derivatives.
Jenkins project testing of Red Hat Enterprise Linux 7 and its derivatives will stop on or before 16 Nov 2023. Jenkins plugins like the ssh agents plugin and the git plugin will be free to remove the code they contain that supports the old software versions included in Red Hat Enterprise Linux 7 and its derivatives.
As a maintainer of the git plugin, after 16 Nov 2023 I intend to act as though command line git 1.8 and OpenSSH 7.4 (both included in RHEL 7) no longer exist. I’ll allow myself to make changes that rely on newer versions of command line git (like 2.11 and later) and newer versions of OpenSSH (like 7.8 and later). Some of those changes make break new releases of the git plugin on RHEL 7. If releases of the git plugin after 16 Nov 2023 are broken on RHEL 7, I don’t plan to fix those issues.
Other plugin maintainers and maintainers of Jenkins core are free to release similar changes after 16 Nov 2023. If a change released after 16 Nov 2023 breaks Jenkins core or a plugin on RHEL 7 and does not break on any other platform, that won’t be considered an issue.
The Jenkins LTS release 16 Nov 2023 will not support Red Hat Enterprise Linux 7 or its derivatives. The baseline for that LTS release has not yet been selected, but it will be something like 2.426.1.
You can choose to remain on Jenkins LTS 2.414.3 (scheduled for release on 18 Oct 2023) or on the last weekly version to support RHEL 7.
The Jenkins security team provides security fixes for the most recent Jenkins LTS release and the most recent Jenkins weekly release. Locking yourself to an outdated Jenkins LTS or weekly version is unhealthy because you won’t receive any further security fixes for Jenkins core.
1 replyThank you very much for the prompt and thorough reply, much appreciated.
Can you confirm that Jenkins will be ok to run on AL2023 (amazon linux 2023) moving forward?
We’re in the process of moving our servers off of centos7 and AL2023 is the flavor of choice it seems for us to use. But after reading this article I just wanted to make sure we weren’t missing anything and going to potentially have a bad day maintaining Jenkins on AL2023.
Thanks for any input on this!
Jenkins will be ok to run on Amazon Linux 2023 moving forward.
The Amazon Linux 2023 FAQ says:
Starting with AL2023, a new major version of Amazon Linux is released every two years, includes minor quarterly releases, and comes with five years of long-term support.
Amazon Linux 2023 installation is regularly tested from the Jenkins packaging repository.
We cannot upgrade from RHEL7 since we are moving our systems to a new platfom, which will be generally available within a year or so, an in the mean time we have to stick with RHEL7. Is there a possibility that Jenkins will function despite the end of support, or will there be an active shutdown in the Jenkins software after november 16?
1 replyThanks for asking. A detailed answer is available earlier in this thread.
The operating system end of life monitor shows you the date when the operating system will no longer be supported by the Jenkins project.
It should state that Ubuntu 23.04 will not be supported by the Jenkins project after January 20, 2024, because that is the end of life for Ubuntu 23.04 according to the Ubuntu releases wiki page and the end of life date site.
The warning is visible to you because it is now less than 6 months before the end of life of Ubuntu 23.04.
We don’t test non-LTS versions of Ubuntu, but I’m not aware of any reason they would have any issue that is not also visible in LTS versions of Ubuntu.
1 replyThanks for clarification!
I wasn’t aware EOL of Ubuntu 23.04 is < 6 months from now, and I was kinda disturbed to see a warning despite having the latest release.
Hi,
my Jenkins controller is installed on a VM running CentOS7 and I received the CentOS7 EOL warning.
In the next few weeks I plan to migrate the installation to RHEL8, however I have a concern:
I have several agents connected to the controller, some of them running CentOS7.
If I upgrade the controller to RHEL8 will the CentOS7 agents still continue to work or will I necessarily have to migrate them to RHEL8 as well?
This question is very important because in some pipelines, unfortunately, we still have a requirement to use Java 7 which is not supported by RHEL8.
I would like to understand if this issue will force us to stay stuck with version 2.414.3 until these projects are migrated to a newer Java version.
1 replyNov 16, 2023 is the end of Red Hat Enterprise Linux 7 and CentOS 7 support by the Jenkins project for controllers and agents. June 30, 2024 is the end of public support for Red Hat Enterprise Linux 7 by Red Hat and the end of all support for CentOS 7.
You should update your agents to a supported operating system. If you can’t do that, then you’ll need to test each upgrade yourself to see that it does not break your agents running CentOS 7.
I’m confident that there is a way to run Java 7 on RHEL 8 and its derivatives, even if there is not an RPM package that can be used for the installation.
This caught me off guard since our controller isn’t affected but our agents are running CentOS 7 and we didn’t get any advance warning on this until I read the changes for the latest LTS release! Is there an enhancement request somewhere for future releases so that advance warning is provided when the OS the agent(s) are running on has been deprecated or support is due to be dropped?
1 replyThat’s a good suggestion, though I think it might be better done in the versions node monitors plugin than in Jenkins core. You’re welcome to submit an enhancement request. You’re also welcome to submit a pull request to implement the enhancement
I think that it is better suited to the plugin because agents come and go and an administrative monitor persists until it is cleared. It might be unclear to the user when an ephemeral agent appears, has an unsupported operating system, then disappears, but the administrative monitor persists.
You may also want to read the Jenkins blog post where we announced that change in May 2023.
Jenkins 2.414.3 just cautions me that “Jenkins will no longer support Linux after 2099-12-31”. It’s a Jenkins WAR deployment inside Tomcat 9.0.82, OpenJDK 11, Fedora 38.
And, yes, the system date is set correctly
If you want to debug this, tell if you need additional information.
We’ll definitely need more information. It is best to provide detailed information as a bug report to https://issues.jenkins.io/
I attempted to duplicate the problem with the following Dockerfile:
FROM fedora:38
RUN curl -o /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
RUN rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
RUN dnf upgrade -y
RUN dnf install -y fontconfig java-11-openjdk
RUN dnf install -y jenkins
RUN curl -L -o /tmp/jenkins-2.414.3.war https://get.jenkins.io/war-stable/2.414.3/jenkins.war
USER jenkins
ENTRYPOINT java -jar /tmp/jenkins-2.414.3.war
I built and ran that Dockerfile with the command:
$ docker build -t sample:1 .
$ docker run --rm -p 8080:8080 -i -t sample:1
I opened that Jenkins page from that machine in my web browser and confirmed that the end of life admin monitor displayed as follows:
That output is what I expected to see, since Fedora 38 is end of life as of 18 May 2024.
1 replyAfter upgrading to Jenkins 2.426.1, the notice has changed to the one just shown in your screenshot (which makes sense). So, I’ll regard this as fixed. Thanks.
I’ve submitted an update to the end of life operating system data that adds data for:
From “Manage Jenkins” → “System” → “Administrative monitors configuration” there is a drop down list “Administrative monitors” that includes a checkbox for each administrative monitor. Enable the checkbox for “Operating system end of life monitor”.
1 replyHi Mark,
I have looked in the “Manage Jenkins” and I don’t see anything with the title “Administrative monitors configuration”.
Here are all the categories I see in my Jenkins:
System
Configure global settings and paths.
Tools
Configure tools, their locations and automatic installers.
Plugins
Add, remove, disable or enable plugins that can extend the functionality of Jenkins.
Nodes
Add, remove, control and monitor the various nodes that Jenkins runs jobs on.
Clouds
Add, remove, and configure cloud instances to provision agents on-demand.
Appearance
Configure the look and feel of Jenkins
Managed files
e.g. settings.xml for maven, central managed scripts, custom files, …
Security
Secure Jenkins; define who is allowed to access/use the system.
Credentials
Configure credentials
Credential Providers
Configure the credential providers and types
Users
Create/delete/modify users that can log in to this Jenkins.
In-process Script Approval
Allows a Jenkins administrator to review proposed scripts (written e.g. in Groovy) which run inside the Jenkins process and so could bypass security restrictions.
Monitoring of Jenkins instance
Monitoring of memory, cpu, http requests and more in the Jenkins instance.
Monitoring of Jenkins agents
Monitoring of builds, build queue and Jenkins agents.
System Information
Displays various environmental information to assist trouble-shooting.
System Log
System log captures output from java.util.logging
output related to Jenkins.
Load Statistics
Check your resource utilization and see if you need more computers for your builds.
About Jenkins
See the version and license information.
Manage Old Data
Scrub configuration files to remove remnants from old plugins and earlier versions.
Reload Configuration from Disk
Discard all the loaded data in memory and reload everything from file system. Useful when you modified config files directly on disk.
Jenkins CLI
Access/manage Jenkins from your shell, or from your script.
Script Console
Executes arbitrary script for administration/trouble-shooting/diagnostics.
Prepare for Shutdown
Stops executing new builds, so that the system can be eventually shut down safely.
Gerrit Trigger
Triggers builds on Gerrit Events
I’m running Jenkins 2.440.1 on RedHat 7.9
Thanks,
Mike
Poor typing on my part.
From “Manage Jenkins” → “System” → “Administrative monitors configuration” is the path to the configuration.
1 replyHi Mark,
I was able to turn back on the OS end of life monitor with the path you provided. It showed up again once I restarted Jenkins.
I am in the process of switching to a supported OS.
Thanks for your help,
Mike
Ubuntu 20.04 reaches its end of public support 2 Apr 2025. Jenkins is alerting you that the Jenkins project stops supporting an operating system when the upstream vendor ends their public support.
The incorrect date is a bug (JENKINS-73845). Unfortunately, it is a bug that I am unable to duplicate. If you can provide more details so that the bug can be duplicated, I’m happy to look for a fix.
1 reply Yes, you should upgrade. If you upgrade today to Jenkins weekly 2.483, then you can confirm that the issue is fixed in that release. If you wait 24 hours and check the page again, you’ll see the correct end of life date without actually having the fix. The bug was an error in the date conditional. It has been fixed by @aburdajewicz