Harbor的WebHooks功能和扫描器的使用
目的
为了对Harbor的镜像实时监控,便研究了下Harbor自带的WebHooks功能。
WebHooks
支持的功能如图所示:
当开启功能后,执行图中的操作就会发送相应的请求到指定的地址。官网对每个请求的详细描述其实不怎么清晰,下面以pushImage为例,看下如果是在实际的开发中应该怎么去集成这个功能。
案例:pushImage
- 写一个简单的server,捕获发送的内容
from flask import Flask, request
app = Flask(__name__)
@app.route('/test', methods=['POST', 'GET'])
def push_image():
# 要是不知道信息在哪儿,都打印出来完事
postfrom = request.form
postvalues = request.values
postjson = request.json
print(postfrom )
print(postvalues )
print(postjson )
return ok
if __name__ == '__main__':
# 这里隐去了我的IP和端口
# app.run(host='xx.xx.xx.xx', port=xxxx)
app.run()
- 查看请求的内容
{
'occur_at': 1605516705,
'operator': 'admin',
'type': 'pushImage', # 操作类型,可以看到和上面的截图对应
'event_data': {
'repository': {
'date_created': 1605516705,
'repo_type': 'private',
'repo_full_name': 'xxx/pod2daemon-flexvol',
'namespace': 'ctnsec',
'name': 'pod2daemon-flexvol'
},
'resources': [{
# resource_url 镜像地址
'resource_url': 'xx.xx.xx.xx/ctnsec/pod2daemon-flexvol:v3.10.4',
'tag': 'v3.10.4',
'digest': 'sha256:a0faf9438b14bc'
}
]
}
}
拿到了上面的请求内容,接下来要对镜像做任何操作都是可以的。
扫描器
待更新