2个版本
0.1.2 | 2024年1月1日 |
---|---|
0.1.1 | 2023年12月27日 |
0.1.0 |
|
#685 在 编码
在 3 个crate中使用
18KB
305 代码行
mistletoe-api
此crate包含从引擎和包之间传递的常用API对象。它在引擎中使用,但也可以与mistletoe-bind
结合使用,由包编写者使用。
有关 Mistletoe包管理器 的更多信息,请参阅 mistletoe
crate。
lib.rs
:
这是主crate,用于在引擎和包之间传递的API对象。它们大致遵循与Kubernetes资源定义相同的模式。下面提供了一些输出示例。
MistPackage
apiVersion: mistletoe.dev/v1alpha1
kind: MistPackage
metadata:
name: nginx-example
labels:
mistletoe.dev/group: mistletoe-examples
这是通过包的 info
方法提供的。它包含一些常用的元数据,特别是 name
和 labels
。一些标签在 Mistletoe 本身返回有关包的信息给最终用户时使用。
MistInput
这是作为包生成输出时接收的主要输入传递给包的
apiVersion: mistletoe.dev/v1alpha1
kind: MistInput
data:
name: my-nginx
namespace: my-namespace
重要的是 data
,而 data
是完全自由的格式。这可以大致认为是Helm的值的等价物。此包提供的对象有方法将 data
转换为包定义的任何Deserialize对象。
MistResult
apiVersion: mistletoe.dev/v1alpha1
kind: MistResult
data:
result: Ok
message: 'nothing went wrong' # This line is optional
files:
namespace.yaml: |
apiVersion: v1
kind: Namespace
metadata:
name: my-namespace
或者...
apiVersion: mistletoe.dev/v1alpha1
kind: MistResult
data:
result: Err
message: 'something went wrong'
这是包返回给引擎的内容,包含包执行的结果。返回错误时所需的字段是 result: Err
以及一个由包提供的 message
,描述出错的原因。返回成功输出时所需的字段是 result: Ok
和一个可以以目录结构形式输出的 files
映射。在 Ok
情况下,如果需要传达信息,还可以提供 message
。
值得注意的是,在任一情况下,如果包希望向最终用户提供大量信息,则 message
字段也可能包含多行。
依赖项
~2–3MB
~62K SLoC