import "k8s.io/apimachinery/pkg/runtime/schema"
var EmptyObjectKind = emptyObjectKind{}
EmptyObjectKind将ObjectKind接口实现为noop。
func ParseKindArg(arg string) (*GroupVersionKind, GroupKind)
ParseKindArg接收通用格式的字符串,(如Kind.group.com
或Kind.version.group.com
),并将其解析输出。 代码不会知道字符串使用哪种表示形式,但对所有GroupKinds
都有一定的了解,因此代码可以自己推测。
如果只有两个部分,则*GroupVersionResource
为nil
。即Kind.group.com
解析为:
group = com,version = group,kind = Kind
group = group.com,kind = Kind
func ParseResourceArg(arg string) (*GroupVersionResource, GroupResource)
ParseResourceArg接收通用格式的字符串,(如resource.group.com
或resource.version.group.com
)并将其解析输出。 代码不会知道字符串使用哪种表示形式,但对所有GroupVersions
都有一定的了解,因此代码可以自己推测。
如果只有两个段,则*GroupVersionResource
为nil
。 即resource.group.com
解析为:
group = com,version = group,resource = resource
group = group.com,resource = resource
type GroupKind struct {
Group string
Kind string
}
GroupKind指定Group和Kind,但不强制Version。这对于在查找阶段没有部分有效类型的情况下识别概念很有用。
func ParseGroupKind(gk string) GroupKind
func (gk GroupKind) Empty() bool
func (gk GroupKind) String() string
func (gk GroupKind) WithVersion(version string) GroupVersionKind
type GroupResource struct {
Group string
Resource string
}
GroupResource指定一个Group和一个Resource,但不强制Version。这对于在查找阶段没有部分有效类型的情况下识别概念很有用。
func ParseGroupResource(gr string) GroupResource
ParseGroupResource将resource.group
字符串转换为GroupResource结构,每个字段都允许使用空字符串。
func (gr GroupResource) Empty() bool
func (gr GroupResource) String() string
func (gr GroupResource) WithVersion(version string) GroupVersionResource
type GroupVersion struct {
Group string
Version string
}
GroupVersion包含唯一标识API的“Group”和“Version”。
func ParseGroupVersion(gv string) (GroupVersion, error)
ParseGroupVersion将group/version
字符串转换为GroupVersion结构。如果无法解析字符串,它将报告错误。
func (gv GroupVersion) Empty() bool
如果Group和Version为空,则Empty返回true。
func (gv GroupVersion) Identifier() string
Identifier实现runtime.GroupVersioner
接口。
func (gv GroupVersion) KindForGroupVersionKinds(kinds []GroupVersionKind) (target GroupVersionKind, ok bool)
KindForGroupVersionKinds从列表中标识首选GroupVersionKind。 如果没有选项与Group匹配,则返回ok为false。 相比于只有Group匹配,Group与Version都匹配更好。
pkg/runtime
,因为它已被scheme使用runtime.GroupVersioner
之间引入适配器类型,并在较少的地方使用LegacyCodec(GroupVersion)
func (gv GroupVersion) String() string
String将group和version写入一个单独的group/version
字符串中,对于旧版v1,将返回v1。
func (gv GroupVersion) WithKind(kind string) GroupVersionKind
WithKind基于方法接收者的GroupVersion和传递的Kind创建一个GroupVersionKind。
func (gv GroupVersion) WithResource(resource string) GroupVersionResource
WithResource基于方法接收者的GroupVersion和传递的Resource创建一个GroupVersionResource。
type GroupVersionKind struct {
Group string
Version string
Kind string
}
GroupVersionKind明确标识一种kind。它没有匿名包含GroupVersion以避免自动强制。它不使用GroupVersion来避免自定义编组。
func FromAPIVersionAndKind(apiVersion, kind string) GroupVersionKind
FromAPIVersionAndKind返回一个GVK,代表不使用TypeMeta提供的字段表示的类型。存在此方法以支持具有不同group和kind的测试类型和旧版序列化。
func (gvk GroupVersionKind) Empty() bool
如果group,version和kind为空,则Empty返回true。
func (gvk GroupVersionKind) GroupKind() GroupKind
func (gvk GroupVersionKind) GroupVersion() GroupVersion
func (gvk GroupVersionKind) String() string
func (gvk GroupVersionKind) ToAPIVersionAndKind() (string, string)
ToAPIVersionAndKind是一种便捷方法用于满足runtime.Object
的type而不使用TypeMeta。
type GroupVersionResource struct {
Group string
Version string
Resource string
}
GroupVersionResource明确标识resource。它没有匿名包含GroupVersion以避免自动强制。它不使用GroupVersion来避免自定义编组。
func (gvr GroupVersionResource) Empty() bool
func (gvr GroupVersionResource) GroupResource() GroupResource
func (gvr GroupVersionResource) GroupVersion() GroupVersion
func (gvr GroupVersionResource) String() string
type GroupVersions []GroupVersion
GroupVersions可用于表示一组所需的group versions。
pkg/runtime
下,因为它已被scheme使用。runtime.GroupVersioner
之间引入适配器类型,并在较少的地方使用LegacyCodec(GroupVersion)
func (gv GroupVersions) Identifier() string
Identifier实现runtime.GroupVersioner接口。
func (gvs GroupVersions) KindForGroupVersionKinds(kinds []GroupVersionKind) (GroupVersionKind, bool)
KindForGroupVersionKinds从列表中标识首选GroupVersionKind。如果没有选项与group匹配,则返回ok为false。
type ObjectKind interface {
// SetGroupVersionKind设置或清除对象的预期序列化类型。 传递nil将会清除当前设置。
SetGroupVersionKind(kind GroupVersionKind)
// GroupVersionKind返回存储的对象的group,version和kind,如果该对象未公开或不提供这些字段,则返回nil。
GroupVersionKind() GroupVersionKind
}
从Scheme序列化的所有对象都对其类型信息进行编码。 序列化使用此接口,以将Scheme中的类型信息设置到对象的序列化版本上。 对于无法序列化或有独特要求的对象,此接口可能是无操作的。