Membersihkan Registri GitLab untuk admin Kubernetes

Saat ini, di setiap rumah ada klaster kubernetes, aplikasi diluncurkan ke klaster dengan tag. Gambar dari aplikasi yang diterapkan dikirim sebagai tag ke repositori proyek Registry GitLab, yang secara bertahap membengkak ke ukuran yang luar biasa.





Solusi yang ada

  • Solusi di luar kotak





    Settings โ†’ CI/CD โ†’ CleanUp policy for tags. , Bulk Delete , , . - , .





  • community





    1. " "





    2. .





, :





. , - , ( Job, CronJob ). , .





GitLab

GitLab registry , . , .





ron ,





sudo gitlab-ctl registry-garbage-collect
      
      







sudo gitlab-ctl registry-garbage-collect -m
      
      



: registry, push, pull.





registry readonly.





sudo vi /etc/gitlab/gitlab.rb
      
      



registry['storage'] = {
    'maintenance' => {
      'readonly' => {
        'enabled' => true
      }
    }
  }
      
      



sudo gitlab-ctl reconfigure
      
      



enabled false sudo gitlab-ctl reconfigure.





GitLab





GitLab GitLab API api + read_repository write_registry.





, registry GitLab, id id registry.





GitLab pagination

GitLab , 20 , 100 . X-Total, , .





  1. /api/v4/projects, endpoint . , id.





  2. , .





  3. project[id] /api/v4/projects/{project[id]}/registry/repositories. id .





  4. , , /api/v4/projects/{repo['project_id']}/registry/repositories/{repo['id']}/tags





, :





{
    "location": "mygitlab.abc.ru:3000/dev/my-awsome-app/base:deploy_123",
    "name": "deploy_123",
    "path": "dev/my-awsome-app/base:deploy_123"
  }
      
      



del_url, URL .





- , .





Kubernetes





Kubernetes kubernetes. , , - .





Kubernetes , kubectl rollout history < >, ReplicaSet . . , . replicaset namespace + label app replica_set.spec.template.spec.service_account. - , - . , N .





- Kubernetes, GitLab .





: Job CronJob ReplicaSet. .





, :)





" " ...





GitLab, , . .





, CronJob Job. .





Otomasi ditulis dengan python , tapi ini tidak terlalu penting. Anda dapat secara signifikan mengurangi ukuran kode dan biaya memori dengan sedikit pemikiran.








All Articles