admission webhook 花式玩法 – 发送 http(s) 请求

本篇由来

在使用 Admission Webhook 的时候,很可能会涉及到发送 http 请求以获取某些数据。在 v0.1.1 版本中对此进行了支持,本文主要来介绍如何在 kinitiras 中发送 http 请求,如果对 kinitiras 还不熟悉,请参考前篇。

功能介绍

当前仅支持在使用 CUE 时可以发送 http(s) 请求,相关结构定义在 processing 下,其中 output 用来定义输出结果,需要与 http response 的结构一致,按需定义即可。http 部分和 CUE http 结构一致。

示例:

object: _ @tag(object)

processing: {
http: {
method: *"GET" | string
url: "http://127.0.0.1:8090/api/v1/token?val=test-token"
request: {
body ?: bytes
header: {
"Accept-Language": "en,nl"
}
trailer: {
"Accept-Language": "en,nl"
User: "foo"
}
}
}
output: {
token?: string
}
}

validate:{
reason: "hello cue"
valid: object.metadata.name == "ut-cue-success-with-parameter" && processing.output.token == "test-token"
}

上面这段 CUE 配置的含义是传入一个 k8s 资源对象,访问 http://127.0.0.1:8090/api/v1/token?val=test-token 获取 token 信息,最终返回 validate 结果,如果传入的 k8s 对象的名字是 ut-cue-success-with-parameter 并且 http 返回结果中的 token 是 test-token 的话,校验成功。

CUE http 相关处理参考 kubevela 相关能力的实现,涉及到的部分包在当前 CUE 中属于 internal,无法在外部直接引用,故部分内容直接在 builtin 目录下重新写了一遍。


原文始发于微信公众号(云原生散修):admission webhook 花式玩法 – 发送 http(s) 请求

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/223476.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!