高级功能

    作为数据配置语言,CUE 对于自定义结构体支持一些黑魔法。

    你可以在 定义 for 循环。

    如下所示,该示例将展示如何在 trait 中渲染多个 Kubernetes Services:

    上面 trait 对象可以在以下 Application 被使用:

    你可以在 processing.http 字段下定义 HTTP 请求所需的字段,包括:methodurlbodyheadertrailer ,响应将会被存储在 字段中。

    随后你可以在 patch 或者 output/outputs 字段中引用 processing.output 自动中的返回数据。

    如下所示:

    以上示例,该 Trait Definition 将发送请求获取 token 信息,并将数据插入到给定到 component 实例中。

    具体来说,context.output 字段中会包含已经被渲染的 workload API 资源(特指 GVK 已经在 ComponentDefinition 中 spec.workload 字段定义的资源),同时 字段中会包含其他已经被渲染的非 workload API 资源。

    下面是数据传递的示例:

    关于 worker ComponentDefinition 渲染期间的一些细节:

    1. 非 workload,其他渲染完成的资源将存储在 context.outputs.<xx> 字段中,其中 <xx> 在每个 template.outputs 字段中名字都是唯一的。

    综上,TraitDefinition 可以从 context 字段读取完成渲染的 API 资源(比如:)。