欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Harbor的WebHooks功能使用

程序员文章站 2024-03-24 22:35:52
...

Harbor的WebHooks功能使用

目的

为了对Harbor的镜像实时监控,便研究了下Harbor自带的WebHooks功能。

WebHooks

支持的功能如图所示:
Harbor的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'
            }
        ]
    }
}

拿到了上面的请求内容,接下来要对镜像做任何操作都是可以的。

相关标签: 葵花宝典 python