herlon214 / gitlab-registry-gc

Gitlab registry garbage collector

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gitlab Registry Garbage Collector

Delete automatically old image tags registered in your Gitlab Registry.

The default CONFIG_FILE path set in the Docker image is /var/grgc/config.yaml.

Usage

$ docker run -v yourconfigpath.yaml:/var/grgc/config.yaml herlon214/gitlab-registry-gc:latest

> gitlab-registry-gc@1.0.0 start /app
> DEBUG=grgc node src/index.js

grgc Getting token...
grgc Authenticating as herlon214...
grgc Authenticated successfully!
grgc Waiting for check period...
grgc Found 3 images for [yourworkspace/projectA] +19s
grgc Found 3 images for [yourworkspace/projectB] +235ms
grgc Found 8 images for [yourworkspace/projectC], 3 higher than the limit +902ms
grgc Deleting old image tags... +0ms
grgc [DELETED] /yourworkspace/projectC/registry/repository/76039/tags/master.98b3d8d +911ms
grgc [DELETED] /yourworkspace/projectC/registry/repository/76039/tags/master.9433102 +1ms
grgc [DELETED] /yourworkspace/projectC/registry/repository/76039/tags/master.846f0f5 +21ms
grgc 3 image tags deleted for [yourworkspace/projectC] +0ms

Configuration file

Example of config.yaml, setup:

rootUrl: https://gitlab.com # Default

# This is not available in the Gitlab api, so we need to
# login using your username and password
username: youruser
password: yourpass

garbage:
  max_parallel_delete: 5 # Max requests to be executed while deleting in parallel
  max_entries: 5 # Max image tags you want to keep
  check_period: "* * * * *" # Cron job format for period check
  order: DESC # Order to keep tags, e.g: DESC will keep the recently created
  # If you want to prevent some tag to be deleted, you can use wildcards
  # you can use all micromatch (https://www.npmjs.com/package/micromatch) patterns
  exclude:
    - master
    - develop.*
    - latest

projects: # You need at least developer permission in each project
  - https://gitlab.com/yourworkspace/projectA
  - https://gitlab.com/yourworkspace/projectB
  - https://gitlab.com/yourworkspace/projectC

About

Gitlab registry garbage collector


Languages

Language:JavaScript 97.0%Language:Dockerfile 3.0%