Harbor仓库清理

Harbor仓库清理脚本

#!/bin/bash
set -e
HARBOR_URL=192.168.137.129
HARBOR_PASSWD=Harbor12345
OLD_VERSION_NUM=2

function get_repos_list(){
  repos_list=$(curl -s -k -u admin:${HARBOR_PASSWD} https://${HARBOR_URL}/api/projects?page=1&page_size=50)
  mkdir -p $PWD/reposList
  echo "${repos_list}" | jq '.[]' | jq -r '.project_id' > $PWD/reposList/reposList.txt
}
function get_images_list(){
  mkdir -p $PWD/imagesList
  for repo in $(cat $PWD/reposList/reposList.txt);do
    images_list=$(curl -s -k -u admin:${HARBOR_PASSWD} https://${HARBOR_URL}/api/repositories?project_id=${repo})
    echo "${images_list}" | jq '.[]' | jq -r '.name' > $PWD/imagesList/${repo}.txt
  done
}
function delete_images(){
  #### get html
  htmlinfo=$(curl -s -k -u admin:${HARBOR_PASSWD} https://${HARBOR_URL}/api/repositories/$1/tags)
  #### images num
  num=$(echo "${htmlinfo}" | jq "length - ${OLD_VERSION_NUM}")
  if [[ "${num}" -le "0" ]]; then
    echo "$1 has no need of cleanup!!!"
    return
  fi
  #### get images_tag
  for index in $(seq 0 ${num}); do
    tag=$(echo "${htmlinfo}" | jq ".[${index}]" | jq -r '.name')
    echo "images=$1 ************************** tag= ${tag}"
    curl -s -k -u admin:${HARBOR_PASSWD} -X DELETE https://${HARBOR_URL}/api/repositories/$1/tags/${tag}
  done
}
function clean_registry(){
  image_name=$(docker ps | grep registry | grep photon | awk -F " " '{print $2}')
  docker run -it --name gc --rm --volumes-from registry ${image_name} garbage-collect  /etc/registry/config.yml
}
function entrance(){
  serverip=`ip addr|grep inet|grep 192.168|grep -v inet6|awk '{print $2}'|cut -d/ -f1`
  if [[ "$serverip" != "${HARBOR_URL}" ]]; then
    echo "harbor is not running in the machine!!!"
    exit 1  
  fi
  get_repos_list
  get_images_list
  for repo in $(cat $PWD/reposList/reposList.txt);do
    for images in $(cat $PWD/imagesList/${repo}.txt); do
      delete_images ${images}
    done
  done
  clean_registry
}
entrance
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值