kubernetes - Operator-sdk:规范和状态结构中的命名约定
问题描述
我正在开发一个运算符,想知道是否有链接或文档描述了 Spec 和 Status 字段的命名最佳实践?例如:
我可以在其中找到与每个字段或参数的注释相关的所有信息,以设置字段可选或设置默认值如下所示:
// 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。请让我知道是否有关于每个字段和字段标志的评论野兽实践的文档,例如省略空或可选?
从评论来看,我看到很多运营商都引用了 kUbeBuilder 如下图:
// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
我在哪里可以找到上述详细信息以及何时使用它们?
解决方案
您可以在https://book.kubebuilder.io/reference/markers.html找到有关 controller-gen 注释的文档(阅读小节)。omitempty
表示该字段是可选的。JSON 名称和结构名称通常应该相同(大小写除外),除非您有充分的理由不这样做。
推荐阅读
- websphere - 安装 IBM HTTP 服务器?
- macos - 为什么“ls -l /dev”和“/bin/ls -l /dev”有不同的输出?macOS
- python - 获取pandas中的一行数据作为dict
- ios - Swift & Firebase Auth 检查 App Delegate?
- java - 从java中的数组中找出n个缺失元素
- django - 可能包含“空”对象的对象的 URL 路径
- android - 可以在带有自定义类的适配器上使用 get(position)
- javascript - 对象默认为最后定义的对象
- dart - 通过参数传递变量以在函数内修改
- sql - 生成下一个主键值