1.2. 发现注册端点
可插拔发现 API 使用 Discovery 注册端点,将发现的插件注册到 Cryostat。此端点管理来自插件和 Cryostat 的 GET
和 POST
请求。如果您没有使用 Cryostat 注册插件,则插件无法向 Cryostat 提供目标信息。
Discovery 注册端点仅适用于 /api/v2.2/discovery
。
当您发现插件程序向 Cryostat 发送 POST
请求以注册目的时,Cryostat 会读取 回调
URL 并将 GET
请求发送到插件。如果插件正确响应 GET
请求,则 Cryostat 通过响应初始 POST
请求来接受注册请求。此过程可确保插件处于活跃状态并可用于 Cryostat。
失败的请求可能会表示插件失败或离线。在这种情况下,端点会从 Red Hat OpenShift 上的数据库中删除插件的信息。
注册过程后,Cryostat 会将常规 POST
请求发送到插件,以确保插件仍在运行。
您还可以在 GET
或 POST
请求中指定 id
和 token
元素。这些元素是可选的,但您可以在希望为之前使用 Cryostat 注册的插件重复使用信息时考虑使用它们。
Cryostat 为注册插件创建一个令牌,此令牌包含到期和授权信息。如果 POST
请求包含有效的 id
和 token
信息,Cryostat 可以重复使用插件注册信息并刷新令牌。如果请求只包含 id
元素或 token
元素,则必须使用 Cryostat 重新注册插件。
在 Cryostat 将 POST
请求发送到插件 的回调
组件后,插件可能会向 Cryostat 发送 POST
请求,以刷新插件的注册详情。该插件必须在请求中包含其 id
和 token
信息。然后 Cryostat 可以使用 Discovery 注册端点来刷新插件的详细信息。Cryostat 发送包含更新令牌到插件的响应,插件可以使用此令牌来将来的请求到 Cryostat。
Cryostat 可以定期向插件发出 POST
请求,以提醒有关使用相同的 id
和 token
信息重新注册带有 Cryostat 的插件。如果插件忽略这个请求,令牌可能会过期,插件必须使用 Cryostat 完成完整注册。
从外部插件发送的 POST
请求示例
{ "realm": "my-plugin", "callback": "http://my-plugin.my-namespace.svc.local:1234/callback" }
{
"realm": "my-plugin",
"callback": "http://my-plugin.my-namespace.svc.local:1234/callback"
}
Cryostat 发送到插件的 POST
响应示例
{ "data": { "result": { "id": "922dd4f4-9d7c-4ae2-8982-0903868226a6", "token": "<key_value>" } }, "meta": { "status": "Created", "type": "application/json" }
{
"data": {
"result": {
"id": "922dd4f4-9d7c-4ae2-8982-0903868226a6",
"token": "<key_value>"
}
},
"meta": {
"status": "Created",
"type": "application/json"
}