harbor 通过脚本修改镜像保留策略

harbor 通过脚本修改保留策略

以项目为颗粒度修改保留策略

在Harbor 2.0中,可以使用REST API来修改项目的保留策略。以下是通过REST API修改项目保留策略的脚本示例:

#!/bin/bash

# 定义变量
HARBOR_HOST="https://your.harbor.host"
PROJECT_NAME="your_project"
KEEP_NUM=5
HARBOR_USERNAME="your_username"
HARBOR_PASSWORD="your_password"

# 获取登录令牌
TOKEN=$(curl -s -k -d "principal=$HARBOR_USERNAME&password=$HARBOR_PASSWORD" \
"$HARBOR_HOST/login" | jq -r ".token")

# 设置保留策略
curl -s -k -X PUT \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
"$HARBOR_HOST/api/v2.0/projects/$PROJECT_NAME/retention-rule" \
-d '{"scope": "GLOBAL", "params": {"keep_num": '$KEEP_NUM'}}'

# 输出结果
echo "Retention rule set for project $PROJECT_NAME."
以上脚本使用了curl和jq工具,需要先安装这两个工具。其中,需要根据实际情况修改以下变量:

HARBOR_HOST:Harbor的主机名,包括协议和端口号。
PROJECT_NAME:项目名称。
KEEP_NUM:保留策略中要保留的镜像版本数量。
HARBOR_USERNAME:Harbor的用户名。
HARBOR_PASSWORD:Harbor的密码。
执行以上脚本后,将会通过REST API设置指定项目的保留策略,并输出结果。请注意,以上操作需要具有管理员权限或具有相应项目的管理权限才能执行。

以镜像为颗粒度修改保留策略

在Harbor 2.0中,可以使用REST API来修改镜像的保留策略。以下是通过REST API修改镜像保留策略的脚本示例:
#!/bin/bash


### 定义变量
HARBOR_HOST="https://your.harbor.host"
PROJECT_NAME="your_project"
REPO_NAME="your_repository"
ARTIFACT_NAME="your_artifact"
KEEP_TAG_COUNT=10
HARBOR_USERNAME="your_username"
HARBOR_PASSWORD="your_password"

### 获取登录令牌
TOKEN=$(curl -s -k -d "principal=$HARBOR_USERNAME&password=$HARBOR_PASSWORD" \
"$HARBOR_HOST/login" | jq -r ".token")

### 设置保留策略
curl -s -k -X PUT \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
"$HARBOR_HOST/api/v2.0/projects/$PROJECT_NAME/repositories/$REPO_NAME/artifacts/$ARTIFACT_NAME/retention-rule" \
-d '{"scope": "TAG", "params": {"keep_tag_count": '$KEEP_TAG_COUNT'}}'

###输出结果
echo "Retention rule set for $ARTIFACT_NAME in repository $REPO_NAME."
以上脚本使用了curl和jq工具,需要先安装这两个工具。其中,需要根据实际情况修改以下变量:

HARBOR_HOST:Harbor的主机名,包括协议和端口号。
PROJECT_NAME:项目名称。
REPO_NAME:镜像仓库名称。
ARTIFACT_NAME:镜像名称。
KEEP_TAG_COUNT:保留策略中要保留的镜像版本数量。
HARBOR_USERNAME:Harbor的用户名。
HARBOR_PASSWORD:Harbor的密码。
执行以上脚本后,将会通过REST API设置指定镜像的保留策略,并输出结果。请注意,以上操作需要具有管理员权限或具有相应项目的管理权限才能执行。
posted @ 2023-04-06 17:47  liwenchao1995  阅读(257)  评论(0编辑  收藏  举报