Skip to content

Commit

Permalink
Document OnDemand 4.0 dependency changes and upgrade instructions
Browse files Browse the repository at this point in the history
Fixes #1011
Fixes #1013
Fixes #1010
  • Loading branch information
treydock committed Nov 23, 2024
1 parent f46978e commit f2c414d
Show file tree
Hide file tree
Showing 5 changed files with 196 additions and 36 deletions.
18 changes: 7 additions & 11 deletions source/installation/install-software.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,10 @@ Install Software

Open OnDemand uses these packages, among many others.

- `Apache HTTP Server 2.4`_
- Ruby 3.0 with :command:`rake`, :command:`bundler`, and development
- Apache HTTP Server 2.4
- Ruby 3.3 with :command:`rake`, :command:`bundler`, and development
libraries
- Node.js 18

Some operating systems use `Software Collections`_ to satisfy these.
- Node.js 20

.. note::

Expand Down Expand Up @@ -39,23 +37,23 @@ Some operating systems use `Software Collections`_ to satisfy these.
sudo dnf config-manager --set-enabled powertools
sudo dnf install epel-release
sudo dnf module enable ruby:3.1 nodejs:18
sudo dnf module enable ruby:3.3 nodejs:20
.. tab:: RockyLinux/Alma Linux 9

.. code-block:: sh
sudo dnf config-manager --set-enabled crb
sudo dnf install epel-release
sudo dnf module enable ruby:3.1 nodejs:18
sudo dnf module enable ruby:3.3 nodejs:20
.. tab:: RHEL 8

.. code-block:: sh
sudo dnf install epel-release
sudo dnf module enable ruby:3.1 nodejs:18
sudo dnf module enable ruby:3.3 nodejs:20
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
Expand All @@ -64,7 +62,7 @@ Some operating systems use `Software Collections`_ to satisfy these.
.. code-block:: sh
sudo dnf install epel-release
sudo dnf module enable ruby:3.1 nodejs:18
sudo dnf module enable ruby:3.3 nodejs:20
sudo subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms
2. Add repository and install
Expand Down Expand Up @@ -198,6 +196,4 @@ If you'd like a package built for a system that we don't currently support, feel

- https://github.com/OSC/ondemand/issues/new

.. _software collections: https://www.softwarecollections.org/en/
.. _apache http server 2.4: https://www.softwarecollections.org/en/scls/rhscl/httpd24/
.. _ohio supercomputer center: https://www.osc.edu/
16 changes: 2 additions & 14 deletions source/installation/resource-manager/test.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,7 @@ configuration files.
``cluster1``, so you will need to replace it with the name of the cluster
you configured):

.. rubric:: If your operating system is CentOS 7 or RHEL 7, run this command:

.. code-block:: sh
sudo su $USER -c 'scl enable ondemand -- bin/rake test:jobs:cluster1 RAILS_ENV=production'
.. rubric:: Otherwise, run this command:
.. rubric:: Run this command:

.. code-block:: sh
Expand Down Expand Up @@ -101,13 +95,7 @@ configuration files.
provide these command line arguments as a string with the environment
variable ``SUBMIT_ARGS`` as:

.. rubric:: If your operating system is CentOS 7 or RHEL 7, run this command:

.. code-block:: sh
sudo su $USER -c 'scl enable ondemand-- bin/rake test:jobs:cluster1 RAILS_ENV=production SUBMIT_ARGS="-A myaccount"'
.. rubric:: Otherwise, run this command:
.. rubric:: Run this command:

.. code-block:: sh
Expand Down
14 changes: 7 additions & 7 deletions source/reference/files/nginx-stage-yml.rst
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ Configuration Options
the path to the NGINX binary

Default
Use NGINX installed by OnDemand Software Collections
Use NGINX installed by OnDemand

.. code-block:: yaml
Expand Down Expand Up @@ -220,7 +220,7 @@ Configuration Options
the path to the system-installed NGINX ``mime.types`` file

Default
Use the NGINX installed by OnDemand Software Collections file
Use the NGINX installed by OnDemand

.. code-block:: yaml
Expand All @@ -238,7 +238,7 @@ Configuration Options
the ``locations.ini`` file that describes Passenger installation

Default
Use the file supplied by Passenger from OnDemand Software Collections
Use the file supplied by Passenger from OnDemand

.. code-block:: yaml
Expand All @@ -263,11 +263,11 @@ Configuration Options
passenger_ruby: "/opt/ood/nginx_stage/bin/ruby"
Example
Use the binary supplied by Ruby 2.4 installed by Software Collections
Use the system installed Ruby

.. code-block:: yaml
passenger_ruby: "/opt/rh/rh-ruby25/root/usr/bin/ruby"
passenger_ruby: "/usr/bin/ruby"
.. describe:: passenger_nodejs (String, null)

Expand All @@ -281,11 +281,11 @@ Configuration Options
passenger_nodejs: "/opt/ood/nginx_stage/bin/node"
Example
Use the binary supplied by Node.js installed by Software Collections
Use the system installed Node.js

.. code-block:: yaml
passenger_nodejs: "/opt/rh/rh-nodejs6/root/usr/bin/node"
passenger_nodejs: "/usr/bin/node"
.. describe:: passenger_python (String, null)

Expand Down
178 changes: 178 additions & 0 deletions source/release-notes/v4.0-release-notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ Administrative changes
----------------------

- `Breaking Changes`_
- `Dependency updates`_
- `Upgrade directions`_

New Features
------------
Expand All @@ -16,6 +18,7 @@ New Features
- `Batch connect sessions poll delay`_
- `System Status application`_
- `User mapping now accepts UIDs`
- `Remove runtime dependency on SCL`

Thanks!
-------
Expand Down Expand Up @@ -95,7 +98,21 @@ for more details.
Dependency updates
..................

This release updates the following dependencies:

- Ruby 3.3 **(RHEL 8 & 9 only)**

.. warning:: The change in Ruby version means any Ruby based apps that are not provided by the OnDemand RPM must be rebuilt or supply their own ``bin/ruby`` to use the older version of ruby.

- NodeJS 20 **(All OSes)**

.. warning:: The change in Node version means any Node based apps that are not provided by the OnDemand RPM must be rebuilt.

.. warning:: Ubuntu 24.04 and Debian 12 are no longer support on ppc64le due to NodeJS 20 not being available on that architecture.

- Passenger 6.0.23
- NGINX 1.26.1
- ondemand-dex 2.41.1

SELinux changes
...............
Expand All @@ -104,7 +121,160 @@ SELinux changes
Upgrade directions
..................

.. warning::

**Update** the **development** or **test** instances of OnDemand installed at your center **first** before you modify the *production* instance.

.. warning::

The OnDemand upgrade has only been tested going from 3.1.x to 4.0.x.

#. Update OnDemand repository

.. tabs::

.. tab:: RedHat/Rocky Linux/AlmaLinux 8

.. code-block:: sh
sudo yum install -y https://yum.osc.edu/ondemand/4.0/ondemand-release-web-4.0-1.el8.noarch.rpm
.. tab:: RedHat/Rocky Linux/AlmaLinux 9

.. code-block:: sh
sudo yum install -y https://yum.osc.edu/ondemand/4.0/ondemand-release-web-4.0-1.el9.noarch.rpm
.. tab:: Ubuntu 20.04

.. code-block:: sh
wget -O /tmp/ondemand-release-web_4.0.0-focal_all.deb https://apt.osc.edu/ondemand/4.0/ondemand-release-web_4.0.0-focal_all.deb
sudo apt install /tmp/ondemand-release-web_4.0.0-focal_all.deb
sudo apt update
.. tab:: Ubuntu 22.04

.. code-block:: sh
wget -O /tmp/ondemand-release-web_4.0.0-jammy_all.deb https://apt.osc.edu/ondemand/4.0/ondemand-release-web_4.0.0-jammy_all.deb
sudo apt install /tmp/ondemand-release-web_4.0.0-jammy_all.deb
sudo apt update
.. tab:: Ubuntu 24.04

.. code-block:: sh
wget -O /tmp/ondemand-release-web_4.0.0-noble_all.deb https://apt.osc.edu/ondemand/4.0/ondemand-release-web_4.0.0-noble_all.deb
sudo apt install /tmp/ondemand-release-web_4.0.0-noble_all.deb
sudo apt update
.. tab:: Debian 12

.. code-block:: sh
wget -O /tmp/ondemand-release-web_4.0.0-bookworm_all.deb https://apt.osc.edu/ondemand/4.0/ondemand-release-web_4.0.0-bookworm_all.deb
sudo apt install /tmp/ondemand-release-web_4.0.0-bookworm_all.deb
sudo apt update
.. tab:: Amazon Linux 2023

.. code-block:: sh
sudo dnf install -y https://yum.osc.edu/ondemand/4.0/ondemand-release-web-4.0-1.amzn2023.noarch.rpm
#. Enable dependency repos

**RHEL/Rocky/AlmaLinux 8 & 9 only**

.. code-block:: sh
sudo dnf module reset nodejs
sudo dnf module enable nodejs:20
sudo dnf module reset ruby
sudo dnf module enable ruby:3.3
#. Update OnDemand

.. tabs::

.. tab:: yum/dnf

.. code-block:: sh
sudo yum clean all
sudo yum update ondemand
.. tab:: apt

.. code-block:: sh
sudo apt-get --only-upgrade install ondemand
#. (Optional) If using Dex based authentiction, update the ``ondemand-dex`` package.

.. tabs::

.. tab:: yum/dnf

.. code-block:: sh
sudo yum update ondemand-dex
.. tab:: apt

.. code-block:: sh
sudo apt-get --only-upgrade install ondemand-dex
#. Update Apache configuration and restart Apache.

.. code-block:: sh
sudo /opt/ood/ood-portal-generator/sbin/update_ood_portal
.. tabs::

.. tab:: RedHat/Rocky Linux/AlmaLinux 8 & 9

.. code-block:: sh
sudo systemctl try-restart httpd
.. tab:: Ubuntu 20.04 & 22.04 & Debian 12

.. code-block:: sh
sudo systemctl try-restart apache2
.. tab:: Amazon 2023

.. code-block:: sh
sudo systemctl try-restart httpd
#. (Optional) If ``ondemand-dex`` was installed, restart the ``ondemand-dex`` service.

.. code-block:: sh
sudo systemctl try-restart ondemand-dex.service
#. (Optional) If ``ondemand-selinux`` was installed, see :ref:`ood_selinux_updates`

#. Force all PUNs to restart

.. code-block:: sh
sudo /opt/ood/nginx_stage/sbin/nginx_stage nginx_clean -f
#. (Optional) Remove old dependencies from prior versions of OOD if they are not used by other applications.

**RHEL/Rocky/AlmaLinux 8 & 9 only**

.. code-block:: sh
sudo dnf remove environment-modules scl-utils
Details of new features
-----------------------
Expand Down Expand Up @@ -167,3 +337,11 @@ User mapping now accepts UIDs
User mapping scripts can now return a UID instead of a username.
This can be helpful for centers that have multiple domains and possible
username collisions.

Remove runtime dependency on SCL
................................

OnDemand no longer requires SCL on RHEL based systems.
OnDemand also no longer has an indirect dependency on the TCL environment module packages.
This removal of the SCL dependency should make it possible to install OnDemand on hosts such
as a head node where the Lmod environment modules are setup.
6 changes: 2 additions & 4 deletions source/requirements.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,22 +21,20 @@ At this time OnDemand only supports the following operating systems and architec
"RedHat/Rocky Linux/AlmaLinux 9",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`✅`
"Ubuntu 20.04",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`❌`
"Ubuntu 22.04",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`❌`
"Ubuntu 24.04",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`✅`
"Debian 12",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`✅`
"Ubuntu 24.04",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`❌`
"Debian 12",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`❌`
"Amazon Linux 2023",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`❌`

Software Requirements
---------------------

On the Web node serving OnDemand itself:

- `Software Collections repositories`_
- `lsof`_
- `sudo`_
- `OnDemand repository`_:
- ondemand-{{ondemand_version}}-1.el7.x86_64.rpm

.. _Software Collections repositories: https://www.softwarecollections.org/en/
.. _lsof: https://en.wikipedia.org/wiki/Lsof
.. _OnDemand repository: https://openondemand.org/
.. _sudo: https://www.sudo.ws/
Expand Down

0 comments on commit f2c414d

Please sign in to comment.