Documentation
¶
Overview ¶
+k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kubernetes-sigs/federation-v2/pkg/apis/scheduling +k8s:defaulter-gen=TypeMeta +groupName=scheduling.federation.k8s.io
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme )
var ( // Define CRDs for resources ReplicaSchedulingPreferenceCRD = v1beta1.CustomResourceDefinition{ ObjectMeta: metav1.ObjectMeta{ Name: "replicaschedulingpreferences.scheduling.federation.k8s.io", }, Spec: v1beta1.CustomResourceDefinitionSpec{ Group: "scheduling.federation.k8s.io", Version: "v1alpha1", Names: v1beta1.CustomResourceDefinitionNames{ Kind: "ReplicaSchedulingPreference", Plural: "replicaschedulingpreferences", }, Scope: "Namespaced", Validation: &v1beta1.CustomResourceValidation{ OpenAPIV3Schema: &v1beta1.JSONSchemaProps{ Properties: map[string]v1beta1.JSONSchemaProps{ "apiVersion": v1beta1.JSONSchemaProps{ Type: "string", }, "kind": v1beta1.JSONSchemaProps{ Type: "string", }, "metadata": v1beta1.JSONSchemaProps{ Type: "object", }, "spec": v1beta1.JSONSchemaProps{ Type: "object", Properties: map[string]v1beta1.JSONSchemaProps{ "clusters": v1beta1.JSONSchemaProps{ Type: "object", }, "rebalance": v1beta1.JSONSchemaProps{ Type: "boolean", }, "targetKind": v1beta1.JSONSchemaProps{ Type: "string", }, "totalReplicas": v1beta1.JSONSchemaProps{ Type: "integer", Format: "int32", }, }, Required: []string{ "targetKind", "totalReplicas", }}, "status": v1beta1.JSONSchemaProps{ Type: "object", Properties: map[string]v1beta1.JSONSchemaProps{}, }, }, }, }, }, } )
var SchemeGroupVersion = schema.GroupVersion{Group: "scheduling.federation.k8s.io", Version: "v1alpha1"}
SchemeGroupVersion is group version used to register these objects
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type ClusterPreferences ¶
type ClusterPreferences struct {
// Minimum number of replicas that should be assigned to this cluster workload object. 0 by default.
// +optional
MinReplicas int64 `json:"minReplicas,omitempty"`
// Maximum number of replicas that should be assigned to this cluster workload object.
// Unbounded if no value provided (default).
// +optional
MaxReplicas *int64 `json:"maxReplicas,omitempty"`
// A number expressing the preference to put an additional replica to this cluster workload object.
// 0 by default.
Weight int64 `json:"weight,omitempty"`
}
Preferences regarding number of replicas assigned to a cluster workload object (dep, rs, ..) within a federated workload object.
func (*ClusterPreferences) DeepCopy ¶
func (in *ClusterPreferences) DeepCopy() *ClusterPreferences
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterPreferences.
func (*ClusterPreferences) DeepCopyInto ¶
func (in *ClusterPreferences) DeepCopyInto(out *ClusterPreferences)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicaSchedulingPreference ¶
type ReplicaSchedulingPreference struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ReplicaSchedulingPreferenceSpec `json:"spec,omitempty"`
Status ReplicaSchedulingPreferenceStatus `json:"status,omitempty"`
}
ReplicaSchedulingPreference +k8s:openapi-gen=true +kubebuilder:resource:path=replicaschedulingpreferences
func (*ReplicaSchedulingPreference) DeepCopy ¶
func (in *ReplicaSchedulingPreference) DeepCopy() *ReplicaSchedulingPreference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSchedulingPreference.
func (*ReplicaSchedulingPreference) DeepCopyInto ¶
func (in *ReplicaSchedulingPreference) DeepCopyInto(out *ReplicaSchedulingPreference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ReplicaSchedulingPreference) DeepCopyObject ¶
func (in *ReplicaSchedulingPreference) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ReplicaSchedulingPreferenceList ¶
type ReplicaSchedulingPreferenceList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ReplicaSchedulingPreference `json:"items"`
}
func (*ReplicaSchedulingPreferenceList) DeepCopy ¶
func (in *ReplicaSchedulingPreferenceList) DeepCopy() *ReplicaSchedulingPreferenceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSchedulingPreferenceList.
func (*ReplicaSchedulingPreferenceList) DeepCopyInto ¶
func (in *ReplicaSchedulingPreferenceList) DeepCopyInto(out *ReplicaSchedulingPreferenceList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ReplicaSchedulingPreferenceList) DeepCopyObject ¶
func (in *ReplicaSchedulingPreferenceList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ReplicaSchedulingPreferenceSpec ¶
type ReplicaSchedulingPreferenceSpec struct {
//TODO (@irfanurrehman); upgrade this to label selector only if need be.
// The idea of this API is to have a a set of preferences which can
// be used for a target FederatedDeployment or FederatedReplicaset.
// Although the set of preferences in question can be applied to multiple
// target objects using label selectors, but there are no clear advantages
// of doing that as of now.
// To keep the implementation and usage simple, matching ns/name of RSP
// resource to the target resource is sufficient and only additional information
// needed in RSP resource is a target kind (FederatedDeployment or FederatedReplicaset).
TargetKind string `json:"targetKind"`
// Total number of pods desired across federated clusters.
// Replicas specified in the spec for target deployment template or replicaset
// template will be discarded/overridden when scheduling preferences are
// specified.
TotalReplicas int32 `json:"totalReplicas"`
// If set to true then already scheduled and running replicas may be moved to other clusters
// in order to match current state to the specified preferences. Otherwise, if set to false,
// up and running replicas will not be moved.
// +optional
Rebalance bool `json:"rebalance,omitempty"`
// A mapping between cluster names and preferences regarding a local workload object (dep, rs, .. ) in
// these clusters.
// "*" (if provided) applies to all clusters if an explicit mapping is not provided.
// If omitted, clusters without explicit preferences should not have any replicas scheduled.
// +optional
Clusters map[string]ClusterPreferences `json:"clusters,omitempty"`
}
ReplicaSchedulingPreferenceSpec defines the desired state of ReplicaSchedulingPreference
func (*ReplicaSchedulingPreferenceSpec) DeepCopy ¶
func (in *ReplicaSchedulingPreferenceSpec) DeepCopy() *ReplicaSchedulingPreferenceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSchedulingPreferenceSpec.
func (*ReplicaSchedulingPreferenceSpec) DeepCopyInto ¶
func (in *ReplicaSchedulingPreferenceSpec) DeepCopyInto(out *ReplicaSchedulingPreferenceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicaSchedulingPreferenceStatus ¶
type ReplicaSchedulingPreferenceStatus struct {
}
ReplicaSchedulingPreferenceStatus defines the observed state of ReplicaSchedulingPreference
func (*ReplicaSchedulingPreferenceStatus) DeepCopy ¶
func (in *ReplicaSchedulingPreferenceStatus) DeepCopy() *ReplicaSchedulingPreferenceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSchedulingPreferenceStatus.
func (*ReplicaSchedulingPreferenceStatus) DeepCopyInto ¶
func (in *ReplicaSchedulingPreferenceStatus) DeepCopyInto(out *ReplicaSchedulingPreferenceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.