From 941050c3e83de340c466a97d4016de2a73fe6fd9 Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Thu, 23 Apr 2026 17:51:21 +0100 Subject: [PATCH] ansible: update Java on RHEL machines Update Java on RHEL 8 machines to Java 21. Update Java on RHEL 9 machines to Java 25. Add task to remove old versions of Java. Remove obsolete entries for centos and rhel7. Signed-off-by: Richard Lau --- ansible/roles/java-base/tasks/main.yml | 14 ++++++++++++++ ansible/roles/java-base/vars/main.yml | 15 +++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/ansible/roles/java-base/tasks/main.yml b/ansible/roles/java-base/tasks/main.yml index f5510fed2..507047aaf 100644 --- a/ansible/roles/java-base/tasks/main.yml +++ b/ansible/roles/java-base/tasks/main.yml @@ -35,6 +35,20 @@ name: "{{ java_package_name }}" state: present +- name: uninstall previous java + when: + - previous_java_package_name is defined and previous_java_package_name != "" + - not os|startswith("zos") + - not os|startswith("macos") + notify: + - package updated + - restart Jenkins + package: + name: "{{ previous_java_package_name }}" + state: "absent" + # Package manager mapping in ansible/roles/package-upgrade/vars/main.yml. + use: "{{ os|match_key(pm)|default(omit) }}" + # Uses the AdoptOpenJDK API https://github.com/adoptopenjdk/openjdk-api-v3 # to discover the most recent release for the given adoptopenjdk_version and # platform. diff --git a/ansible/roles/java-base/vars/main.yml b/ansible/roles/java-base/vars/main.yml index 91f3d7f09..69a4ea227 100644 --- a/ansible/roles/java-base/vars/main.yml +++ b/ansible/roles/java-base/vars/main.yml @@ -4,22 +4,29 @@ # different os'es have different names for java # +# When updating Java version, put the old version in the `previous_packages` +# map below so it can be removed. packages: { - 'centos': 'java-11-openjdk-headless', 'debian12': 'openjdk-17-jre-headless', 'debian13': 'openjdk-25-jre-headless', 'fedora42': 'java-21-openjdk-headless', 'fedora43': 'java-25-openjdk-headless', 'freebsd': 'openjdk17-jre', 'macos': 'temurin17', - 'rhel7': 'java-11-openjdk', - 'rhel8': 'java-17-openjdk', - 'rhel9': 'java-17-openjdk', + 'rhel8': 'java-21-openjdk-headless', + 'rhel9': 'java-25-openjdk-headless', 'smartos': 'openjdk17', 'ubuntu': 'openjdk-25-jre-headless', } +previous_packages: { + 'rhel8': 'java-17-openjdk-headless', + 'rhel9': 'java-17-openjdk-headless', + 'ubuntu': 'openjdk-17-jre-headless', + } + java_package_name: "{{ packages[os]|default(packages[os|stripversion])|default(omit) }}" +previous_java_package_name: "{{ previous_packages[os]|default(previous_packages[os|stripversion])|default(omit) }}" # Add os_arch combinations here that should install and use AdoptOpenJDK # binaries. Override any variables in the dictionary.