v1alpha1

package
v0.16.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2024 License: Apache-2.0 Imports: 13 Imported by: 27

Documentation

Overview

Package v1alpha1 is the v1alpha1 version of the nfd API. +k8s:deepcopy-gen=package +kubebuilder:object:generate=true +groupName=nfd.k8s-sigs.io

Index

Constants

View Source
const (
	// FeatureLabelNs is the (default) namespace for feature labels.
	FeatureLabelNs = "feature.node.kubernetes.io"

	// FeatureLabelSubNsSuffix is the suffix for allowed feature label sub-namespaces.
	FeatureLabelSubNsSuffix = "." + FeatureLabelNs

	// ProfileLabelNs is the namespace for profile labels.
	ProfileLabelNs = "profile.node.kubernetes.io"

	// ProfileLabelSubNsSuffix is the suffix for allowed profile label sub-namespaces.
	ProfileLabelSubNsSuffix = "." + ProfileLabelNs

	// TaintNs is the k8s.io namespace that can be used for NFD-managed taints.
	TaintNs = "feature.node.kubernetes.io"

	// TaintSubNsSuffix is the suffix for allowed sub-namespaces for NFD-managed taints.
	TaintSubNsSuffix = "." + TaintNs

	// AnnotationNs namespace for all NFD-related annotations.
	AnnotationNs = "nfd.node.kubernetes.io"

	// ExtendedResourceNs is the namespace for extended resources.
	ExtendedResourceNs = "feature.node.kubernetes.io"

	// ExtendedResourceSubNsSuffix is the suffix for allowed extended resources sub-namespaces.
	ExtendedResourceSubNsSuffix = "." + ExtendedResourceNs

	// ExtendedResourceAnnotation is the annotation that holds all extended resources managed by NFD.
	ExtendedResourceAnnotation = AnnotationNs + "/extended-resources"

	// FeatureLabelsAnnotation is the annotation that holds all feature labels managed by NFD.
	FeatureLabelsAnnotation = AnnotationNs + "/feature-labels"

	// MasterVersionAnnotation is the annotation that holds the version of nfd-master running on the node
	// DEPRECATED: will not be used in NFD v0.15 or later.
	MasterVersionAnnotation = AnnotationNs + "/master.version"

	// WorkerVersionAnnotation is the annotation that holds the version of nfd-worker running on the node
	WorkerVersionAnnotation = AnnotationNs + "/worker.version"

	// NodeTaintsAnnotation is the annotation that holds the taints that nfd-master set on the node
	NodeTaintsAnnotation = AnnotationNs + "/taints"

	// FeatureAnnotationsTrackingAnnotation is the annotation that holds all feature annotations that nfd-master set on the node
	FeatureAnnotationsTrackingAnnotation = AnnotationNs + "/feature-annotations"

	// NodeFeatureObjNodeNameLabel is the label that specifies which node the
	// NodeFeature object is targeting. Creators of NodeFeature objects must
	// set this label and consumers of the objects are supposed to use the
	// label for filtering features designated for a certain node.
	NodeFeatureObjNodeNameLabel = "nfd.node.kubernetes.io/node-name"

	// FeatureAnnotationNs is the (default) namespace for feature annotations.
	FeatureAnnotationNs = "feature.node.kubernetes.io"

	// FeatureAnnotationSubNsSuffix is the suffix for allowed feature annotation sub-namespaces.
	FeatureAnnotationSubNsSuffix = "." + FeatureAnnotationNs

	// FeatureAnnotationValueSizeLimit is the maximum allowed length for the value of a feature annotation.
	FeatureAnnotationValueSizeLimit = 1 << 10
)
View Source
const (
	// RuleBackrefDomain is the special feature domain for backreferencing
	// output of preceding rules.
	RuleBackrefDomain = "rule"
	// RuleBackrefFeature is the special feature name for backreferencing
	// output of preceding rules.
	RuleBackrefFeature = "matched"
)
View Source
const MatchAllNames = "*"

MatchAllNames is a special key in MatchExpressionSet to use field names (keys from the input) instead of values when matching.

Variables

View Source
var (
	ErrInvalidLengthGenerated        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowGenerated          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group")
)
View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: "nfd.k8s-sigs.io", Version: "v1alpha1"}

	// SchemeBuilder is the scheme builder for this API.
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)

	// AddToScheme is a function to register this API group and version to a scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource name and returns a Group qualified GroupResource.

Types

type AttributeFeatureSet

type AttributeFeatureSet struct {
	// Individual features of the feature set.
	Elements map[string]string `json:"elements" protobuf:"bytes,1,rep,name=elements"`
}

AttributeFeatureSet is a set of features having string value.

+protobuf=true

func NewAttributeFeatures

func NewAttributeFeatures(values map[string]string) AttributeFeatureSet

NewAttributeFeatures creates a new instance of ValueFeatureSet.

func (*AttributeFeatureSet) DeepCopy

func (in *AttributeFeatureSet) DeepCopy() *AttributeFeatureSet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AttributeFeatureSet.

func (*AttributeFeatureSet) DeepCopyInto

func (in *AttributeFeatureSet) DeepCopyInto(out *AttributeFeatureSet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AttributeFeatureSet) Descriptor

func (*AttributeFeatureSet) Descriptor() ([]byte, []int)

func (*AttributeFeatureSet) Marshal

func (m *AttributeFeatureSet) Marshal() (dAtA []byte, err error)

func (*AttributeFeatureSet) MarshalTo

func (m *AttributeFeatureSet) MarshalTo(dAtA []byte) (int, error)

func (*AttributeFeatureSet) MarshalToSizedBuffer

func (m *AttributeFeatureSet) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*AttributeFeatureSet) MergeInto

func (in *AttributeFeatureSet) MergeInto(out *AttributeFeatureSet)

MergeInto merges two sets of attribute featues.

func (*AttributeFeatureSet) ProtoMessage

func (*AttributeFeatureSet) ProtoMessage()

func (*AttributeFeatureSet) Reset

func (m *AttributeFeatureSet) Reset()

func (*AttributeFeatureSet) Size

func (m *AttributeFeatureSet) Size() (n int)

func (*AttributeFeatureSet) String

func (this *AttributeFeatureSet) String() string

func (*AttributeFeatureSet) Unmarshal

func (m *AttributeFeatureSet) Unmarshal(dAtA []byte) error

func (*AttributeFeatureSet) XXX_DiscardUnknown

func (m *AttributeFeatureSet) XXX_DiscardUnknown()

func (*AttributeFeatureSet) XXX_Marshal

func (m *AttributeFeatureSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*AttributeFeatureSet) XXX_Merge

func (m *AttributeFeatureSet) XXX_Merge(src proto.Message)

func (*AttributeFeatureSet) XXX_Size

func (m *AttributeFeatureSet) XXX_Size() int

func (*AttributeFeatureSet) XXX_Unmarshal

func (m *AttributeFeatureSet) XXX_Unmarshal(b []byte) error

type FeatureGroupNode

type FeatureGroupNode struct {
	// Name of the node.
	Name string `json:"name"`
}

func (*FeatureGroupNode) DeepCopy

func (in *FeatureGroupNode) DeepCopy() *FeatureGroupNode

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureGroupNode.

func (*FeatureGroupNode) DeepCopyInto

func (in *FeatureGroupNode) DeepCopyInto(out *FeatureGroupNode)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FeatureMatcher

type FeatureMatcher []FeatureMatcherTerm

FeatureMatcher specifies a set of feature matcher terms (i.e. per-feature matchers), all of which must match.

func (FeatureMatcher) DeepCopy

func (in FeatureMatcher) DeepCopy() FeatureMatcher

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureMatcher.

func (FeatureMatcher) DeepCopyInto

func (in FeatureMatcher) DeepCopyInto(out *FeatureMatcher)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FeatureMatcherTerm

type FeatureMatcherTerm struct {
	// Feature is the name of the feature set to match against.
	Feature string `json:"feature"`
	// MatchExpressions is the set of per-element expressions evaluated. These
	// match against the value of the specified elements.
	// +optional
	MatchExpressions *MatchExpressionSet `json:"matchExpressions"`
	// MatchName in an expression that is matched against the name of each
	// element in the feature set.
	// +optional
	MatchName *MatchExpression `json:"matchName"`
}

FeatureMatcherTerm defines requirements against one feature set. All requirements (specified as MatchExpressions) are evaluated against each element in the feature set.

func (*FeatureMatcherTerm) DeepCopy

func (in *FeatureMatcherTerm) DeepCopy() *FeatureMatcherTerm

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureMatcherTerm.

func (*FeatureMatcherTerm) DeepCopyInto

func (in *FeatureMatcherTerm) DeepCopyInto(out *FeatureMatcherTerm)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Features

type Features struct {
	// Flags contains all the flag-type features of the node.
	// +optional
	Flags map[string]FlagFeatureSet `json:"flags" protobuf:"bytes,1,rep,name=flags"`
	// Attributes contains all the attribute-type features of the node.
	// +optional
	Attributes map[string]AttributeFeatureSet `json:"attributes" protobuf:"bytes,2,rep,name=vattributes"`
	// Instances contains all the instance-type features of the node.
	// +optional
	Instances map[string]InstanceFeatureSet `json:"instances" protobuf:"bytes,3,rep,name=instances"`
}

Features is the collection of all discovered features.

+protobuf=true

func NewFeatures

func NewFeatures() *Features

NewFeatures creates a new instance of Features, initializing all feature types (flags, attributes and instances) to empty values.

func (*Features) DeepCopy

func (in *Features) DeepCopy() *Features

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Features.

func (*Features) DeepCopyInto

func (in *Features) DeepCopyInto(out *Features)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Features) Descriptor

func (*Features) Descriptor() ([]byte, []int)

func (*Features) InsertAttributeFeatures

func (f *Features) InsertAttributeFeatures(domain, feature string, values map[string]string)

InsertAttributeFeatures inserts new values into a specific feature.

func (*Features) Marshal

func (m *Features) Marshal() (dAtA []byte, err error)

func (*Features) MarshalTo

func (m *Features) MarshalTo(dAtA []byte) (int, error)

func (*Features) MarshalToSizedBuffer

func (m *Features) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Features) MergeInto

func (in *Features) MergeInto(out *Features)

MergeInto merges two sets of features into one. Features from the input set take precedence (overwrite) features from the existing features of the set we're merging into.

func (*Features) ProtoMessage

func (*Features) ProtoMessage()

func (*Features) Reset

func (m *Features) Reset()

func (*Features) Size

func (m *Features) Size() (n int)

func (*Features) String

func (this *Features) String() string

func (*Features) Unmarshal

func (m *Features) Unmarshal(dAtA []byte) error

func (*Features) XXX_DiscardUnknown

func (m *Features) XXX_DiscardUnknown()

func (*Features) XXX_Marshal

func (m *Features) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Features) XXX_Merge

func (m *Features) XXX_Merge(src proto.Message)

func (*Features) XXX_Size

func (m *Features) XXX_Size() int

func (*Features) XXX_Unmarshal

func (m *Features) XXX_Unmarshal(b []byte) error

type FlagFeatureSet

type FlagFeatureSet struct {
	// Individual features of the feature set.
	Elements map[string]Nil `json:"elements" protobuf:"bytes,1,rep,name=elements"`
}

FlagFeatureSet is a set of simple features only containing names without values.

+protobuf=true

func NewFlagFeatures

func NewFlagFeatures(keys ...string) FlagFeatureSet

NewFlagFeatures creates a new instance of KeyFeatureSet.

func (*FlagFeatureSet) DeepCopy

func (in *FlagFeatureSet) DeepCopy() *FlagFeatureSet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlagFeatureSet.

func (*FlagFeatureSet) DeepCopyInto

func (in *FlagFeatureSet) DeepCopyInto(out *FlagFeatureSet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FlagFeatureSet) Descriptor

func (*FlagFeatureSet) Descriptor() ([]byte, []int)

func (*FlagFeatureSet) Marshal

func (m *FlagFeatureSet) Marshal() (dAtA []byte, err error)

func (*FlagFeatureSet) MarshalTo

func (m *FlagFeatureSet) MarshalTo(dAtA []byte) (int, error)

func (*FlagFeatureSet) MarshalToSizedBuffer

func (m *FlagFeatureSet) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*FlagFeatureSet) MergeInto

func (in *FlagFeatureSet) MergeInto(out *FlagFeatureSet)

MergeInto merges two sets of flag featues.

func (*FlagFeatureSet) ProtoMessage

func (*FlagFeatureSet) ProtoMessage()

func (*FlagFeatureSet) Reset

func (m *FlagFeatureSet) Reset()

func (*FlagFeatureSet) Size

func (m *FlagFeatureSet) Size() (n int)

func (*FlagFeatureSet) String

func (this *FlagFeatureSet) String() string

func (*FlagFeatureSet) Unmarshal

func (m *FlagFeatureSet) Unmarshal(dAtA []byte) error

func (*FlagFeatureSet) XXX_DiscardUnknown

func (m *FlagFeatureSet) XXX_DiscardUnknown()

func (*FlagFeatureSet) XXX_Marshal

func (m *FlagFeatureSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*FlagFeatureSet) XXX_Merge

func (m *FlagFeatureSet) XXX_Merge(src proto.Message)

func (*FlagFeatureSet) XXX_Size

func (m *FlagFeatureSet) XXX_Size() int

func (*FlagFeatureSet) XXX_Unmarshal

func (m *FlagFeatureSet) XXX_Unmarshal(b []byte) error

type GroupRule

type GroupRule struct {
	// Name of the rule.
	Name string `json:"name"`

	// MatchFeatures specifies a set of matcher terms all of which must match.
	// +optional
	MatchFeatures FeatureMatcher `json:"matchFeatures"`

	// MatchAny specifies a list of matchers one of which must match.
	// +optional
	MatchAny []MatchAnyElem `json:"matchAny"`
}

GroupRule defines a rule for nodegroup filtering.

func (*GroupRule) DeepCopy

func (in *GroupRule) DeepCopy() *GroupRule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupRule.

func (*GroupRule) DeepCopyInto

func (in *GroupRule) DeepCopyInto(out *GroupRule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InstanceFeature

type InstanceFeature struct {
	// Attributes of the instance feature.
	Attributes map[string]string `json:"attributes" protobuf:"bytes,1,rep,name=attributes"`
}

InstanceFeature represents one instance of a complex features, e.g. a device.

+protobuf=true

func NewInstanceFeature

func NewInstanceFeature(attrs map[string]string) *InstanceFeature

NewInstanceFeature creates a new InstanceFeature instance.

func (*InstanceFeature) DeepCopy

func (in *InstanceFeature) DeepCopy() *InstanceFeature

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceFeature.

func (*InstanceFeature) DeepCopyInto

func (in *InstanceFeature) DeepCopyInto(out *InstanceFeature)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*InstanceFeature) Descriptor

func (*InstanceFeature) Descriptor() ([]byte, []int)

func (*InstanceFeature) Marshal

func (m *InstanceFeature) Marshal() (dAtA []byte, err error)

func (*InstanceFeature) MarshalTo

func (m *InstanceFeature) MarshalTo(dAtA []byte) (int, error)

func (*InstanceFeature) MarshalToSizedBuffer

func (m *InstanceFeature) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*InstanceFeature) ProtoMessage

func (*InstanceFeature) ProtoMessage()

func (*InstanceFeature) Reset

func (m *InstanceFeature) Reset()

func (*InstanceFeature) Size

func (m *InstanceFeature) Size() (n int)

func (*InstanceFeature) String

func (this *InstanceFeature) String() string

func (*InstanceFeature) Unmarshal

func (m *InstanceFeature) Unmarshal(dAtA []byte) error

func (*InstanceFeature) XXX_DiscardUnknown

func (m *InstanceFeature) XXX_DiscardUnknown()

func (*InstanceFeature) XXX_Marshal

func (m *InstanceFeature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*InstanceFeature) XXX_Merge

func (m *InstanceFeature) XXX_Merge(src proto.Message)

func (*InstanceFeature) XXX_Size

func (m *InstanceFeature) XXX_Size() int

func (*InstanceFeature) XXX_Unmarshal

func (m *InstanceFeature) XXX_Unmarshal(b []byte) error

type InstanceFeatureSet

type InstanceFeatureSet struct {
	// Individual features of the feature set.
	Elements []InstanceFeature `json:"elements" protobuf:"bytes,1,rep,name=elements"`
}

InstanceFeatureSet is a set of features each of which is an instance having multiple attributes.

+protobuf=true

func NewInstanceFeatures

func NewInstanceFeatures(instances ...InstanceFeature) InstanceFeatureSet

NewInstanceFeatures creates a new instance of InstanceFeatureSet.

func (*InstanceFeatureSet) DeepCopy

func (in *InstanceFeatureSet) DeepCopy() *InstanceFeatureSet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceFeatureSet.

func (*InstanceFeatureSet) DeepCopyInto

func (in *InstanceFeatureSet) DeepCopyInto(out *InstanceFeatureSet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*InstanceFeatureSet) Descriptor

func (*InstanceFeatureSet) Descriptor() ([]byte, []int)

func (*InstanceFeatureSet) Marshal

func (m *InstanceFeatureSet) Marshal() (dAtA []byte, err error)

func (*InstanceFeatureSet) MarshalTo

func (m *InstanceFeatureSet) MarshalTo(dAtA []byte) (int, error)

func (*InstanceFeatureSet) MarshalToSizedBuffer

func (m *InstanceFeatureSet) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*InstanceFeatureSet) MergeInto

func (in *InstanceFeatureSet) MergeInto(out *InstanceFeatureSet)

MergeInto merges two sets of instance featues.

func (*InstanceFeatureSet) ProtoMessage

func (*InstanceFeatureSet) ProtoMessage()

func (*InstanceFeatureSet) Reset

func (m *InstanceFeatureSet) Reset()

func (*InstanceFeatureSet) Size

func (m *InstanceFeatureSet) Size() (n int)

func (*InstanceFeatureSet) String

func (this *InstanceFeatureSet) String() string

func (*InstanceFeatureSet) Unmarshal

func (m *InstanceFeatureSet) Unmarshal(dAtA []byte) error

func (*InstanceFeatureSet) XXX_DiscardUnknown

func (m *InstanceFeatureSet) XXX_DiscardUnknown()

func (*InstanceFeatureSet) XXX_Marshal

func (m *InstanceFeatureSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*InstanceFeatureSet) XXX_Merge

func (m *InstanceFeatureSet) XXX_Merge(src proto.Message)

func (*InstanceFeatureSet) XXX_Size

func (m *InstanceFeatureSet) XXX_Size() int

func (*InstanceFeatureSet) XXX_Unmarshal

func (m *InstanceFeatureSet) XXX_Unmarshal(b []byte) error

type MatchAnyElem

type MatchAnyElem struct {
	// MatchFeatures specifies a set of matcher terms all of which must match.
	MatchFeatures FeatureMatcher `json:"matchFeatures"`
}

MatchAnyElem specifies one sub-matcher of MatchAny.

func (*MatchAnyElem) DeepCopy

func (in *MatchAnyElem) DeepCopy() *MatchAnyElem

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchAnyElem.

func (*MatchAnyElem) DeepCopyInto

func (in *MatchAnyElem) DeepCopyInto(out *MatchAnyElem)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MatchExpression

type MatchExpression struct {
	// Op is the operator to be applied.
	Op MatchOp `json:"op"`

	// Value is the list of values that the operand evaluates the input
	// against. Value should be empty if the operator is Exists, DoesNotExist,
	// IsTrue or IsFalse. Value should contain exactly one element if the
	// operator is Gt or Lt and exactly two elements if the operator is GtLt.
	// In other cases Value should contain at least one element.
	// +optional
	Value MatchValue `json:"value,omitempty"`
}

MatchExpression specifies an expression to evaluate against a set of input values. It contains an operator that is applied when matching the input and an array of values that the operator evaluates the input against.

func (*MatchExpression) DeepCopy

func (in *MatchExpression) DeepCopy() *MatchExpression

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchExpression.

func (*MatchExpression) DeepCopyInto

func (in *MatchExpression) DeepCopyInto(out *MatchExpression)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MatchExpressionSet

type MatchExpressionSet map[string]*MatchExpression

MatchExpressionSet contains a set of MatchExpressions, each of which is evaluated against a set of input values.

func (MatchExpressionSet) DeepCopy

func (in MatchExpressionSet) DeepCopy() MatchExpressionSet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchExpressionSet.

func (MatchExpressionSet) DeepCopyInto

func (in MatchExpressionSet) DeepCopyInto(out *MatchExpressionSet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MatchOp

type MatchOp string

MatchOp is the match operator that is applied on values when evaluating a MatchExpression. +kubebuilder:validation:Enum="In";"NotIn";"InRegexp";"Exists";"DoesNotExist";"Gt";"Lt";"GtLt";"IsTrue";"IsFalse"

const (
	// MatchAny returns always true.
	MatchAny MatchOp = ""
	// MatchIn returns true if any of the values stored in the expression is
	// equal to the input.
	MatchIn MatchOp = "In"
	// MatchNotIn returns true if none of the values in the expression are
	// equal to the input.
	MatchNotIn MatchOp = "NotIn"
	// MatchInRegexp treats values of the expression as regular expressions and
	// returns true if any of them matches the input.
	MatchInRegexp MatchOp = "InRegexp"
	// MatchExists returns true if the input is valid. The expression must not
	// have any values.
	MatchExists MatchOp = "Exists"
	// MatchDoesNotExist returns true if the input is not valid. The expression
	// must not have any values.
	MatchDoesNotExist MatchOp = "DoesNotExist"
	// MatchGt returns true if the input is greater than the value of the
	// expression (number of values in the expression must be exactly one).
	// Both the input and value must be integer numbers, otherwise an error is
	// returned.
	MatchGt MatchOp = "Gt"
	// MatchLt returns true if the input is less  than the value of the
	// expression (number of values in the expression must be exactly one).
	// Both the input and value must be integer numbers, otherwise an error is
	// returned.
	MatchLt MatchOp = "Lt"
	// MatchGtLt returns true if the input is between two values, i.e. greater
	// than the first value and less than the second value of the expression
	// (number of values in the expression must be exactly two). Both the input
	// and values must be integer numbers, otherwise an error is returned.
	MatchGtLt MatchOp = "GtLt"
	// MatchIsTrue returns true if the input holds the value "true". The
	// expression must not have any values.
	MatchIsTrue MatchOp = "IsTrue"
	// MatchIsFalse returns true if the input holds the value "false". The
	// expression must not have any values.
	MatchIsFalse MatchOp = "IsFalse"
)

type MatchValue

type MatchValue []string

MatchValue is the list of values associated with a MatchExpression.

func (MatchValue) DeepCopy

func (in MatchValue) DeepCopy() MatchValue

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchValue.

func (MatchValue) DeepCopyInto

func (in MatchValue) DeepCopyInto(out *MatchValue)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Nil

type Nil struct{}

Nil is a dummy empty struct for protobuf compatibility

+protobuf=true

func (*Nil) DeepCopy

func (in *Nil) DeepCopy() *Nil

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Nil.

func (*Nil) DeepCopyInto

func (in *Nil) DeepCopyInto(out *Nil)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Nil) Descriptor

func (*Nil) Descriptor() ([]byte, []int)

func (*Nil) Marshal

func (m *Nil) Marshal() (dAtA []byte, err error)

func (*Nil) MarshalTo

func (m *Nil) MarshalTo(dAtA []byte) (int, error)

func (*Nil) MarshalToSizedBuffer

func (m *Nil) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Nil) ProtoMessage

func (*Nil) ProtoMessage()

func (*Nil) Reset

func (m *Nil) Reset()

func (*Nil) Size

func (m *Nil) Size() (n int)

func (*Nil) String

func (this *Nil) String() string

func (*Nil) Unmarshal

func (m *Nil) Unmarshal(dAtA []byte) error

func (*Nil) XXX_DiscardUnknown

func (m *Nil) XXX_DiscardUnknown()

func (*Nil) XXX_Marshal

func (m *Nil) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Nil) XXX_Merge

func (m *Nil) XXX_Merge(src proto.Message)

func (*Nil) XXX_Size

func (m *Nil) XXX_Size() int

func (*Nil) XXX_Unmarshal

func (m *Nil) XXX_Unmarshal(b []byte) error

type NodeFeature

type NodeFeature struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the NodeFeature, containing features discovered for a node.
	Spec NodeFeatureSpec `json:"spec"`
}

NodeFeature resource holds the features discovered for one node in the cluster. +kubebuilder:object:root=true +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*NodeFeature) DeepCopy

func (in *NodeFeature) DeepCopy() *NodeFeature

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeFeature.

func (*NodeFeature) DeepCopyInto

func (in *NodeFeature) DeepCopyInto(out *NodeFeature)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeFeature) DeepCopyObject

func (in *NodeFeature) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NodeFeatureGroup

type NodeFeatureGroup struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec defines the rules to be evaluated.
	Spec NodeFeatureGroupSpec `json:"spec"`

	// Status of the NodeFeatureGroup after the most recent evaluation of the
	// specification.
	Status NodeFeatureGroupStatus `json:"status,omitempty"`
}

NodeFeatureGroup resource holds Node pools by featureGroup +kubebuilder:object:root=true +kubebuilder:resource:scope=Namespaced,shortName=nfg +kubebuilder:subresource:status +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +genclient

func (*NodeFeatureGroup) DeepCopy

func (in *NodeFeatureGroup) DeepCopy() *NodeFeatureGroup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeFeatureGroup.

func (*NodeFeatureGroup) DeepCopyInto

func (in *NodeFeatureGroup) DeepCopyInto(out *NodeFeatureGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeFeatureGroup) DeepCopyObject

func (in *NodeFeatureGroup) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NodeFeatureGroupList

type NodeFeatureGroupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// List of NodeFeatureGroups.
	Items []NodeFeatureGroup `json:"items"`
}

NodeFeatureGroupList contains a list of NodeFeatureGroup objects. +kubebuilder:object:root=true +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*NodeFeatureGroupList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeFeatureGroupList.

func (*NodeFeatureGroupList) DeepCopyInto

func (in *NodeFeatureGroupList) DeepCopyInto(out *NodeFeatureGroupList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeFeatureGroupList) DeepCopyObject

func (in *NodeFeatureGroupList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NodeFeatureGroupSpec

type NodeFeatureGroupSpec struct {
	// List of rules to evaluate to determine nodes that belong in this group.
	Rules []GroupRule `json:"featureGroupRules"`
}

NodeFeatureGroupSpec describes a NodeFeatureGroup object.

func (*NodeFeatureGroupSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeFeatureGroupSpec.

func (*NodeFeatureGroupSpec) DeepCopyInto

func (in *NodeFeatureGroupSpec) DeepCopyInto(out *NodeFeatureGroupSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeFeatureGroupStatus

type NodeFeatureGroupStatus struct {
	// Nodes is a list of FeatureGroupNode in the cluster that match the featureGroupRules
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=name
	Nodes []FeatureGroupNode `json:"nodes"`
}

func (*NodeFeatureGroupStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeFeatureGroupStatus.

func (*NodeFeatureGroupStatus) DeepCopyInto

func (in *NodeFeatureGroupStatus) DeepCopyInto(out *NodeFeatureGroupStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeFeatureList

type NodeFeatureList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// List of NodeFeatures.
	Items []NodeFeature `json:"items"`
}

NodeFeatureList contains a list of NodeFeature objects. +kubebuilder:object:root=true +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*NodeFeatureList) DeepCopy

func (in *NodeFeatureList) DeepCopy() *NodeFeatureList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeFeatureList.

func (*NodeFeatureList) DeepCopyInto

func (in *NodeFeatureList) DeepCopyInto(out *NodeFeatureList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeFeatureList) DeepCopyObject

func (in *NodeFeatureList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NodeFeatureRule

type NodeFeatureRule struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec defines the rules to be evaluated.
	Spec NodeFeatureRuleSpec `json:"spec"`
}

NodeFeatureRule resource specifies a configuration for feature-based customization of node objects, such as node labeling. +kubebuilder:object:root=true +kubebuilder:resource:scope=Cluster,shortName=nfr +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +genclient +genclient:nonNamespaced

func (*NodeFeatureRule) DeepCopy

func (in *NodeFeatureRule) DeepCopy() *NodeFeatureRule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeFeatureRule.

func (*NodeFeatureRule) DeepCopyInto

func (in *NodeFeatureRule) DeepCopyInto(out *NodeFeatureRule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeFeatureRule) DeepCopyObject

func (in *NodeFeatureRule) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NodeFeatureRuleList

type NodeFeatureRuleList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// List of NodeFeatureRules.
	Items []NodeFeatureRule `json:"items"`
}

NodeFeatureRuleList contains a list of NodeFeatureRule objects. +kubebuilder:object:root=true +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*NodeFeatureRuleList) DeepCopy

func (in *NodeFeatureRuleList) DeepCopy() *NodeFeatureRuleList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeFeatureRuleList.

func (*NodeFeatureRuleList) DeepCopyInto

func (in *NodeFeatureRuleList) DeepCopyInto(out *NodeFeatureRuleList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeFeatureRuleList) DeepCopyObject

func (in *NodeFeatureRuleList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NodeFeatureRuleSpec

type NodeFeatureRuleSpec struct {
	// Rules is a list of node customization rules.
	Rules []Rule `json:"rules"`
}

NodeFeatureRuleSpec describes a NodeFeatureRule.

func (*NodeFeatureRuleSpec) DeepCopy

func (in *NodeFeatureRuleSpec) DeepCopy() *NodeFeatureRuleSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeFeatureRuleSpec.

func (*NodeFeatureRuleSpec) DeepCopyInto

func (in *NodeFeatureRuleSpec) DeepCopyInto(out *NodeFeatureRuleSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeFeatureSpec

type NodeFeatureSpec struct {
	// Features is the full "raw" features data that has been discovered.
	// +optional
	Features Features `json:"features"`
	// Labels is the set of node labels that are requested to be created.
	// +optional
	Labels map[string]string `json:"labels"`
}

NodeFeatureSpec describes a NodeFeature object.

func NewNodeFeatureSpec

func NewNodeFeatureSpec() *NodeFeatureSpec

NewNodeFeatureSpec creates a new emprty instance of NodeFeatureSpec type, initializing all fields to proper empty values.

func (*NodeFeatureSpec) DeepCopy

func (in *NodeFeatureSpec) DeepCopy() *NodeFeatureSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeFeatureSpec.

func (*NodeFeatureSpec) DeepCopyInto

func (in *NodeFeatureSpec) DeepCopyInto(out *NodeFeatureSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeFeatureSpec) MergeInto

func (in *NodeFeatureSpec) MergeInto(out *NodeFeatureSpec)

MergeInto merges two FeatureSpecs into one. Data in the input object takes precedence (overwrite) over data of the existing object we're merging into.

type Rule

type Rule struct {
	// Name of the rule.
	Name string `json:"name"`

	// Labels to create if the rule matches.
	// +optional
	Labels map[string]string `json:"labels"`

	// LabelsTemplate specifies a template to expand for dynamically generating
	// multiple labels. Data (after template expansion) must be keys with an
	// optional value (<key>[=<value>]) separated by newlines.
	// +optional
	LabelsTemplate string `json:"labelsTemplate"`

	// Annotations to create if the rule matches.
	// +optional
	Annotations map[string]string `json:"annotations"`

	// Vars is the variables to store if the rule matches. Variables do not
	// directly inflict any changes in the node object. However, they can be
	// referenced from other rules enabling more complex rule hierarchies,
	// without exposing intermediary output values as labels.
	// +optional
	Vars map[string]string `json:"vars"`

	// VarsTemplate specifies a template to expand for dynamically generating
	// multiple variables. Data (after template expansion) must be keys with an
	// optional value (<key>[=<value>]) separated by newlines.
	// +optional
	VarsTemplate string `json:"varsTemplate"`

	// Taints to create if the rule matches.
	// +optional
	Taints []corev1.Taint `json:"taints,omitempty"`

	// ExtendedResources to create if the rule matches.
	// +optional
	ExtendedResources map[string]string `json:"extendedResources"`

	// MatchFeatures specifies a set of matcher terms all of which must match.
	// +optional
	MatchFeatures FeatureMatcher `json:"matchFeatures"`

	// MatchAny specifies a list of matchers one of which must match.
	// +optional
	MatchAny []MatchAnyElem `json:"matchAny"`
}

Rule defines a rule for node customization such as labeling.

func (*Rule) DeepCopy

func (in *Rule) DeepCopy() *Rule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rule.

func (*Rule) DeepCopyInto

func (in *Rule) DeepCopyInto(out *Rule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL