Since 2021, Kitware’s Software Solutions team has been working with Lawrence Livermore National Laboratory, Los Alamos National Laboratory, and Sandia National Laboratories to set up the “Tri-Lab Remote Computing Enablement (RCE) Continuous Integration (CI)” system. This system enables users at three national labs to run GitLab CI jobs on supercomputer clusters that are not at the same national lab by simply interacting with their home lab’s GitLab instance. This capability is essential as it allows ongoing code improvements to be tested seamlessly on supercomputers at multiple sites through GitLab CI, ensuring code correctness and reliability across system architectures.

The Software Solutions team has played a critical role in ensuring that GitLab and the surrounding tools can handle the unique needs of the three interacting spheres of security.  This effort involved several security agreements, lots of policy changes, integrating the Labs source code with GitLab and improving GitLab code to successfully implement the Tri-Lab RCE CI workflow.

The team has been able to upstream changes to GitLab, gitlab-runner, and to the lab’s custom Runner executor, which is HPC-aware, called Jacamar. 

Thanks to the team’s efforts, we have been introduced to several different teams at GitLab and are one of the early participants in the Contributor Success program. This program promises more consistent review times for those who have earned the status through consistent work. Kyle Edwards, in particular, has earned several points of recognition, including being awarded the Most-Valuable-Person of GitLab’s February 2022 release. The Software Solutions team’s success in upstreaming changes to GitLab is a testament to their hard work and dedication. 

We will use this series of blogs to highlight the changes that have been made to GitLab’s codebase and some of the future work that has yet to be merged. Some of the notable changes that we will discuss in the future blogs include continuous integration runner tokens, user deactivation, and merge train API. Continuous integration runner enables managing lifetime of GitLab-Runner tokens configuration and vary based on the runner type. For the user deactivation, we improved GitLab’s user deactivation feature with customizable messages and variable inactivity periods. Finally for the merge train API, we have expanded the capabilities by adding new endpoints for both querying the status of a merge train and for adding MRs to an existing merge train.

We would like to thank the TriLabs for providing this opportunity to Kitware. At Kitware, we have expertise with a complete software development lifecycle that includes setting up and customizing GitLab CI for your code. Contact us at kitware@kitware.com if you have any questions or need help. 

This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344.

Leave a Reply