Get rid of docker in docker requirement for Dependency Scanning
Customers have declined to use some of our scanning solutions because docker in docker is leveraged and that requires privileged runners, and it also prevents the runners from caching the images. The content of the docker-in-docker container is lost after the job run, and only
docker:stable is cached. As a result we are working to remove this requirement, and in this release we will remove the docker in docker requirement from the dependency scanning solution.
Problem to solve
Docker-in-docker is only required to be able to orchestrate the analyzers. One solution would be to port the code of the Dependency Scanning orchestrator directly into the runner.
NB: SAST and Dependency scanning share a common library and the same orchestration model, see SAST issue
See &971 for previous comments.
As describe here:
include: template: DS-gemnasium.gitlab-ci.yml template: DS-bundler-audit.gitlab-ci.yml template: DS-retire-js.gitlab-ci.yml [...]
So that we have only one SSOT and one single location to update for analyzers. Users who want to use specific analyzers can use the one-liner
TODO: check SAST issue and adjust this implementation plan accordingly.
- Update all related tests projects in https://gitlab.com/gitlab-org/security-products/tests
What does success look like, and how can we measure that?
There is no more orchestration layer for Dependency Scanning, instead each analyzer has its own job configured by the corresponding vendored template.