Jacamar CI v0.10.0
Release: v0.10.0
Date: 1/31/2022
Note
Release v0.9.0 relocated all RPM installed binaries into a single
location, /opt/jacamar/bin. This will offer a better standard moving
forward, please be aware of this when upgrading from an older version.
Admin Changes
JSON Web Token package updates and configurable expiration delay (!301)
By default cleanup related actions will allow a 15-minute expiration in the JWT to account for a range of potential delays that conflict with the requirement to validate at every stage.
[auth] jwt_exp_delay = "15m"
Added option for unrestricted command line arguments (!294)
This feature is intended for deployments where
hidepidhas been used when mounting proc(5).[general] unrestricted_cmd_line = true
Improved default seccomp and added plugin feature flag support (!286)
By default when
downscope = "setuid"anysetuidorsetgidtarget is restricted to the validated user.[auth.seccomp] ff_enable_plugin = true validation_plugin = "/opt/jacamar/plugins/seccomp.so"
Note
The
validation_pluginwill remain behind the associated feature flag until more testing/feedback can be organized for the next release. Please be aware that this feature is subject to changes.Go plugin support has been added to invoke a
SeccompExpansion(*libseccomp.ScmpFilter, string) errorfunction during the startup ofjacamar-auth, providing the default set of filters for potential modification before they are loaded.package main import ( "syscall" libseccomp "github.com/seccomp/libseccomp-golang" ) func SeccompExpansion(filter *libseccomp.ScmpFilter, stage string) error { callID, _ := libseccomp.GetSyscallFromName("mkdir") return filter.AddRule(callID, libseccomp.ActErrno.SetReturnCode(int16(syscall.EPERM))) }
Explicitly manage signals in non-root cases for
setuidwith a constructedjacamar signal SIGNAL PIDcommand (!316)The
jacamar signalcommand is only generated in cases whererootpermissions or capabilities (CAP_KILL) are lacking. This process observes the same limitations and protections as any other downscopedjacamarcommand.Signals are observed in accordance with the custom executor, this means
SIGTERMandSIGKILLrespectively.
Added system logging when
jacamar-authencounters SIGTERM (!305)Process timeout established for
jacamarandjacamar-authbased upon job timeout (!311)This timeout context is meant to address potential cases where the parent process (e.g.,
gitlab-runner) is no longer able to send the appropriate signal.
Bug & Development Fixes
Error handling enhancements for internal API (!302)
GitLab license scanning to verify compliance (!298)
Minimize argument requirements while ensuring existing support (!288)
Introduce
Signalerinterface to command structure (!313)Remove watcher package in favor of more minimal system packages (!300)
Improve Pavilion test result output (!299)
Updated all build tag formats for Go 1.17 (!293)
Clarified function name and documentation in
verifycapspackage (!287)Added basic tests for NERSC instance (!292)
Corrected
VERSIONbeing provided during container builds (!321)$ make rpm-container VERSION=0.10.0.example Running RPM Build in podman... ... /builds/ecp-ci/jacamar-ci/rpms/jacamar-ci-0.10.0.example-1.el7.x86_64.rpm
Correct Slurm test image and test syntax (!319)
Verify
go.modchanges are committed during CI (!318)Mock
/jobsendpoint fork Pavilion test scripts (!317)