Skip to main content

ADR009 实体引用

背景

虽然目录文件格式的规范在ADR002对于如何在Backstage前台的 URL 中引用实体,也存在一些困惑。

讨论之后第 1947 期于是做出了决定。

YAML 文件中的实体引用

由人类书写的引用实体名称的文本格式如下,方括号表示可选项:

[<kind>:][<namespace>/]<name>

也就是说,它是由一到三个部分组成的,按照特定的顺序,没有任何额外的编码,并带有这些确切的分隔符。 可选性kindnamespace是与上下文相关的,它们可能有也可能没有默认的上下文回退值。

如果这种格式不够,或者机器制造的交换格式希望以更富表现力的形式表达这种关系,则可以使用下面这种嵌套结构:

kind: <kind>
namespace: <namespace>
name: <name>

其中只有name的可选性kindnamespace该结构中所有其他可能的键值都保留给将来使用。

如果系统或用户希望表达一个始终有效的完整实体名称,则无论使用字符串形式还是复合形式,都应提供整个三元组。

有关格式的完整说明,请参见在文档中.

##URL中的实体引用

在Backstage前台以名称引用实体时,包含引用的 URL 应采用以下形式:

:namespace/:kind/:name

这三个部分在任何情况下都是必需的。namespace目录中的字符串是"default"如果实体没有在metadata.namespace.

这意味着我们不鼓励将实体引用的字符串形式用作单个 URL 段,因为使用 URL 不安全字符可能会导致风险、混乱和更难看的 URL。