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
Copyright 2018 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
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{ Type: "object", 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.