const ( TotallyNotANamespace = "_non_namespaceable_" DefaultNamespace = "default" )
func ParseGroupVersion(apiVersion string) (group, version string)
ParseGroupVersion parses a KRM metadata apiVersion field.
Gvk identifies a Kubernetes API type. https://git.k8s.io/design-proposals-archive/api-machinery/api-group.md
type Gvk struct { Group string `json:"group,omitempty" yaml:"group,omitempty"` Version string `json:"version,omitempty" yaml:"version,omitempty"` Kind string `json:"kind,omitempty" yaml:"kind,omitempty"` // contains filtered or unexported fields }
func FromKind(k string) Gvk
FromKind makes a Gvk with only the kind specified.
func GvkFromNode(r *yaml.RNode) Gvk
func GvkFromString(s string) Gvk
GvkFromString makes a Gvk from the output of Gvk.String().
func NewGvk(g, v, k string) Gvk
func (x Gvk) ApiVersion() string
ApiVersion returns the combination of Group and Version
func (x Gvk) AsTypeMeta() yaml.TypeMeta
AsTypeMeta returns a yaml.TypeMeta from x's information.
func (x Gvk) Equals(o Gvk) bool
Equals returns true if the Gvk's have equal fields.
func (x Gvk) IsClusterScoped() bool
IsClusterScoped returns true if the Gvk is certainly cluster scoped with respect to the available openapi data.
func (x Gvk) IsLessThan(o Gvk) bool
IsLessThan returns true if self is less than the argument.
func (x Gvk) IsSelected(selector *Gvk) bool
IsSelected returns true if `selector` selects `x`; otherwise, false. If `selector` and `x` are the same, return true. If `selector` is nil, it is considered a wildcard match, returning true. If selector fields are empty, they are considered wildcards matching anything in the corresponding fields, e.g.
this item:
<Group: "extensions", Version: "v1beta1", Kind: "Deployment">
is selected by
<Group: "", Version: "", Kind: "Deployment">
but rejected by
<Group: "apps", Version: "", Kind: "Deployment">
func (x Gvk) String() string
String returns a string representation of the GVK.
func (x Gvk) StringWoEmptyField() string
StringWoEmptyField returns a string representation of the GVK. Non-exist fields will be omitted. This is called when generating a filename for the resource.
ResId is an identifier of a k8s resource object.
type ResId struct { // Gvk of the resource. Gvk `json:",inline,omitempty" yaml:",inline,omitempty"` // Name of the resource. Name string `json:"name,omitempty" yaml:"name,omitempty"` // Namespace the resource belongs to, if it can belong to a namespace. Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"` }
func FromRNode(rn *yaml.RNode) ResId
FromRNode returns the ResId for the RNode
func FromString(s string) ResId
func NewResId(k Gvk, n string) ResId
NewResId creates new ResId.
func NewResIdKindOnly(k string, n string) ResId
NewResIdKindOnly creates a new ResId.
func NewResIdWithNamespace(k Gvk, n, ns string) ResId
NewResIdWithNamespace creates new ResId in a given namespace.
func (id ResId) EffectiveNamespace() string
EffectiveNamespace returns a non-ambiguous, non-empty namespace for use in reporting and equality tests.
func (id ResId) Equals(o ResId) bool
Equals returns true if the other id matches namespace/Group/Version/Kind/name.
func (id ResId) GvknEquals(o ResId) bool
GvknEquals returns true if the other id matches Group/Version/Kind/name.
func (id ResId) IsEmpty() bool
IsEmpty returns true of all of the id's fields are empty strings
func (id ResId) IsInDefaultNs() bool
IsInDefaultNs returns true if id is a namespaceable ResId and the Namespace is either not set or set to DefaultNamespace.
func (id ResId) IsNsEquals(o ResId) bool
IsNsEquals returns true if the id is in the same effective namespace.
func (id ResId) IsSelectedBy(selector ResId) bool
IsSelectedBy returns true if self is selected by the argument.
func (id ResId) String() string
String of ResId based on GVK, name and prefix