Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the policy v1alpha1 API group +kubebuilder:object:generate=true +groupName=policy.kcloudlabs.io
Index ¶
- Constants
- Variables
- func Resource(name string) schema.GroupResource
- type AffectMode
- type ClusterOverridePolicy
- func (in *ClusterOverridePolicy) DeepCopy() *ClusterOverridePolicy
- func (in *ClusterOverridePolicy) DeepCopyInto(out *ClusterOverridePolicy)
- func (in *ClusterOverridePolicy) DeepCopyObject() runtime.Object
- func (p *ClusterOverridePolicy) GetName() string
- func (p *ClusterOverridePolicy) GetNamespace() string
- func (p *ClusterOverridePolicy) GetOverridePolicySpec() OverridePolicySpec
- type ClusterOverridePolicyList
- type ClusterValidatePolicy
- type ClusterValidatePolicyList
- type ClusterValidatePolicySpec
- type Cond
- type ConstantValue
- type FieldSelector
- type FieldSelectorRequirement
- type Float64
- type HttpDataRef
- type HttpRequestAuth
- type OperationType
- type OverridePolicy
- func (in *OverridePolicy) DeepCopy() *OverridePolicy
- func (in *OverridePolicy) DeepCopyInto(out *OverridePolicy)
- func (in *OverridePolicy) DeepCopyObject() runtime.Object
- func (p *OverridePolicy) GetName() string
- func (p *OverridePolicy) GetNamespace() string
- func (p *OverridePolicy) GetOverridePolicySpec() OverridePolicySpec
- type OverridePolicyList
- type OverridePolicySpec
- type OverrideRuleTemplate
- type OverrideRuleType
- type OverriderOperator
- type Overriders
- type PlaintextOverrider
- type ResourceRefer
- type ResourceSelector
- type ResourcesOversellRule
- type RuleWithOperation
- type ValidateCondition
- type ValidateRuleTemplate
- type ValidateRuleType
- type ValidateRuleWithOperation
- type ValueProcess
- type ValueRefFrom
- type ValueType
Constants ¶
const ( // AffectModeReject means reject the operation when policy hit by resource. AffectModeReject = "reject" // AffectModeAllow means only allow the operation when policy hit by resource. AffectModeAllow = "allow" )
const ( // OperationTypeAdd represents add(+) operate OperationTypeAdd = "+" // OperationTypeSub represents sub(-) operate OperationTypeSub = "-" // OperationTypeMultiply represents multiply(*) operate OperationTypeMultiply = "*" // OperationTypeDivide represents divide(/) operate OperationTypeDivide = "/" )
const (
// ValidateRuleTypeCondition - general rule type
ValidateRuleTypeCondition = "condition"
)
Variables ¶
var ( // GroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "policy.kcloudlabs.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func Resource ¶
func Resource(name string) schema.GroupResource
Types ¶
type AffectMode ¶ added in v0.4.0
type AffectMode string
AffectMode is defining match affect +kubebuilder:validation:Enum=reject;allow
type ClusterOverridePolicy ¶
type ClusterOverridePolicy struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// Spec represents the desired behavior of ClusterOverridePolicy.
Spec OverridePolicySpec `json:"spec"`
}
ClusterOverridePolicy represents the cluster-wide policy that overrides a group of resources.
func (*ClusterOverridePolicy) DeepCopy ¶
func (in *ClusterOverridePolicy) DeepCopy() *ClusterOverridePolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterOverridePolicy.
func (*ClusterOverridePolicy) DeepCopyInto ¶
func (in *ClusterOverridePolicy) DeepCopyInto(out *ClusterOverridePolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterOverridePolicy) DeepCopyObject ¶
func (in *ClusterOverridePolicy) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ClusterOverridePolicy) GetName ¶
func (p *ClusterOverridePolicy) GetName() string
GetName returns the name of ClusterOverridePolicy
func (*ClusterOverridePolicy) GetNamespace ¶
func (p *ClusterOverridePolicy) GetNamespace() string
GetNamespace returns the namespace of ClusterOverridePolicy
func (*ClusterOverridePolicy) GetOverridePolicySpec ¶
func (p *ClusterOverridePolicy) GetOverridePolicySpec() OverridePolicySpec
GetOverridePolicySpec returns the OverrideSpec of ClusterOverridePolicy
type ClusterOverridePolicyList ¶
type ClusterOverridePolicyList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ClusterOverridePolicy `json:"items"`
}
ClusterOverridePolicyList contains a list of ClusterOverridePolicy
func (*ClusterOverridePolicyList) DeepCopy ¶
func (in *ClusterOverridePolicyList) DeepCopy() *ClusterOverridePolicyList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterOverridePolicyList.
func (*ClusterOverridePolicyList) DeepCopyInto ¶
func (in *ClusterOverridePolicyList) DeepCopyInto(out *ClusterOverridePolicyList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterOverridePolicyList) DeepCopyObject ¶
func (in *ClusterOverridePolicyList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterValidatePolicy ¶ added in v0.2.0
type ClusterValidatePolicy struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ClusterValidatePolicySpec `json:"spec,omitempty"`
}
ClusterValidatePolicy represents the cluster-wide policy that validate a group of resources.
func (*ClusterValidatePolicy) DeepCopy ¶ added in v0.2.0
func (in *ClusterValidatePolicy) DeepCopy() *ClusterValidatePolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterValidatePolicy.
func (*ClusterValidatePolicy) DeepCopyInto ¶ added in v0.2.0
func (in *ClusterValidatePolicy) DeepCopyInto(out *ClusterValidatePolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterValidatePolicy) DeepCopyObject ¶ added in v0.2.0
func (in *ClusterValidatePolicy) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterValidatePolicyList ¶ added in v0.2.0
type ClusterValidatePolicyList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ClusterValidatePolicy `json:"items"`
}
ClusterValidatePolicyList contains a list of ClusterValidatePolicy
func (*ClusterValidatePolicyList) DeepCopy ¶ added in v0.2.0
func (in *ClusterValidatePolicyList) DeepCopy() *ClusterValidatePolicyList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterValidatePolicyList.
func (*ClusterValidatePolicyList) DeepCopyInto ¶ added in v0.2.0
func (in *ClusterValidatePolicyList) DeepCopyInto(out *ClusterValidatePolicyList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterValidatePolicyList) DeepCopyObject ¶ added in v0.2.0
func (in *ClusterValidatePolicyList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterValidatePolicySpec ¶ added in v0.2.0
type ClusterValidatePolicySpec struct {
// ResourceSelectors restricts resource types that this validate policy applies to.
// nil means matching all resources.
// +optional
ResourceSelectors []ResourceSelector `json:"resourceSelectors,omitempty"`
// ValidateRules defines a collection of validate rules on target operations.
// +required
ValidateRules []ValidateRuleWithOperation `json:"validateRules"`
}
ClusterValidatePolicySpec defines the desired behavior of ClusterValidatePolicy.
func (*ClusterValidatePolicySpec) DeepCopy ¶ added in v0.2.0
func (in *ClusterValidatePolicySpec) DeepCopy() *ClusterValidatePolicySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterValidatePolicySpec.
func (*ClusterValidatePolicySpec) DeepCopyInto ¶ added in v0.2.0
func (in *ClusterValidatePolicySpec) DeepCopyInto(out *ClusterValidatePolicySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Cond ¶ added in v0.4.0
type Cond string
Cond is validation condition for validator +kubebuilder:validation:Enum=Equal;NotEqual;Exist;NotExist;In;NotIn;Gt;Gte;Lt;Lte
const ( // CondEqual - `Equal` CondEqual Cond = "Equal" // CondNotEqual - `NotEqual` CondNotEqual Cond = "NotEqual" // CondExist - `Exist` CondExist Cond = "Exist" // CondNotExist - `NotExist` CondNotExist Cond = "NotExist" // CondIn - `In` CondIn Cond = "In" // CondNotIn - `NotIn` CondNotIn Cond = "NotIn" // CondGreater - `Gt` CondGreater Cond = "Gt" // CondGreaterOrEqual - `Gte` CondGreaterOrEqual Cond = "Gte" // CondLesser - `Lt` CondLesser Cond = "Lt" // CondLesserOrEqual - `Lte` CondLesserOrEqual Cond = "Lte" // CondRegex match regex. e.g. `/^\d{1,}$/` CondRegex Cond = "Regex" )
type ConstantValue ¶ added in v0.4.0
type ConstantValue struct {
// String as a string
// +optional
String *string `json:"string,omitempty"`
// Integer as an integer(int64)
// +optional
Integer *int64 `json:"integer,omitempty"`
// Float as float but use string to store, so please provide in comma (e.g. float: "1.2")
// +optional
Float *Float64 `json:"float,omitempty"`
// Boolean only true or false can be recognized.
// +optional
Boolean *bool `json:"boolean,omitempty"`
// StringSlice as a slice of string(e.g. ["a","b"])
// +optional
StringSlice []string `json:"stringSlice,omitempty"`
// IntegerSlice as a slice of integer(int64) (e.g. [1,2,3])
// +optional
IntegerSlice []int64 `json:"integerSlice,omitempty"`
// FloatSlice as a slice of float but using string (e.g. ["1.2", "2.3"])
// +optional
FloatSlice []Float64 `json:"floatSlice,omitempty"`
// StringMap as key-value set and both are string.
// +optional
StringMap map[string]string `json:"stringMap,omitempty"`
}
ConstantValue defines exact types. Only one of field can be set.
func (*ConstantValue) DeepCopy ¶ added in v0.4.0
func (in *ConstantValue) DeepCopy() *ConstantValue
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConstantValue.
func (*ConstantValue) DeepCopyInto ¶ added in v0.4.0
func (in *ConstantValue) DeepCopyInto(out *ConstantValue)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ConstantValue) GetSlice ¶ added in v0.4.0
func (t *ConstantValue) GetSlice() []any
func (*ConstantValue) Value ¶ added in v0.4.0
func (t *ConstantValue) Value() any
Value return first non-nil value, it returns nil if all fields are empty.
type FieldSelector ¶ added in v0.4.3
type FieldSelector struct {
// matchFields is a map of {key,value} pairs. A single {key,value} in the matchFields
// map is equivalent to an element of matchExpressions, whose key field is "key", the
// operator is "In", and the values array contains only "value".
// +optional
MatchFields map[string]string `json:"matchFields,omitempty"`
// matchExpressions is a list of fields selector requirements. The requirements are ANDed.
// +optional
MatchExpressions []*FieldSelectorRequirement `json:"matchExpressions,omitempty"`
}
func (*FieldSelector) DeepCopy ¶ added in v0.4.3
func (in *FieldSelector) DeepCopy() *FieldSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FieldSelector.
func (*FieldSelector) DeepCopyInto ¶ added in v0.4.3
func (in *FieldSelector) DeepCopyInto(out *FieldSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FieldSelector) MatchObject ¶ added in v0.4.3
func (f *FieldSelector) MatchObject(obj *unstructured.Unstructured) (bool, error)
type FieldSelectorRequirement ¶ added in v0.4.3
type FieldSelectorRequirement struct {
// Field is the field key that the selector applies to.
// Must provide whole path of key, such as `metadata.annotations.uid`
Field string `json:"field"`
// operator represents a key's relationship to a set of values.
// Valid operators are In, NotIn, Exists and DoesNotExist.
Operator metav1.LabelSelectorOperator `json:"operator"`
// values is an array of string values. If the operator is In or NotIn,
// the values array must be non-empty. If the operator is Exists or DoesNotExist,
// the values array must be empty.
// +optional
Value []string `json:"value,omitempty"`
}
func (*FieldSelectorRequirement) DeepCopy ¶ added in v0.4.3
func (in *FieldSelectorRequirement) DeepCopy() *FieldSelectorRequirement
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FieldSelectorRequirement.
func (*FieldSelectorRequirement) DeepCopyInto ¶ added in v0.4.3
func (in *FieldSelectorRequirement) DeepCopyInto(out *FieldSelectorRequirement)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FieldSelectorRequirement) MatchObject ¶ added in v0.4.3
func (r *FieldSelectorRequirement) MatchObject(obj *unstructured.Unstructured) (bool, error)
type Float64 ¶ added in v0.4.0
type Float64 string
Float64 is alias for float64 as string
func (Float64) ToFloat64 ¶ added in v0.4.0
ToFloat64 converts string to pointer to float64 and return nil if convert got error
func (Float64) ValidFactor ¶ added in v0.4.0
type HttpDataRef ¶ added in v0.4.0
type HttpDataRef struct {
// URL as whole http url
// +required
URL string `json:"url,omitempty"`
// Method as basic http method(e.g. GET or POST)
// +required
// +kubebuilder:validation:Enum=GET;POST
Method string `json:"method,omitempty"`
// Header represents the custom header added to http request header.
// +optional
Header map[string]string `json:"header,omitempty"`
// Params represents the query value for http request.
// +optional
Params map[string]string `json:"params,omitempty"`
// Body represents the json body when http method is POST.
// +optional
Body apiextensionsv1.JSON `json:"body,omitempty"`
// Auth defines basic info for get authorization token before do request.
// Note: it will request authURL with post and `Header.Set("Authorization", "Basic "+basicAuth(username, password))`
// and get token from response body. Response Body must be a valid json and contains token like this: `{"token": "xxx"} .
// After get the token, the request will add a new key value to header, key is "Authorization" and value is "Bearer xxx".
Auth *HttpRequestAuth `json:"auth,omitempty"`
}
HttpDataRef defines a http request essential params
func (*HttpDataRef) DeepCopy ¶ added in v0.4.0
func (in *HttpDataRef) DeepCopy() *HttpDataRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HttpDataRef.
func (*HttpDataRef) DeepCopyInto ¶ added in v0.4.0
func (in *HttpDataRef) DeepCopyInto(out *HttpDataRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HttpRequestAuth ¶ added in v0.4.0
type HttpRequestAuth struct {
// StaticToken represents for static token for call api instead of get token from remote api.
// StaticToken and other fields are mutually exclusive, staticToken is priority to take effect.
// +optional
StaticToken string `json:"staticToken,omitempty"`
// Username represents username for auth.
// +optional
Username string `json:"username,omitempty"`
// Password represents Password for auth.
// +optional
Password string `json:"password,omitempty"`
// AuthURL represents remote url to request and get token.
// +optional
AuthURL string `json:"authUrl,omitempty"`
// ExpireDuration is providing for some auth api won't return exact expire time, so can you this field set
// an expiry duration for token
// +optional
ExpireDuration metav1.Duration `json:"expireDuration,omitempty"`
// Token stores the latest token get from AuthURL, and it'll be updated when token expired.
// This filed is not fill by user, so don't edit it.
// +optional
Token string `json:"token,omitempty"`
// ExpireAt sores the token expire time. Same as above field, this field also updated automatically.
// This filed is not fill by user, so don't edit it.
// +optional
ExpireAt metav1.Time `json:"expireAt,omitempty"`
}
HttpRequestAuth defines basic info for get auth token from remote api
func (*HttpRequestAuth) DeepCopy ¶ added in v0.4.0
func (in *HttpRequestAuth) DeepCopy() *HttpRequestAuth
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HttpRequestAuth.
func (*HttpRequestAuth) DeepCopyInto ¶ added in v0.4.0
func (in *HttpRequestAuth) DeepCopyInto(out *HttpRequestAuth)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperationType ¶ added in v0.4.0
type OperationType string
OperationType defines the type of processing value.
type OverridePolicy ¶
type OverridePolicy struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec OverridePolicySpec `json:"spec,omitempty"`
}
OverridePolicy represents the policy that overrides a group of resources.
func (*OverridePolicy) DeepCopy ¶
func (in *OverridePolicy) DeepCopy() *OverridePolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OverridePolicy.
func (*OverridePolicy) DeepCopyInto ¶
func (in *OverridePolicy) DeepCopyInto(out *OverridePolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OverridePolicy) DeepCopyObject ¶
func (in *OverridePolicy) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*OverridePolicy) GetName ¶
func (p *OverridePolicy) GetName() string
GetName returns the name of OverridePolicy
func (*OverridePolicy) GetNamespace ¶
func (p *OverridePolicy) GetNamespace() string
GetNamespace returns the namespace of OverridePolicy
func (*OverridePolicy) GetOverridePolicySpec ¶
func (p *OverridePolicy) GetOverridePolicySpec() OverridePolicySpec
GetOverridePolicySpec returns the OverrideSpec of OverridePolicy
type OverridePolicyList ¶
type OverridePolicyList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []OverridePolicy `json:"items"`
}
OverridePolicyList contains a list of OverridePolicy
func (*OverridePolicyList) DeepCopy ¶
func (in *OverridePolicyList) DeepCopy() *OverridePolicyList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OverridePolicyList.
func (*OverridePolicyList) DeepCopyInto ¶
func (in *OverridePolicyList) DeepCopyInto(out *OverridePolicyList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OverridePolicyList) DeepCopyObject ¶
func (in *OverridePolicyList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type OverridePolicySpec ¶
type OverridePolicySpec struct {
// ResourceSelectors restricts resource types that this override policy applies to.
// nil means matching all resources.
// +optional
ResourceSelectors []ResourceSelector `json:"resourceSelectors,omitempty"`
// OverrideRules defines a collection of override rules on target operations.
// +required
OverrideRules []RuleWithOperation `json:"overrideRules"`
}
OverridePolicySpec defines the desired behavior of OverridePolicy.
func (*OverridePolicySpec) DeepCopy ¶
func (in *OverridePolicySpec) DeepCopy() *OverridePolicySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OverridePolicySpec.
func (*OverridePolicySpec) DeepCopyInto ¶
func (in *OverridePolicySpec) DeepCopyInto(out *OverridePolicySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OverrideRuleTemplate ¶ added in v0.4.0
type OverrideRuleTemplate struct {
// Type represents current rule operate field type.
// +kubebuilder:validation:Enum=annotations;labels;resources;resourcesOversell;tolerations;affinity
// +required
Type OverrideRuleType `json:"type,omitempty"`
// Operation represents current operation type.
// +kubebuilder:validation:Enum=add;replace;remove
// +required
Operation OverriderOperator `json:"operation,omitempty"`
// Path is field path of current object(e.g. `/spec/affinity`)
// If current type is annotations or labels, then only need to provide the key, no need whole path.
// +optional
Path string `json:"path,omitempty"`
// Value sets exact value for rule, like enum or numbers
// Must set value when type is regex.
// +optional
Value *ConstantValue `json:"value,omitempty"`
// ValueRef represents for value reference from current or remote object.
// Need specify the type of object and how to get it.
// +optional
ValueRef *ResourceRefer `json:"valueRef,omitempty"`
// Resources valid only when the type is `resources`
// +optional
Resources *v1.ResourceRequirements `json:"resources,omitempty"`
// ResourcesOversell valid only when the type is `resourcesOversell`
// +optional
ResourcesOversell *ResourcesOversellRule `json:"resourcesOversell,omitempty"`
// Tolerations valid only when the type is `tolerations`
// +optional
Tolerations []*v1.Toleration `json:"tolerations,omitempty"`
// Affinity valid only when the type is `affinity`
// +optional
Affinity *v1.Affinity `json:"affinity,omitempty"`
}
OverrideRuleTemplate represents a single template of rule definition
func (*OverrideRuleTemplate) DeepCopy ¶ added in v0.4.0
func (in *OverrideRuleTemplate) DeepCopy() *OverrideRuleTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OverrideRuleTemplate.
func (*OverrideRuleTemplate) DeepCopyInto ¶ added in v0.4.0
func (in *OverrideRuleTemplate) DeepCopyInto(out *OverrideRuleTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OverrideRuleType ¶ added in v0.4.0
type OverrideRuleType string
OverrideRuleType is definition for type of single override rule template +kubebuilder:validation:Enum=annotations;labels;resourcesOversell;resources;affinity;tolerations
const ( // OverrideRuleTypeAnnotations - `annotations` OverrideRuleTypeAnnotations OverrideRuleType = "annotations" // OverrideRuleTypeLabels - `labels` OverrideRuleTypeLabels OverrideRuleType = "labels" // OverrideRuleTypeResourcesOversell - `resourcesOversell` OverrideRuleTypeResourcesOversell OverrideRuleType = "resourcesOversell" // OverrideRuleTypeResources - `resources` OverrideRuleTypeResources OverrideRuleType = "resources" // OverrideRuleTypeAffinity - `affinity` OverrideRuleTypeAffinity OverrideRuleType = "affinity" // OverrideRuleTypeTolerations - `tolerations` OverrideRuleTypeTolerations OverrideRuleType = "tolerations" )
The valid RuleTypes
type OverriderOperator ¶
type OverriderOperator string
OverriderOperator is the set of operators that can be used in an overrider.
const ( // OverriderOpAdd - "add" value to object OverriderOpAdd OverriderOperator = "add" // OverriderOpRemove - remove field form object OverriderOpRemove OverriderOperator = "remove" // OverriderOpReplace - remove and add value(if specified path doesn't exist, it will add directly) OverriderOpReplace OverriderOperator = "replace" )
These are valid overrider operators.
type Overriders ¶
type Overriders struct {
// Plaintext represents override rules defined with plaintext overriders.
// +optional
Plaintext []PlaintextOverrider `json:"plaintext,omitempty"`
// Cue represents override rules defined with cue code.
// +optional
Cue string `json:"cue,omitempty"`
// Template of rule which defines override rule, and
// it will be rendered to CUE and store in RenderedCue field, so
//if there are any data added manually will be erased.
// +optional
Template *OverrideRuleTemplate `json:"template,omitempty"`
// RenderedCue represents override rule defined by Template.
// Don't modify the value of this field, modify Rules instead of.
// +optional
RenderedCue string `json:"renderedCue,omitempty"`
}
Overriders offers various alternatives to represent the override rules.
If more than one alternative exist, they will be applied with following order: - RenderCue - Cue - Plaintext
func (*Overriders) DeepCopy ¶
func (in *Overriders) DeepCopy() *Overriders
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Overriders.
func (*Overriders) DeepCopyInto ¶
func (in *Overriders) DeepCopyInto(out *Overriders)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PlaintextOverrider ¶
type PlaintextOverrider struct {
// Path indicates the path of target field
Path string `json:"path"`
// Operator indicates the operation on target field.
// Available operators are: add, update and remove.
// +kubebuilder:validation:Enum=add;remove;replace
Operator OverriderOperator `json:"op"`
// Value to be applied to target field.
// Must be empty when operator is Remove.
// +optional
Value apiextensionsv1.JSON `json:"value,omitempty"`
}
PlaintextOverrider is a simple overrider that overrides target fields according to path, operator and value.
func (*PlaintextOverrider) DeepCopy ¶
func (in *PlaintextOverrider) DeepCopy() *PlaintextOverrider
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlaintextOverrider.
func (*PlaintextOverrider) DeepCopyInto ¶
func (in *PlaintextOverrider) DeepCopyInto(out *PlaintextOverrider)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceRefer ¶ added in v0.4.0
type ResourceRefer struct {
// From represents where this referenced object are.
// +kubebuilder:validation:Enum=current;old;k8s;owner;http
// +required
From ValueRefFrom `json:"from,omitempty"`
// Path has different meaning, it represents current object field path like "/spec/replica" when From equals "current"
// and it also can be format like "data.result.x.y" when From equals "http", it represents the path in http response
// Only when From is owner(means refer current object owner), the path can be empty.
// +optional
Path string `json:"path,omitempty"`
// K8s means refer another object from current cluster.
// +optional
K8s *ResourceSelector `json:"k8s,omitempty"`
// Http means refer data from remote api.
// +optional
Http *HttpDataRef `json:"http,omitempty"`
}
ResourceRefer defines different types of ref data
func (*ResourceRefer) DeepCopy ¶ added in v0.4.0
func (in *ResourceRefer) DeepCopy() *ResourceRefer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRefer.
func (*ResourceRefer) DeepCopyInto ¶ added in v0.4.0
func (in *ResourceRefer) DeepCopyInto(out *ResourceRefer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceSelector ¶
type ResourceSelector struct {
// APIVersion represents the API version of the target resources.
// +required
APIVersion string `json:"apiVersion"`
// Kind represents the Kind of the target resources.
// +required
Kind string `json:"kind"`
// Namespace of the target resource.
// Default is empty, which means inherit from the parent object scope.
// +optional
Namespace string `json:"namespace,omitempty"`
// Name of the target resource.
// Default is empty, which means selecting all resources.
// +optional
Name string `json:"name,omitempty"`
// A label query over a set of resources.
// If name is not empty, labelSelector will be ignored.
// +optional
LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"`
// A field query over a set of resources.
// If name is not empty, fieldSelector wil be ignored.
// +optional
FieldSelector *FieldSelector `json:"fieldSelector,omitempty"`
}
ResourceSelector the resources will be selected.
func (*ResourceSelector) DeepCopy ¶
func (in *ResourceSelector) DeepCopy() *ResourceSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSelector.
func (*ResourceSelector) DeepCopyInto ¶
func (in *ResourceSelector) DeepCopyInto(out *ResourceSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourcesOversellRule ¶ added in v0.4.0
type ResourcesOversellRule struct {
// CpuFactor factor of cup oversell, it is float number less than 1, the range of value is (0,1.0)
// +optional
CpuFactor Float64 `json:"cpuFactor,omitempty"`
// MemoryFactor factor of cup oversell, it is float number less than 1, the range of value is (0,1.0)
// +optional
MemoryFactor Float64 `json:"memoryFactor,omitempty"`
// DiskFactor factor of cup oversell, it is float number less than 1, the range of value is (0,1.0)
// +optional
DiskFactor Float64 `json:"diskFactor,omitempty"`
}
ResourcesOversellRule defines factor of resource oversell
func (*ResourcesOversellRule) DeepCopy ¶ added in v0.4.0
func (in *ResourcesOversellRule) DeepCopy() *ResourcesOversellRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcesOversellRule.
func (*ResourcesOversellRule) DeepCopyInto ¶ added in v0.4.0
func (in *ResourcesOversellRule) DeepCopyInto(out *ResourcesOversellRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RuleWithOperation ¶
type RuleWithOperation struct {
// TargetOperations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or *
// for all of those operations and any future admission operations that are added.
// If '*' is present, the length of the slice must be one.
// Required.
TargetOperations []admissionv1.Operation `json:"targetOperations,omitempty"`
// Overriders represents the override rules that would apply on resources
// +required
Overriders Overriders `json:"overriders"`
}
RuleWithOperation defines the override rules on operations.
func (*RuleWithOperation) DeepCopy ¶
func (in *RuleWithOperation) DeepCopy() *RuleWithOperation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleWithOperation.
func (*RuleWithOperation) DeepCopyInto ¶
func (in *RuleWithOperation) DeepCopyInto(out *RuleWithOperation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ValidateCondition ¶ added in v0.4.0
type ValidateCondition struct {
// AffectMode represents the mode of policy hit affect, in default case(reject), webhook rejects the operation when
// policy hit, otherwise it will allow the operation.
// If mode is `allow`, only allow the operation when policy hit, otherwise reject them all.
// +kubebuilder:validation:Enum=reject;allow
// +required
AffectMode AffectMode `json:"affectMode,omitempty"`
// Cond represents type of condition (e.g. Equal, Exist)
// +kubebuilder:validation:Enum=Equal;NotEqual;Exist;NotExist;In;NotIn;Gt;Gte;Lt;Lte
// +required
Cond Cond `json:"cond,omitempty"`
// DataRef represents for data reference from current or remote object.
// Need specify the type of object and how to get it.
// +required
DataRef *ResourceRefer `json:"dataRef,omitempty"`
// Message specify reject message when policy hit.
// +required
Message string `json:"message,omitempty"`
// Value sets exact value for rule, like enum or numbers
// +optional
Value *ConstantValue `json:"value,omitempty"`
// ValueRef represents for value reference from current or remote object.
// Need specify the type of object and how to get it.
// +optional
ValueRef *ResourceRefer `json:"valueRef,omitempty"`
// ValueProcess represents handle process for value or valueRef.
// Currently only support for number value, so make sure value or value from remote is a number.
// +optional
ValueProcess *ValueProcess `json:"valueProcess,omitempty"`
}
func (*ValidateCondition) DeepCopy ¶ added in v0.4.0
func (in *ValidateCondition) DeepCopy() *ValidateCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidateCondition.
func (*ValidateCondition) DeepCopyInto ¶ added in v0.4.0
func (in *ValidateCondition) DeepCopyInto(out *ValidateCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ValidateRuleTemplate ¶ added in v0.4.0
type ValidateRuleTemplate struct {
// Type represents current rule operate field type.
// +kubebuilder:validation:Enum=condition
// +required
Type ValidateRuleType `json:"type,omitempty"`
// Condition represents general condition rule for more custom demand.
// +optional
Condition *ValidateCondition `json:"condition,omitempty"`
}
ValidateRuleTemplate defines template for validate rule
func (*ValidateRuleTemplate) DeepCopy ¶ added in v0.4.0
func (in *ValidateRuleTemplate) DeepCopy() *ValidateRuleTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidateRuleTemplate.
func (*ValidateRuleTemplate) DeepCopyInto ¶ added in v0.4.0
func (in *ValidateRuleTemplate) DeepCopyInto(out *ValidateRuleTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ValidateRuleType ¶ added in v0.4.0
type ValidateRuleType string
ValidateRuleType is definition for type of single validate rule template +kubebuilder:validation:Enum=condition
type ValidateRuleWithOperation ¶ added in v0.2.0
type ValidateRuleWithOperation struct {
// Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or *
// for all of those operations and any future admission operations that are added.
// If '*' is present, the length of the slice must be one.
// Required.
TargetOperations []admissionv1.Operation `json:"targetOperations,omitempty"`
// Cue represents validate rules defined with cue code.
// +optional
Cue string `json:"cue"`
// Template of condition which defines validate cond, and
// it will be rendered to CUE and store in RenderedCue field, so
// if there are any data added manually will be erased.
// +optional
Template *ValidateRuleTemplate `json:"template,omitempty"`
// RenderedCue represents validate rule defined by Template.
// Don't modify the value of this field, modify Rules instead of.
// +optional
RenderedCue string `json:"renderedCue,omitempty"`
}
ValidateRuleWithOperation defines validate rules on operations.
func (*ValidateRuleWithOperation) DeepCopy ¶ added in v0.2.0
func (in *ValidateRuleWithOperation) DeepCopy() *ValidateRuleWithOperation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidateRuleWithOperation.
func (*ValidateRuleWithOperation) DeepCopyInto ¶ added in v0.2.0
func (in *ValidateRuleWithOperation) DeepCopyInto(out *ValidateRuleWithOperation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ValueProcess ¶ added in v0.4.0
type ValueProcess struct {
// Operation defines the type of operate value, and it should work with operationWith.
// For example, operation is `*` and operationWith is 0.5 then in cue the value will be multiplied by 0.5.
// +required
Operation OperationType `json:"operation,omitempty"` // such as `+ - * /`
// OperationWith defines value for operate to handle static value or value from remote.
// +required
OperationWith *intstr.IntOrString `json:"operationWith,omitempty"`
}
ValueProcess defines operation to handle value to compare. E.g. operation: '*'
operationWith: 50% # or 0.5
func (*ValueProcess) DeepCopy ¶ added in v0.4.0
func (in *ValueProcess) DeepCopy() *ValueProcess
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValueProcess.
func (*ValueProcess) DeepCopyInto ¶ added in v0.4.0
func (in *ValueProcess) DeepCopyInto(out *ValueProcess)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ValueRefFrom ¶ added in v0.4.0
type ValueRefFrom string
ValueRefFrom defines where the override value comes from when value is refer other object or http response +kubebuilder:validation:Enum=current;old;k8s;owner;http
const ( // FromCurrentObject means read data from current k8s object(the newest one when update operate intercept) FromCurrentObject ValueRefFrom = "current" // FromOldObject means read data from old object, only used when object be updated FromOldObject ValueRefFrom = "old" // FromK8s - read data from other object in current kubernetes FromK8s ValueRefFrom = "k8s" // FromOwnerReference - load first owner reference from current object FromOwnerReference = "owner" // FromHTTP - read data from http response FromHTTP ValueRefFrom = "http" )
Valid ValueRefFrom