v1.5 Release Notes

Highlights in 1.5:

Upgrading from v1.4

Warning

As always please update the development or test instances of OnDemand installed at your center first before you modify the production instance.

  1. Update OnDemand release RPM

    CentOS/RHEL 6

    sudo yum install -y https://yum.osc.edu/ondemand/1.5/ondemand-release-web-1.5-1.el6.noarch.rpm
    

    CentOS/RHEL 7

    sudo yum install -y https://yum.osc.edu/ondemand/1.5/ondemand-release-web-1.5-1.el7.noarch.rpm
    
  2. Update OnDemand

    sudo yum clean all
    sudo yum update ondemand
    

    Warning

    This step triggers the execution of update_ood_portal script from ood-portal-generator which results in /opt/rh/httpd24/root/etc/httpd/conf.d/ood-portal.conf being modified. Your previous ood-portal.conf file will be copied to a backup in the same directory, which you may need to restore if you have made custom modifications to this file.

    Ensure that the resulting ood-portal.conf Apache config has SetEnv OOD_PUN_SOCKET_ROOT "/var/run/nginx" changed to SetEnv OOD_PUN_SOCKET_ROOT "/var/run/ondemand-nginx".

    Warning

    The nginx RPM used by ondemand in 1.4 is no longer maintained. If you use nginx outside of OnDemand it’s recommended to re-install using nginx from repositories such as EPEL after upgrading OnDemand to 1.5.

    sudo yum downgrade nginx nginx-filesystem --disablerepo=ondemand-web
    
  3. Optionally remove dependencies from prior versions of OOD if they are not used by other applications.

    sudo yum remove nginx nginx-filesystem passenger
    
  4. Clean up NGINX directories from prior versions of OOD

    The ondemand RPM should have copied all the nginx configurations, tmp files and logs from their previous locations to their new locations if the defaults were not changed. Once the functionality of the OnDemand 1.5 upgrade is verified it is safe to remove these old paths.

    Warning

    If the host running OnDemand has other applications using NGINX then special care needs to be taken not to delete files belonging to the other applications.

    sudo rm -rf /var/lib/nginx/config.rpmsave
    sudo rm -rf /var/tmp/nginx/*
    sudo rm -rf /var/log/nginx/*
    

Upgrading from v1.3

Warning

As always please update the development or test instances of OnDemand installed at your center first before you modify the production instance.

  1. Update OnDemand release RPM

    CentOS/RHEL 6

    sudo yum install -y https://yum.osc.edu/ondemand/1.5/ondemand-release-web-1.5-1.el6.noarch.rpm
    

    CentOS/RHEL 7

    sudo yum install -y https://yum.osc.edu/ondemand/1.5/ondemand-release-web-1.5-1.el7.noarch.rpm
    
  2. Update OnDemand

    sudo yum clean all
    sudo yum update ondemand
    

    Warning

    This step triggers the execution of update_ood_portal script from ood-portal-generator which results in /opt/rh/httpd24/root/etc/httpd/conf.d/ood-portal.conf being modified. Your previous ood-portal.conf file will be copied to a backup in the same directory, which you may need to restore if you have made custom modifications to this file.

    Ensure that the resulting ood-portal.conf Apache config has SetEnv OOD_PUN_SOCKET_ROOT "/var/run/nginx" changed to SetEnv OOD_PUN_SOCKET_ROOT "/var/run/ondemand-nginx".

  3. Optionally remove dependencies from prior versions of OOD

    sudo yum remove nodejs010\* rh-passenger40\* rh-ruby22\* nginx16\* git19\* v8314\*
    
  4. Clean up NGINX directories from prior versions of OOD

    The ondemand RPM should have copied all the nginx configurations, tmp files and logs from their previous locations to their new locations if the defaults were not changed. Once the functionality of the OnDemand 1.5 upgrade is verified it is safe to remove these old paths.

    Warning

    If the host running OnDemand has other applications using NGINX then special care needs to be taken not to delete files belonging to the other applications.

    sudo rm -rf /var/lib/nginx/config.rpmsave
    sudo rm -rf /var/lib/nginx/tmp/*
    sudo rm -rf /var/log/nginx/*
    
  5. Rebuild any custom Node.js or Ruby apps

    Since we upgraded to Ruby 2.4 from 2.2 and NodeJS 0.10 to NodeJS 6 any custom Passenger apps in Ruby or NodeJS that have their dependencies installed in vendor/bundle or node_modules will need to be reinstalled. Some code may have to be updated or dependency versions changed to work with the latest Ruby version.

    For NodeJS apps:

    For Ruby apps:

    If you need a way to continue to still use Ruby 2.2 or a different version of NodeJS please post a question on our Discourse instance.

  6. Verify Navbar contains all the apps you want.

    The behavior changed from 1.3 to 1.5 so by default all categories of any sys app found appear as dropdown menus without the need for configuration changes.

    As a result menus may appear that you do not expect, if previously you were relying on the “whitelist” functionality of the NavConfig.categories.

    See Control Which Apps Appear in the Dashboard Navbar for details.

  7. Verify Developer mode is configured how you want it

    See Enabling App Development for an explanation of how developer mode has changed between 1.3 and 1.5 and how to configure things properly. For sites that have active developers, this will either be adding configuration to revert to 1.3’s functionality, or creating some directories and symlinks to enable specific app developers.

Infrastructure Version Changes

OnDemand’s infrastructure components have been merged into a monolithic repository. Component changelogs have been frozen and the parent repository will now track all infrastructure changes: OnDemand 1.5.2. Diff with 1.4.10

Application Version Changes

Table 10 Application Versions
App Version
Dashboard App 1.30.2 → 1.31.0 (diff)
Shell App Unchanged
Files App Unchanged
File Editor App Unchanged
Active Jobs App 1.6.9 → 1.7.0 (diff)
Job Composer App 2.10.2 → 2.11.0 (diff)
Desktops App Unchanged

Table 10 lists the versions as well as the previous version it was updated from for each of the system web applications in this release.

Details

Add ondemand SCL and use SCL nginx and passenger

This upgrade adds a new ondemand software collection that is the only software collection needed to interact with OnDemand. This new softare collection will load all the collections needed by OnDemand. The Passenger and NGINX dependencies have been repackaged under this new ondemand SCL so those packages will no longer interfere with Passenger of NGINX packages from other repositories.

Warning

Several NGINX directories used by OnDemand have changed.
  • /var/lib/nginx to /var/lib/ondemand-nginx
  • /var/log/nginx to /var/log/ondemand-nginx
  • /var/tmp/nginx to /var/tmp/ondemand-nginx (1.4 to 1.5)
  • /var/lib/nginx/tmp to /var/tmp/ondemand-nginx (1.3 to 1.5)

Warning

nginx_stage now loads the ondemand SCL via /opt/ood/nginx_stage/etc/profile before loading /etc/ood/profile.

source scl_source enable ondemand

Performance improvements to Active Jobs

When displaying jobs from all clusters in Active Jobs, the app will now stream and display the job data for each cluster as it is retrieved, instead of waiting until all the clusters are queried. This takes advantage of the ability to read portions of an XHR response before the response has completed, which means you will only see the benefits in Chrome and Firefox.

Basic job array support for Slurm, Torque, and SGE

For Slurm, Torque, and SGE, a new text field has been added to the Job Options for the Job Composer app allowing you to specify arguments for requesting a job array when submitting a job. The apps have also been updated to gracefully handle querying jobs that are job arrays.

Note

Job array support will be added for PBSPro and LSF in the OnDemand 1.6 release.

Easier customization of home page text

Using Rails support for internationalization, we localized the html that shows the logo and tagline on the OnDemand home page, as well as the motd section title.

This enables admins to configure most of the home page html and MOTD section title by setting these strings in a locales fine under /etc/ood/config.

See Customize Tagline and Other Text on Dashboard for details.

RStudio with varying versions of R

We added a new tutorial for setting up a Singularity based RStudio interactive app that replaces the need for proot and enables the version of RStudio and the version of R to vary.

See Add an RStudio App for details.

Peer to peer app sharing

Added documentation on peer to peer app sharing, a feature that when enabled allows privleged users to deploy OnDemand apps, both Passenger and Interactive, to their home directory (or another directory specified by the admin) so that other users (peers) can launch these apps. This is also known as “executable sharing” because it is similar to how a user can add another user’s script to the PATH and then execute it.

See App Sharing for details.

Documentation update for Keycloak and Duo

Updated OpenID Connect via KeyCloak on RHEL7 for Keycloak 4.8.3. Added documenation on setting up two factor authentication using Duo with Keycloak via SSSD (see Two Factor Auth using Duo with Keycloak).