Skip to content

Use Gemnasium FIPS-enabled images automatically

What does this MR do and why?

Automatically use FIPS-enabled Docker images of Gemnasium (Dependency Scanning) when FIPS mode is enabled in the GitLab instance.

Job rules are added to the Gemnasium CI jobs to set DS_IMAGE_SUFFIX to "-fips" when predefined CI_GITLAB_FIPS_MODE is set.

See #357922 (closed)

This depends on !86704 (merged) and sits on top of remove-deprecated-ds-analyzers.

Right now the target branch is remove-deprecated-ds-analyzers to make the diff readable.

Testing

These two following contexts become RSpec shared_examples:

  • language detection, as-is
  • when PIP_REQUIREMENTS_FILE is defined, as PIP_REQUIREMENTS_FILE support

This makes possible to uses these shared examples to cover two contexts:

  • default, which already existed prior to this MR
  • when FIPS mode is enabled, which is a new context

Also, langage detection and PIP_REQUIREMENTS_FILE support now both depend include new shared examples named predefined image suffix. This ensures that the Docker image has the expected suffix:

  • By default there is no suffix.
  • when FIPS mode is enabled, the suffix is "-fips".

Because CI variables aren't expanded in the job parameter image:name when running the spec, predefined image suffix performs the following checks:

  • The image name ends with $DS_IMAGE_SUFFIX.
  • $DS_IMAGE_SUFFIX is set to the expected_image_suffix.

Screenshots or screen recordings

These are strongly recommended to assist reviewers and reduce the time to merge your change.

How to set up and validate locally

  • Create a project compatible with Dependency Scanning.
  • Add Dependency Scanning to CI pipeline.
  • Run a new pipeline where CI_GITLAB_FIPS_MODE is set to "true".
    • Compatible Gemnasium scanning jobs are triggered
    • These jobs use FIPS-enabled images, like gemnasium:2-fips.
  • Run a pipeline where CI_GITLAB_FIPS_MODE is "false" or not set.
    • Compatible Gemnasium scanning jobs are triggered
    • These jobs use default images, like gemnasium:2.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Fabien Catteau

Merge request reports

Loading