This section ensures product configuration has been defined, customized, and is available for later steps in the workflow.
This workflow uses ${ADMIN_DIR} to retain files that define site preferences for IUF. ${ADMIN_DIR} is defined separately from ${ACTIVITY_DIR} and ${MEDIA_DIR} based on the assumption that the files in ${ADMIN_DIR} will be
used when performing future IUF operations unrelated to this workflow.
NOTE The following steps assume ${ADMIN_DIR} is empty. If this is not the case, i.e. ${ADMIN_DIR} has been populated by previous IUF workflows, ensure the content in ${ADMIN_DIR} is up to date with the latest content
provided by the HPC CSM Software Recipe release content being installed. This may involve merging new content provided in the latest branch of the hpc-csm-software-recipe repository in VCS or provided in the files extracted from
the HPC CSM Software Recipe with the existing content in ${ADMIN_DIR}.
update-vcs-config stage
Change directory to ${ADMIN_DIR}
(ncn-m001#) Change directory
cd ${ADMIN_DIR}
Copy the sat bootprep and product_vars.yaml files from the uncompressed HPC CSM Software Recipe distribution file in the media directory to the current directory.
(ncn-m001#) Copy sat bootprep and product_vars.yaml files
cp "${MEDIA_DIR}"/hpc-csm-software-recipe-*/vcs/product_vars.yaml .
cp -r "${MEDIA_DIR}"/hpc-csm-software-recipe-*/vcs/bootprep .
(ncn-m001#) Examine the contents of ${ADMIN_DIR} to verify the expected content is present
find . -type f
Example output:
./bootprep/management-bootprep.yaml
./bootprep/compute-and-uan-bootprep.yaml
./product_vars.yaml
Edit the compute-and-uan-bootprep.yaml and management-bootprep.yaml files to account for any site deviations from the default values. For example:
slurm-site CFS configuration layer and uncomment the pbs-site CFS configuration layer in compute-and-uan-bootprep.yaml if PBS is the preferred workload managergpu-{{recipe.version}} CFS configuration layer and gpu-image image definition in compute-and-uan-bootprep.yaml if the system has GPU hardwarecompute-and-uan-bootprep.yaml and management-bootprep.yaml files for products that are not needed on the systemCreate a site_vars.yaml file in ${ADMIN_DIR}. This file will contain key/value pairs for any configuration changes that should override entries in the default section of the HPE-provided product_vars.yaml file.
There are comments at the top of the product_vars.yaml file that describe the variables and related details. The following are a few examples of site_vars.yaml changes:
default section containing a network_type: "cassini" entry to designate that Cassini is the desired Slingshot network type to be used when executing CFS configurations later in the workflowsuffix entry to the default section to append a string to the names of CFS configuration, image, and BOS session template artifacts created during the workflow to make them easy to identifyAdditional information on site_vars.yaml files can be found in the Site and recipe variables and update-vcs-config sections.
<create a site_vars.yaml file with desired key/value pairs >
Ensure the site_vars.yaml file contents are formatted correctly. The following text is an example for verification purposes only.
(ncn-m001#) Display the contents of an example site_vars.yaml file
cat site_vars.yaml
Example output:
default:
network_type: "cassini"
suffix: "-test01"
Ensure the expected files are present in the admin directory after performing the steps in this section.
(ncn-m001#) Examine the contents of ${ADMIN_DIR} to verify the expected content is present
find . -type f
Example output:
./bootprep/management-bootprep.yaml
./bootprep/compute-and-uan-bootprep.yaml
./product_vars.yaml
./site_vars.yaml
Once this step has completed:
${ADMIN_DIR} is populated with product_vars.yaml, site_vars.yaml, and sat bootprep input filesupdate-vcs-config stageFor each product that uploaded Ansible configuration content to a configuration management VCS repository, the update-vcs-config stage attempts to merge the pristine branch of the configuration management repository into a
corresponding customer working branch.
Understand the default branching scheme defined in product_vars.yaml, which is typically integration-<x.y.z>. Details are provided in the update-vcs-config stage documentation.
Create and configure site_vars.yaml to properly define the customer branching strategy as well as any needed product-specific overrides and provide it as an argument when invoking iuf run.
If the default branching scheme described above does not match the customer branching scheme used, use git to perform a manual migration of VCS content to the default branching scheme before running the update-vcs-config stage.
For example, if the customer branch integration was previously used with the slingshot-host-software-2.0.0 release and slingshot-host-software-2.0.2 is now being installed with the default integration-<x.y.z> branching
scheme, create the branch that IUF expects from the current integration branch in the slingshot-host-software-config-management repository:
(ncn-m001#) Create an integration-2.0.0 branch from integration to align with IUF expectations
ncn-m001:/mnt/admin/cfg/slingshot-host-software-config-management# git checkout integration
ncn-m001:/mnt/admin/cfg/slingshot-host-software-config-management# git pull
ncn-m001:/mnt/admin/cfg/slingshot-host-software-config-management# git branch integration-2.0.0
ncn-m001:/mnt/admin/cfg/slingshot-host-software-config-management# git checkout integration-2.0.0
ncn-m001:/mnt/admin/cfg/slingshot-host-software-config-management# git push
When the update-vcs-config stage is run, IUF will now use the integration-2.0.0 branch as the starting point for merging because it adheres to the expected branching scheme.
If there are workarounds checked into VCS that modify the HPE-provided Ansible plays or roles and the workarounds are no longer needed in the new version of software being upgraded to, it is beneficial to revert the workarounds
prior to running the update-vcs-config stage to avoid merge conflicts.
For example, if the following workaround was present in the Slurm integration-1.2.9 branch:
ncn-m001:/mnt/admin/cfg/slurm-config-management# git checkout integration-1.2.9
ncn-m001:/mnt/admin/cfg/slurm-config-management# git log
commit 133d5fc815aafd502d3aca07961524e4f9eab445 (origin/integration-1.2.9, integration-1.2.9)
Author: Joe Smith <joe.smith@example.com>
Date: Fri Mar 3 19:26:53 2023 +0000
Workaround for bug #234232
… and an upgrade to Slurm integration-1.2.10 is being performed, then a new working branch should be created and the workaround should be reverted from the new branch:
ncn-m001:/mnt/admin/cfg/slurm-config-management# git branch integration-1.2.10
ncn-m001:/mnt/admin/cfg/slurm-config-management# git checkout integration-1.2.10
ncn-m001:/mnt/admin/cfg/slurm-config-management# git revert 133d5fc815aafd502d3aca07961524e4f9eab445
ncn-m001:/mnt/admin/cfg/slurm-config-management# git push
When the update-vcs-config stage is run, IUF will now use the integration-1.2.10 branch, and the merge conflict that would have occurred will be avoided as the workaround was reverted.
NOTE Additional arguments are available to control the behavior of the update-vcs-config stage, for example -rv. See the update-vcs-config stage
documentation for details and adjust the examples below if necessary.
The “Install and Upgrade Framework” section of each individual product’s installation document may contain special actions that need to be performed outside of IUF for a stage. The “IUF Stage Documentation Per Product”
section of the HPE Cray EX System Software Stack Installation and Upgrade Guide for CSM (S-8052) provides a table that summarizes which product documents contain information or actions for the update-vcs-config stage.
Refer to that table and any corresponding product documents before continuing to the next step.
Invoke iuf run with -r to execute the update-vcs-config stage. Use site variables from the site_vars.yaml file found in ${ADMIN_DIR} and recipe variables from the product_vars.yaml
file found in ${ADMIN_DIR}.
(ncn-m001#) Execute the update-vcs-config stage.
iuf -a ${ACTIVITY_NAME} run --site-vars "${ADMIN_DIR}/site_vars.yaml" -bpcd "${ADMIN_DIR}" -r update-vcs-config
Once this step has completed:
update-vcs-config stageSome products must be manually configured prior to the creation of CFS configurations and images. The “Install and Upgrade Framework” section of each individual product’s installation documentation contains instructions for product-specific configuration, if any. Major changes may also be documented in the HPE Cray EX System Software Stack Installation and Upgrade Guide for CSM (S-8052). The following highlights some of the areas that require manual configuration changes but is not intended to be a comprehensive list. Note that many of the configuration changes are only required for initial installation scenarios.
group_vars (done for each product release)sdu setupsat authsat setrevOnce this step has completed:
If performing an initial install or an upgrade of non-CSM products only, return to the Install or upgrade additional products with IUF workflow to continue the install or upgrade.
If performing an upgrade that includes upgrading CSM, return to the Upgrade CSM and additional products with IUF workflow to continue the upgrade.