2个版本

0.1.2 2024年1月1日
0.1.1 2023年12月27日
0.1.0 2023年12月27日

#685编码


3 个crate中使用

Apache-2.0

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 方法提供的。它包含一些常用的元数据,特别是 namelabels。一些标签在 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