Skip to content

Deploy modes

There are several ways to deploy dependabot-gitlab app.

Helm chart

The preferred deployment type is deploying on kubernetes cluster using official helm chart.

Add helm repo:

sh
helm repo add dependabot https://dependabot-gitlab.gitlab.io/chart

Install application:

sh
helm install dependabot dependabot/dependabot-gitlab --values values.yaml

For the full list of configurable options, see values.

Terraform

deploy directory contains terraform configuration example to deploy dependabot-gitlab app on GKE cluster.

Docker compose

It is possible to use docker-compose.yml to start the app using docker compose up command:

sh
docker compose up -d

INFO

Application internally uses docker-in-docker setup to start updater containers. When debugging issues with failures to download docker images, take note that nothing is shared with the host machine and all docker images are downloaded inside worker container.

Custom docker-compose.yml

By default, core docker image will contain a copy of docker-compose.yml file which is used by app to dynamically start updater containers.

In case a custom docker-compose.yml file is used (to provide additional environment variables for example), it needs to be also mounted inside worker container, so that application can correctly pass additional environment variables to updater containers.

This is done by mounting the custom docker-compose.yml file via volumes instruction and defining path inside container via SETTINGS__UPDATER_TEMPLATE_PATH environment variable.

Example:

yaml
x-environment: &environment_variables
  SOME_ADDITIONAL_CUSTOM_ENV_VAR: foo

...

services:
  worker:
    image: *base_image
    depends_on:
      - redis
      - migration
    volumes:
      - tmp:/home/dependabot/app/tmp
      - docker-certs-client:/certs/client:ro
      - $PWD/custom-docker-compose.yml:/home/dependabot/app/docker-compose.yml
    environment:
      <<: *environment_variables
      SETTINGS__UPDATER_TEMPLATE_PATH: /home/dependabot/app/docker-compose.yml