高级功能
作为数据配置语言,CUE 对于自定义结构体支持一些黑魔法。
你可以在 定义 for 循环。
如下所示,该示例将展示如何在 trait 中渲染多个 Kubernetes Services:
上面 trait 对象可以在以下 Application 被使用:
你可以在 processing.http
字段下定义 HTTP 请求所需的字段,包括:method
, url
, body
, header
和 trailer
,响应将会被存储在 字段中。
随后你可以在 patch
或者 output/outputs
字段中引用 processing.output
自动中的返回数据。
如下所示:
以上示例,该 Trait Definition 将发送请求获取 token
信息,并将数据插入到给定到 component 实例中。
具体来说,context.output
字段中会包含已经被渲染的 workload API 资源(特指 GVK 已经在 ComponentDefinition 中 spec.workload
字段定义的资源),同时 字段中会包含其他已经被渲染的非 workload API 资源。
下面是数据传递的示例:
关于 worker
ComponentDefinition
渲染期间的一些细节:
- 非 workload,其他渲染完成的资源将存储在
context.outputs.<xx>
字段中,其中<xx>
在每个template.outputs
字段中名字都是唯一的。
综上,TraitDefinition
可以从 context
字段读取完成渲染的 API 资源(比如:)。