【问题标题】:Operator-sdk : Naming Convention in Spec and Status structsOperator-sdk:规范和状态结构中的命名约定
【发布时间】:2020-12-20 20:05:04
【问题描述】:

我正在开发一个运算符,想知道是否有链接或文档描述了 Spec 和 Status 字段的命名最佳实践?例如:

我可以在哪里找到与每个字段或参数的 cmets 相关的所有信息,以设置字段可选或设置默认值,如下所示:

// MyAppStatus defines the observed state of MyAppSPec
type MyAppStatus struct {
        // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
        // Important: Run "make" to regenerate code after modifying this file
        AppCount              int32                       `json:"appCount,omitempty"`
        Apps                 map[string]string           `json:"apps,omitempty"`
}

如何设置 AppCount 的默认值?另外,AppCount 的命名是否正确?我可以有命名间接,即我可以将其设置为以下内容:

AppCount              int32                       `json:"count,omitempty"`

这将帮助我在 YAML 文件中公开不同的名称,但在代码中,我将引用 AppCount。请让我知道每个字段和字段标志上是否有关于 cmets 野兽实践的文档,例如省略空或可选?

从cmets的角度来看,我看到很多算子都引用了kUbeBuilder,如下图:

// +kubebuilder:object:root=true
// +kubebuilder:subresource:status

我在哪里可以找到上述详细信息以及何时使用它们?

【问题讨论】:

  • 状态字段没有默认值,因为它们都将从空白开始。你需要计数吗?您可以随时获取地图的长度。
  • 谢谢。以上只是一个例子。我正在寻找一些关于运算符中命名约定的最佳实践的文档,它应该有 1)在我的代码中像 AppCoun 这样的间接命名,并在用户 2 的 yaml 文件中计数)与可选值和默认值相关的 cmets 详细信息 3)Json 标记值,例如作为省略

标签: kubernetes operator-sdk


【解决方案1】:

您可以在https://book.kubebuilder.io/reference/markers.html 找到有关控制器生成注释的文档(阅读小节)。 omitempty 表示该字段是可选的。 JSON 名称和结构名称通常应该相同(大小写除外),除非您有充分的理由不这样做。

【讨论】:

  • 谢谢。 Kubebuilder 文档对 operator-sdk 也有效吗?由于有很多术语,我试图了解何时引用 Kubebuilder 以及何时引用 operator-sdk。截至目前,我正在使用 operator-sdk。请提供您的意见。
  • 是的,operator-sdk 使用与 Go 运算符相同的底层工具。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 2011-07-23
  • 2011-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多