Jacamar CI v0.4.0
Release: v0.4.0
Date: 01/25/2021
General Notes
Migrated two internal packages to now support a public API for key functionality used across multiple EPC CI projects (!58):
pkg/gitlabjwt
: Supported workflow for validating both the signature and key claims found in the CI_JOB_JWT. This JWT is validated against your GitLab instances JWKS endpoint (e.g., https://gitlab.com/-/jwks).pkg/rules
: Validation for shared variables relating to either Jacamar specifically or the ECP CI effort as a whole. All checks that have been defined realize the validator.
Addresses potential case in which failed Cobalt/Slurm jobs did not observe a defined NFS timeout/delay (!81).
This could only have occurred when artifacts are defined to occur
on_failure
.
Admin Notes
The cleanup stage (
clean
subcommand) will now require the configuration file be provided with the--configuration
argument (!71).This change is important to aligning with the custom executor’s implementation of logging in the
cleanup_exec
stage.Previously deployed instances of Jacamar-Auth did not require a second
--configuration
argument and will need manually updated to align with new requirement.
Integrated all Federation information/context into the RunAs validation scripts, removing Federation only scripting requirements (!65, !86).
See the updated federated documentation for details.
This is a potentially important change for deployments that are either leveraging Federation functionality. As it alters and, to a greater degree, simplifies the authorization flow.
Pre-RunAs list (allow/block) validation can now optionally be enabled via the configuration (!68).
[auth] lists_pre_validation = true ...
In previous iterations this ran regardless of configuration immediately prior to RunAs validation. By integration Federation validation into RunAs maintaining the separate lists is no longer required.
Jacamar subcommand (
jacamar translate
) added to “translate” a runner configuration from the forked deployment to a currently observed Jacamar configuration (!63).$ jacamar translate --help Usage: jacamar translate SOURCE TARGET Positional arguments: SOURCE The GitLab configuration TOML you wish to translate (default: /etc/gitlab-runner/config.toml). TARGET Optional target file for the newly generated Jacamar configuration file, default to current working directory when not provided. Options: --help, -h display this help and exit --version display version and exit
Added experimental plugin support for RunAs validation (!76).
To avoid Go issues shared context between Jacamar and an admin defined plugin is established via the Jacamar Plugins project.
jacamar--auth
now supports an--unobfuscated
flag that allows all errors to appear regardless of stage. (!83)[runners.custom] config_args = ["--unobfuscated", "config", ...] ...
All errors relating to authorization, job context identification, user downscoping, and JWT validation are replaced in the user job log with generic error messages by default.
Update supported GitLab-Runner to version
13.7.0
, with minimized patching requirements (!72).Added configurable timeout for Jacamar-Auth to wait before sending
SIGKILL
(!71).Updated OLCF focused testing structure for Ascent (!62).
Bug & Development Fixes
Updated to Go release 1.15.6 (!64).
Correctly establish default values for configuration in all cases (!71).
Cleaner error handling within
jacamar-auth
to enforce default obfuscation for any potentially sensitive error (!74).Correctly leverage
_prefix
macro in RPM spec (!79).Added Go/GCC to Pavilion containers and updated associated test scripts to build Jacamar requirements (!78, !80).
System logging of
jacamar-auth
now handled through the Logrus packages (!82).Improve RPM related make commands (!85).