nvidia-container-toolkit/test/release
Evan Lezar ee0b908613 Extend release testing toolking to allow for upgrade testing
This change allows for upgrade workflows to be tested in the
release test containers. To achieve this a script is added
to configure the test repositories leaving the defaults installed
initially.

Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-10-14 17:10:43 +02:00
..
docker Extend release testing toolking to allow for upgrade testing 2021-10-14 17:10:43 +02:00
Makefile
README.md

Testing Packaging Workflows

Building the Docker images:

make images

This assumes that the nvidia-docker workflow is being tested and that the test packages have been published to the elezar.github.io GitHub pages page. These can be overridden using make variables.

Valid values for workflow are:

  • nvidia-docker
  • nvidia-container-runtime

This follows the instructions for setting up the nvidia-docker repostitory.

Testing local package changes

Running:

make local-ubuntu18.04

will build the ubuntu18.04-amd64 packages for release and launch a docker container with these packages added to a local APT repository.

The various apt workflows can then be tested as if the packages were released to the libnvidia-container experimental repository.

The local-centos8 make target is available for testing the centos8-x86_64 workflows as representative of yum-based installation workflows.

Example

In the centos8-based container above we see the following nvidia-docker2 packages available with the local-repository disabled:

$ yum list --showduplicates nvidia-docker2 | tail -2
nvidia-docker2.noarch           2.5.0-1                            nvidia-docker
nvidia-docker2.noarch           2.6.0-1                            nvidia-docker

Installing nvidia-docker2 shows:

$ yum install -y nvidia-docker2

installs the following packages:

$ yum list installed | grep nvidia
libnvidia-container-tools.x86_64   1.5.1-1                                 @libnvidia-container
libnvidia-container1.x86_64        1.5.1-1                                 @libnvidia-container
nvidia-container-runtime.x86_64    3.5.0-1                                 @nvidia-container-runtime
nvidia-container-toolkit.x86_64    1.5.1-2                                 @nvidia-container-runtime
nvidia-docker2.noarch              2.6.0-1                                 @nvidia-docker

Note the repositories where these packages were installed from.

We now enable the local-repository to simulate the new packages being published to the libnvidia-container experimental repository and check the available nvidia-docker2 versions:

$ yum-config-manager --enable local-repository
$ yum list --showduplicates nvidia-docker2 | tail -2
nvidia-docker2.noarch         2.6.0-1                           nvidia-docker
nvidia-docker2.noarch         2.6.1-0.1.rc.1                    local-repository

Showing the new version available in the local repository.

Running:

$ yum install nvidia-docker2
Last metadata expiration check: 0:01:15 ago on Fri Sep 24 12:49:20 2021.
Package nvidia-docker2-2.6.0-1.noarch is already installed.
Dependencies resolved.
===============================================================================================================================
 Package                                Architecture        Version                        Repository                     Size
===============================================================================================================================
Upgrading:
 libnvidia-container-tools              x86_64              1.6.0-0.1.rc.1                 local-repository               48 k
 libnvidia-container1                   x86_64              1.6.0-0.1.rc.1                 local-repository               95 k
 nvidia-container-toolkit               x86_64              1.6.0-0.1.rc.1                 local-repository              1.5 M
     replacing  nvidia-container-runtime.x86_64 3.5.0-1
 nvidia-docker2                         noarch              2.6.1-0.1.rc.1                 local-repository               13 k

Transaction Summary
===============================================================================================================================
Upgrade  4 Packages

Total size: 1.7 M

Showing that all the components of the stack will be updated with versions from the local-repository.

After installation the installed packages are shown as:

$ yum list installed | grep nvidia
libnvidia-container-tools.x86_64   1.6.0-0.1.rc.1                          @local-repository
libnvidia-container1.x86_64        1.6.0-0.1.rc.1                          @local-repository
nvidia-container-toolkit.x86_64    1.6.0-0.1.rc.1                          @local-repository
nvidia-docker2.noarch              2.6.1-0.1.rc.1                          @local-repository

Showing that:

  1. All versions have been installed from the same repository
  2. The nvidia-container-runtime package was removed as it is no longer required.

The nvidia-container-runtime executable is, however, still present on the system:

# ls -l /usr/bin/nvidia-container-runtime
-rwxr-xr-x 1 root root 2256280 Sep 24 12:42 /usr/bin/nvidia-container-runtime