From 0ef7ecce270f6e7b6a9d4e95f9ba1f9d18029add Mon Sep 17 00:00:00 2001 From: Doug Holt Date: Mon, 20 Jul 2026 13:46:36 -0600 Subject: [PATCH] Remove the vestigial OpenShift client role MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The openshift role installed the deprecated OpenShift Python client into a dedicated virtualenv (plus EPEL on Red Hat) as a meta-dependency of the GPU Operator, device plugin, and GPU feature discovery roles and via a bootstrap playbook wired into k8s-cluster.yml. Nothing consumes it: those roles deploy exclusively through Helm, no playbook or role in the repository uses the Ansible k8s modules against that virtualenv, and the roles that need EPEL install it themselves. Remove the role, the bootstrap playbook and its imports, and the empty meta-dependencies. The legacy RoCE backend role is unaffected — it installs its own client inside its own tasks. --- .github/workflows/molecule.yml | 1 - playbooks/bootstrap/bootstrap-openshift.yml | 7 ---- playbooks/k8s-cluster.yml | 5 --- playbooks/k8s-cluster/nvidia-gpu-operator.yml | 2 - roles/nvidia-gpu-operator/meta/main.yml | 3 +- .../meta/main.yml | 3 +- .../meta/main.yml | 3 +- roles/openshift/defaults/main.yml | 4 -- roles/openshift/molecule/default/converge.yml | 7 ---- roles/openshift/molecule/default/molecule.yml | 17 -------- roles/openshift/molecule/default/prepare.yml | 9 ----- roles/openshift/molecule/default/verify.yml | 10 ----- roles/openshift/tasks/main.yml | 40 ------------------- 13 files changed, 3 insertions(+), 108 deletions(-) delete mode 100644 playbooks/bootstrap/bootstrap-openshift.yml delete mode 100644 roles/openshift/defaults/main.yml delete mode 100644 roles/openshift/molecule/default/converge.yml delete mode 100644 roles/openshift/molecule/default/molecule.yml delete mode 100644 roles/openshift/molecule/default/prepare.yml delete mode 100644 roles/openshift/molecule/default/verify.yml delete mode 100644 roles/openshift/tasks/main.yml diff --git a/.github/workflows/molecule.yml b/.github/workflows/molecule.yml index d9b03347f..bec71d929 100644 --- a/.github/workflows/molecule.yml +++ b/.github/workflows/molecule.yml @@ -18,7 +18,6 @@ jobs: - nhc - nvidia_dcgm - openmpi - - openshift - mofed - spack # Excluded from Docker CI (require systemd services that can't diff --git a/playbooks/bootstrap/bootstrap-openshift.yml b/playbooks/bootstrap/bootstrap-openshift.yml deleted file mode 100644 index d1b779867..000000000 --- a/playbooks/bootstrap/bootstrap-openshift.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -- hosts: kube_control_plane - become: true - tasks: - - name: Install required Python OpenShift packages/libraries - include_role: - name: openshift diff --git a/playbooks/k8s-cluster.yml b/playbooks/k8s-cluster.yml index 983e9c750..2e0a4390c 100644 --- a/playbooks/k8s-cluster.yml +++ b/playbooks/k8s-cluster.yml @@ -59,11 +59,6 @@ import_playbook: generic/chrony-client.yml when: chrony_install|default(true) -- name: Install the OpenShift API libraries required by the GPU plugin - import_playbook: bootstrap/bootstrap-openshift.yml - tags: - - bootstrap - - name: Configure hostnames, /etc/hosts import_playbook: generic/hosts.yml diff --git a/playbooks/k8s-cluster/nvidia-gpu-operator.yml b/playbooks/k8s-cluster/nvidia-gpu-operator.yml index 72a77cae6..5a36385c7 100644 --- a/playbooks/k8s-cluster/nvidia-gpu-operator.yml +++ b/playbooks/k8s-cluster/nvidia-gpu-operator.yml @@ -1,6 +1,4 @@ --- -- name: Ensure OpenShift packages are installed - import_playbook: ../bootstrap/bootstrap-openshift.yml # GPU operator - hosts: kube_control_plane[0] diff --git a/roles/nvidia-gpu-operator/meta/main.yml b/roles/nvidia-gpu-operator/meta/main.yml index 61f43d2f3..23d65c7ef 100644 --- a/roles/nvidia-gpu-operator/meta/main.yml +++ b/roles/nvidia-gpu-operator/meta/main.yml @@ -1,3 +1,2 @@ --- -dependencies: - - role: openshift +dependencies: [] diff --git a/roles/nvidia-k8s-gpu-device-plugin/meta/main.yml b/roles/nvidia-k8s-gpu-device-plugin/meta/main.yml index 61f43d2f3..23d65c7ef 100644 --- a/roles/nvidia-k8s-gpu-device-plugin/meta/main.yml +++ b/roles/nvidia-k8s-gpu-device-plugin/meta/main.yml @@ -1,3 +1,2 @@ --- -dependencies: - - role: openshift +dependencies: [] diff --git a/roles/nvidia-k8s-gpu-feature-discovery/meta/main.yml b/roles/nvidia-k8s-gpu-feature-discovery/meta/main.yml index 61f43d2f3..23d65c7ef 100644 --- a/roles/nvidia-k8s-gpu-feature-discovery/meta/main.yml +++ b/roles/nvidia-k8s-gpu-feature-discovery/meta/main.yml @@ -1,3 +1,2 @@ --- -dependencies: - - role: openshift +dependencies: [] diff --git a/roles/openshift/defaults/main.yml b/roles/openshift/defaults/main.yml deleted file mode 100644 index 671561b7a..000000000 --- a/roles/openshift/defaults/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -deepops_dir: /opt/deepops -deepops_venv: '{{ deepops_dir }}/venv' -epel_package: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-{{ ansible_distribution_major_version }}.noarch.rpm" -epel_key_url: "https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version }}" diff --git a/roles/openshift/molecule/default/converge.yml b/roles/openshift/molecule/default/converge.yml deleted file mode 100644 index 3024d3dc6..000000000 --- a/roles/openshift/molecule/default/converge.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -- name: Converge - hosts: all - tasks: - - name: "Include openshift" - include_role: - name: "openshift" diff --git a/roles/openshift/molecule/default/molecule.yml b/roles/openshift/molecule/default/molecule.yml deleted file mode 100644 index e5759f0c1..000000000 --- a/roles/openshift/molecule/default/molecule.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- -dependency: - name: galaxy -driver: - name: docker -platforms: - - name: openshift-ubuntu-2204 - image: geerlingguy/docker-ubuntu2204-ansible - cgroupns_mode: host - pre_build_image: true - privileged: true -provisioner: - name: ansible - ansible_args: - - -vv -verifier: - name: ansible diff --git a/roles/openshift/molecule/default/prepare.yml b/roles/openshift/molecule/default/prepare.yml deleted file mode 100644 index cb5e708a4..000000000 --- a/roles/openshift/molecule/default/prepare.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -- hosts: all - become: yes - tasks: - - - name: ensure apt cache is updated - apt: - update_cache: true - when: ansible_distribution == "Ubuntu" diff --git a/roles/openshift/molecule/default/verify.yml b/roles/openshift/molecule/default/verify.yml deleted file mode 100644 index 79044cd06..000000000 --- a/roles/openshift/molecule/default/verify.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -# This is an example playbook to execute Ansible tests. - -- name: Verify - hosts: all - gather_facts: false - tasks: - - name: Example assertion - assert: - that: true diff --git a/roles/openshift/tasks/main.yml b/roles/openshift/tasks/main.yml deleted file mode 100644 index 7697d3f09..000000000 --- a/roles/openshift/tasks/main.yml +++ /dev/null @@ -1,40 +0,0 @@ ---- -- name: install virtualenv and setuptools - apt: - name: "{{ item }}" - state: present - with_items: - - "virtualenv" - - "python3-setuptools" - when: ansible_distribution == 'Ubuntu' - environment: "{{ proxy_env if proxy_env is defined else {} }}" - -- name: create location for deepops files - file: - path: "{{ deepops_dir }}" - state: directory - mode: "0755" - -- name: install openshift python client for k8s_raw module - pip: - name: openshift - virtualenv: "{{ deepops_venv }}" - when: ansible_distribution == 'Ubuntu' - environment: "{{ proxy_env if proxy_env is defined else {} }}" - -- name: trust GPG key for EPEL - rpm_key: - key: "{{ epel_key_url }}" - state: present - when: ansible_os_family == "RedHat" - -- name: install EPEL for CentOS - yum: - name: "{{ epel_package }}" - when: ansible_os_family == "RedHat" - -- name: install openshift python client for k8s_raw module - yum: - name: python3-openshift - when: ansible_os_family == 'RedHat' - environment: "{{ proxy_env if proxy_env is defined else {} }}"