summaryrefslogtreecommitdiff
path: root/vendor/k8s.io/kubernetes/pkg/scheduler
diff options
context:
space:
mode:
authorDaniel J Walsh <dwalsh@redhat.com>2018-03-26 18:26:55 -0400
committerAtomic Bot <atomic-devel@projectatomic.io>2018-03-27 18:09:12 +0000
commitaf64e10400f8533a0c48ecdf5ab9b7fbf329e14e (patch)
tree59160e3841b440dd35189c724bbb4375a7be173b /vendor/k8s.io/kubernetes/pkg/scheduler
parent26d7e3c7b85e28c4e42998c90fdcc14079f13eef (diff)
downloadpodman-af64e10400f8533a0c48ecdf5ab9b7fbf329e14e.tar.gz
podman-af64e10400f8533a0c48ecdf5ab9b7fbf329e14e.tar.bz2
podman-af64e10400f8533a0c48ecdf5ab9b7fbf329e14e.zip
Vendor in lots of kubernetes stuff to shrink image size
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com> Closes: #554 Approved by: mheon
Diffstat (limited to 'vendor/k8s.io/kubernetes/pkg/scheduler')
-rw-r--r--vendor/k8s.io/kubernetes/pkg/scheduler/api/doc.go20
-rw-r--r--vendor/k8s.io/kubernetes/pkg/scheduler/api/register.go55
-rw-r--r--vendor/k8s.io/kubernetes/pkg/scheduler/api/types.go281
-rw-r--r--vendor/k8s.io/kubernetes/pkg/scheduler/api/zz_generated.deepcopy.go485
4 files changed, 841 insertions, 0 deletions
diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/api/doc.go b/vendor/k8s.io/kubernetes/pkg/scheduler/api/doc.go
new file mode 100644
index 000000000..c768a8c92
--- /dev/null
+++ b/vendor/k8s.io/kubernetes/pkg/scheduler/api/doc.go
@@ -0,0 +1,20 @@
+/*
+Copyright 2016 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.
+*/
+
+// +k8s:deepcopy-gen=package
+
+// Package api contains scheduler API objects.
+package api // import "k8s.io/kubernetes/pkg/scheduler/api"
diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/api/register.go b/vendor/k8s.io/kubernetes/pkg/scheduler/api/register.go
new file mode 100644
index 000000000..4852cd559
--- /dev/null
+++ b/vendor/k8s.io/kubernetes/pkg/scheduler/api/register.go
@@ -0,0 +1,55 @@
+/*
+Copyright 2014 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.
+*/
+
+package api
+
+import (
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/runtime"
+ "k8s.io/apimachinery/pkg/runtime/schema"
+)
+
+// Scheme is the default instance of runtime.Scheme to which types in the Kubernetes API are already registered.
+// TODO: remove this, scheduler should not have its own scheme.
+var Scheme = runtime.NewScheme()
+
+// SchemeGroupVersion is group version used to register these objects
+// TODO this should be in the "scheduler" group
+var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: runtime.APIVersionInternal}
+
+var (
+ // SchemeBuilder defines a SchemeBuilder object.
+ SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
+ // AddToScheme is used to add stored functions to scheme.
+ AddToScheme = SchemeBuilder.AddToScheme
+)
+
+func init() {
+ if err := addKnownTypes(Scheme); err != nil {
+ // Programmer error.
+ panic(err)
+ }
+}
+
+func addKnownTypes(scheme *runtime.Scheme) error {
+ if err := scheme.AddIgnoredConversionType(&metav1.TypeMeta{}, &metav1.TypeMeta{}); err != nil {
+ return err
+ }
+ scheme.AddKnownTypes(SchemeGroupVersion,
+ &Policy{},
+ )
+ return nil
+}
diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/api/types.go b/vendor/k8s.io/kubernetes/pkg/scheduler/api/types.go
new file mode 100644
index 000000000..cfc8d219e
--- /dev/null
+++ b/vendor/k8s.io/kubernetes/pkg/scheduler/api/types.go
@@ -0,0 +1,281 @@
+/*
+Copyright 2014 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.
+*/
+
+package api
+
+import (
+ "time"
+
+ "k8s.io/api/core/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/types"
+ restclient "k8s.io/client-go/rest"
+)
+
+const (
+ // MaxUint defines the max unsigned int value.
+ MaxUint = ^uint(0)
+ // MaxInt defines the max signed int value.
+ MaxInt = int(MaxUint >> 1)
+ // MaxTotalPriority defines the max total priority value.
+ MaxTotalPriority = MaxInt
+ // MaxPriority defines the max priority value.
+ MaxPriority = 10
+ // MaxWeight defines the max weight value.
+ MaxWeight = MaxInt / MaxPriority
+ // HighestUserDefinablePriority is the highest priority for user defined priority classes. Priority values larger than 1 billion are reserved for Kubernetes system use.
+ HighestUserDefinablePriority = int32(1000000000)
+ // SystemCriticalPriority is the beginning of the range of priority values for critical system components.
+ SystemCriticalPriority = 2 * HighestUserDefinablePriority
+ // NOTE: In order to avoid conflict of names with user-defined priority classes, all the names must
+ // start with scheduling.SystemPriorityClassPrefix which is by default "system-".
+ SystemClusterCritical = "system-cluster-critical"
+ SystemNodeCritical = "system-node-critical"
+)
+
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// Policy describes a struct of a policy resource in api.
+type Policy struct {
+ metav1.TypeMeta
+ // Holds the information to configure the fit predicate functions.
+ // If unspecified, the default predicate functions will be applied.
+ // If empty list, all predicates (except the mandatory ones) will be
+ // bypassed.
+ Predicates []PredicatePolicy
+ // Holds the information to configure the priority functions.
+ // If unspecified, the default priority functions will be applied.
+ // If empty list, all priority functions will be bypassed.
+ Priorities []PriorityPolicy
+ // Holds the information to communicate with the extender(s)
+ ExtenderConfigs []ExtenderConfig
+ // RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule
+ // corresponding to every RequiredDuringScheduling affinity rule.
+ // HardPodAffinitySymmetricWeight represents the weight of implicit PreferredDuringScheduling affinity rule, in the range 1-100.
+ HardPodAffinitySymmetricWeight int32
+
+ // When AlwaysCheckAllPredicates is set to true, scheduler checks all
+ // the configured predicates even after one or more of them fails.
+ // When the flag is set to false, scheduler skips checking the rest
+ // of the predicates after it finds one predicate that failed.
+ AlwaysCheckAllPredicates bool
+}
+
+// PredicatePolicy describes a struct of a predicate policy.
+type PredicatePolicy struct {
+ // Identifier of the predicate policy
+ // For a custom predicate, the name can be user-defined
+ // For the Kubernetes provided predicates, the name is the identifier of the pre-defined predicate
+ Name string
+ // Holds the parameters to configure the given predicate
+ Argument *PredicateArgument
+}
+
+// PriorityPolicy describes a struct of a priority policy.
+type PriorityPolicy struct {
+ // Identifier of the priority policy
+ // For a custom priority, the name can be user-defined
+ // For the Kubernetes provided priority functions, the name is the identifier of the pre-defined priority function
+ Name string
+ // The numeric multiplier for the node scores that the priority function generates
+ // The weight should be a positive integer
+ Weight int
+ // Holds the parameters to configure the given priority function
+ Argument *PriorityArgument
+}
+
+// PredicateArgument represents the arguments to configure predicate functions in scheduler policy configuration.
+// Only one of its members may be specified
+type PredicateArgument struct {
+ // The predicate that provides affinity for pods belonging to a service
+ // It uses a label to identify nodes that belong to the same "group"
+ ServiceAffinity *ServiceAffinity
+ // The predicate that checks whether a particular node has a certain label
+ // defined or not, regardless of value
+ LabelsPresence *LabelsPresence
+}
+
+// PriorityArgument represents the arguments to configure priority functions in scheduler policy configuration.
+// Only one of its members may be specified
+type PriorityArgument struct {
+ // The priority function that ensures a good spread (anti-affinity) for pods belonging to a service
+ // It uses a label to identify nodes that belong to the same "group"
+ ServiceAntiAffinity *ServiceAntiAffinity
+ // The priority function that checks whether a particular node has a certain label
+ // defined or not, regardless of value
+ LabelPreference *LabelPreference
+}
+
+// ServiceAffinity holds the parameters that are used to configure the corresponding predicate in scheduler policy configuration.
+type ServiceAffinity struct {
+ // The list of labels that identify node "groups"
+ // All of the labels should match for the node to be considered a fit for hosting the pod
+ Labels []string
+}
+
+// LabelsPresence holds the parameters that are used to configure the corresponding predicate in scheduler policy configuration.
+type LabelsPresence struct {
+ // The list of labels that identify node "groups"
+ // All of the labels should be either present (or absent) for the node to be considered a fit for hosting the pod
+ Labels []string
+ // The boolean flag that indicates whether the labels should be present or absent from the node
+ Presence bool
+}
+
+// ServiceAntiAffinity holds the parameters that are used to configure the corresponding priority function
+type ServiceAntiAffinity struct {
+ // Used to identify node "groups"
+ Label string
+}
+
+// LabelPreference holds the parameters that are used to configure the corresponding priority function
+type LabelPreference struct {
+ // Used to identify node "groups"
+ Label string
+ // This is a boolean flag
+ // If true, higher priority is given to nodes that have the label
+ // If false, higher priority is given to nodes that do not have the label
+ Presence bool
+}
+
+// ExtenderManagedResource describes the arguments of extended resources
+// managed by an extender.
+type ExtenderManagedResource struct {
+ // Name is the extended resource name.
+ Name v1.ResourceName
+ // IgnoredByScheduler indicates whether kube-scheduler should ignore this
+ // resource when applying predicates.
+ IgnoredByScheduler bool
+}
+
+// ExtenderConfig holds the parameters used to communicate with the extender. If a verb is unspecified/empty,
+// it is assumed that the extender chose not to provide that extension.
+type ExtenderConfig struct {
+ // URLPrefix at which the extender is available
+ URLPrefix string
+ // Verb for the filter call, empty if not supported. This verb is appended to the URLPrefix when issuing the filter call to extender.
+ FilterVerb string
+ // Verb for the prioritize call, empty if not supported. This verb is appended to the URLPrefix when issuing the prioritize call to extender.
+ PrioritizeVerb string
+ // The numeric multiplier for the node scores that the prioritize call generates.
+ // The weight should be a positive integer
+ Weight int
+ // Verb for the bind call, empty if not supported. This verb is appended to the URLPrefix when issuing the bind call to extender.
+ // If this method is implemented by the extender, it is the extender's responsibility to bind the pod to apiserver. Only one extender
+ // can implement this function.
+ BindVerb string
+ // EnableHTTPS specifies whether https should be used to communicate with the extender
+ EnableHTTPS bool
+ // TLSConfig specifies the transport layer security config
+ TLSConfig *restclient.TLSClientConfig
+ // HTTPTimeout specifies the timeout duration for a call to the extender. Filter timeout fails the scheduling of the pod. Prioritize
+ // timeout is ignored, k8s/other extenders priorities are used to select the node.
+ HTTPTimeout time.Duration
+ // NodeCacheCapable specifies that the extender is capable of caching node information,
+ // so the scheduler should only send minimal information about the eligible nodes
+ // assuming that the extender already cached full details of all nodes in the cluster
+ NodeCacheCapable bool
+ // ManagedResources is a list of extended resources that are managed by
+ // this extender.
+ // - A pod will be sent to the extender on the Filter, Prioritize and Bind
+ // (if the extender is the binder) phases iff the pod requests at least
+ // one of the extended resources in this list. If empty or unspecified,
+ // all pods will be sent to this extender.
+ // - If IgnoredByScheduler is set to true for a resource, kube-scheduler
+ // will skip checking the resource in predicates.
+ // +optional
+ ManagedResources []ExtenderManagedResource
+}
+
+// ExtenderArgs represents the arguments needed by the extender to filter/prioritize
+// nodes for a pod.
+type ExtenderArgs struct {
+ // Pod being scheduled
+ Pod v1.Pod
+ // List of candidate nodes where the pod can be scheduled; to be populated
+ // only if ExtenderConfig.NodeCacheCapable == false
+ Nodes *v1.NodeList
+ // List of candidate node names where the pod can be scheduled; to be
+ // populated only if ExtenderConfig.NodeCacheCapable == true
+ NodeNames *[]string
+}
+
+// FailedNodesMap represents the filtered out nodes, with node names and failure messages
+type FailedNodesMap map[string]string
+
+// ExtenderFilterResult represents the results of a filter call to an extender
+type ExtenderFilterResult struct {
+ // Filtered set of nodes where the pod can be scheduled; to be populated
+ // only if ExtenderConfig.NodeCacheCapable == false
+ Nodes *v1.NodeList
+ // Filtered set of nodes where the pod can be scheduled; to be populated
+ // only if ExtenderConfig.NodeCacheCapable == true
+ NodeNames *[]string
+ // Filtered out nodes where the pod can't be scheduled and the failure messages
+ FailedNodes FailedNodesMap
+ // Error message indicating failure
+ Error string
+}
+
+// ExtenderBindingArgs represents the arguments to an extender for binding a pod to a node.
+type ExtenderBindingArgs struct {
+ // PodName is the name of the pod being bound
+ PodName string
+ // PodNamespace is the namespace of the pod being bound
+ PodNamespace string
+ // PodUID is the UID of the pod being bound
+ PodUID types.UID
+ // Node selected by the scheduler
+ Node string
+}
+
+// ExtenderBindingResult represents the result of binding of a pod to a node from an extender.
+type ExtenderBindingResult struct {
+ // Error message indicating failure
+ Error string
+}
+
+// HostPriority represents the priority of scheduling to a particular host, higher priority is better.
+type HostPriority struct {
+ // Name of the host
+ Host string
+ // Score associated with the host
+ Score int
+}
+
+// HostPriorityList declares a []HostPriority type.
+type HostPriorityList []HostPriority
+
+// SystemPriorityClasses defines special priority classes which are used by system critical pods that should not be preempted by workload pods.
+var SystemPriorityClasses = map[string]int32{
+ SystemClusterCritical: SystemCriticalPriority,
+ SystemNodeCritical: SystemCriticalPriority + 1000,
+}
+
+func (h HostPriorityList) Len() int {
+ return len(h)
+}
+
+func (h HostPriorityList) Less(i, j int) bool {
+ if h[i].Score == h[j].Score {
+ return h[i].Host < h[j].Host
+ }
+ return h[i].Score < h[j].Score
+}
+
+func (h HostPriorityList) Swap(i, j int) {
+ h[i], h[j] = h[j], h[i]
+}
diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/api/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/scheduler/api/zz_generated.deepcopy.go
new file mode 100644
index 000000000..1986933b9
--- /dev/null
+++ b/vendor/k8s.io/kubernetes/pkg/scheduler/api/zz_generated.deepcopy.go
@@ -0,0 +1,485 @@
+// +build !ignore_autogenerated
+
+/*
+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.
+*/
+
+// Code generated by deepcopy-gen. DO NOT EDIT.
+
+package api
+
+import (
+ v1 "k8s.io/api/core/v1"
+ runtime "k8s.io/apimachinery/pkg/runtime"
+ rest "k8s.io/client-go/rest"
+)
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtenderArgs) DeepCopyInto(out *ExtenderArgs) {
+ *out = *in
+ in.Pod.DeepCopyInto(&out.Pod)
+ if in.Nodes != nil {
+ in, out := &in.Nodes, &out.Nodes
+ if *in == nil {
+ *out = nil
+ } else {
+ *out = new(v1.NodeList)
+ (*in).DeepCopyInto(*out)
+ }
+ }
+ if in.NodeNames != nil {
+ in, out := &in.NodeNames, &out.NodeNames
+ if *in == nil {
+ *out = nil
+ } else {
+ *out = new([]string)
+ if **in != nil {
+ in, out := *in, *out
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtenderArgs.
+func (in *ExtenderArgs) DeepCopy() *ExtenderArgs {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtenderArgs)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtenderBindingArgs) DeepCopyInto(out *ExtenderBindingArgs) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtenderBindingArgs.
+func (in *ExtenderBindingArgs) DeepCopy() *ExtenderBindingArgs {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtenderBindingArgs)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtenderBindingResult) DeepCopyInto(out *ExtenderBindingResult) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtenderBindingResult.
+func (in *ExtenderBindingResult) DeepCopy() *ExtenderBindingResult {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtenderBindingResult)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtenderConfig) DeepCopyInto(out *ExtenderConfig) {
+ *out = *in
+ if in.TLSConfig != nil {
+ in, out := &in.TLSConfig, &out.TLSConfig
+ if *in == nil {
+ *out = nil
+ } else {
+ *out = new(rest.TLSClientConfig)
+ (*in).DeepCopyInto(*out)
+ }
+ }
+ if in.ManagedResources != nil {
+ in, out := &in.ManagedResources, &out.ManagedResources
+ *out = make([]ExtenderManagedResource, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtenderConfig.
+func (in *ExtenderConfig) DeepCopy() *ExtenderConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtenderConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtenderFilterResult) DeepCopyInto(out *ExtenderFilterResult) {
+ *out = *in
+ if in.Nodes != nil {
+ in, out := &in.Nodes, &out.Nodes
+ if *in == nil {
+ *out = nil
+ } else {
+ *out = new(v1.NodeList)
+ (*in).DeepCopyInto(*out)
+ }
+ }
+ if in.NodeNames != nil {
+ in, out := &in.NodeNames, &out.NodeNames
+ if *in == nil {
+ *out = nil
+ } else {
+ *out = new([]string)
+ if **in != nil {
+ in, out := *in, *out
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ }
+ }
+ if in.FailedNodes != nil {
+ in, out := &in.FailedNodes, &out.FailedNodes
+ *out = make(FailedNodesMap, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtenderFilterResult.
+func (in *ExtenderFilterResult) DeepCopy() *ExtenderFilterResult {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtenderFilterResult)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtenderManagedResource) DeepCopyInto(out *ExtenderManagedResource) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtenderManagedResource.
+func (in *ExtenderManagedResource) DeepCopy() *ExtenderManagedResource {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtenderManagedResource)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in FailedNodesMap) DeepCopyInto(out *FailedNodesMap) {
+ {
+ in := &in
+ *out = make(FailedNodesMap, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ return
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FailedNodesMap.
+func (in FailedNodesMap) DeepCopy() FailedNodesMap {
+ if in == nil {
+ return nil
+ }
+ out := new(FailedNodesMap)
+ in.DeepCopyInto(out)
+ return *out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HostPriority) DeepCopyInto(out *HostPriority) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPriority.
+func (in *HostPriority) DeepCopy() *HostPriority {
+ if in == nil {
+ return nil
+ }
+ out := new(HostPriority)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in HostPriorityList) DeepCopyInto(out *HostPriorityList) {
+ {
+ in := &in
+ *out = make(HostPriorityList, len(*in))
+ copy(*out, *in)
+ return
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPriorityList.
+func (in HostPriorityList) DeepCopy() HostPriorityList {
+ if in == nil {
+ return nil
+ }
+ out := new(HostPriorityList)
+ in.DeepCopyInto(out)
+ return *out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *LabelPreference) DeepCopyInto(out *LabelPreference) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LabelPreference.
+func (in *LabelPreference) DeepCopy() *LabelPreference {
+ if in == nil {
+ return nil
+ }
+ out := new(LabelPreference)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *LabelsPresence) DeepCopyInto(out *LabelsPresence) {
+ *out = *in
+ if in.Labels != nil {
+ in, out := &in.Labels, &out.Labels
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LabelsPresence.
+func (in *LabelsPresence) DeepCopy() *LabelsPresence {
+ if in == nil {
+ return nil
+ }
+ out := new(LabelsPresence)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Policy) DeepCopyInto(out *Policy) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ if in.Predicates != nil {
+ in, out := &in.Predicates, &out.Predicates
+ *out = make([]PredicatePolicy, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Priorities != nil {
+ in, out := &in.Priorities, &out.Priorities
+ *out = make([]PriorityPolicy, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.ExtenderConfigs != nil {
+ in, out := &in.ExtenderConfigs, &out.ExtenderConfigs
+ *out = make([]ExtenderConfig, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Policy.
+func (in *Policy) DeepCopy() *Policy {
+ if in == nil {
+ return nil
+ }
+ out := new(Policy)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *Policy) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PredicateArgument) DeepCopyInto(out *PredicateArgument) {
+ *out = *in
+ if in.ServiceAffinity != nil {
+ in, out := &in.ServiceAffinity, &out.ServiceAffinity
+ if *in == nil {
+ *out = nil
+ } else {
+ *out = new(ServiceAffinity)
+ (*in).DeepCopyInto(*out)
+ }
+ }
+ if in.LabelsPresence != nil {
+ in, out := &in.LabelsPresence, &out.LabelsPresence
+ if *in == nil {
+ *out = nil
+ } else {
+ *out = new(LabelsPresence)
+ (*in).DeepCopyInto(*out)
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PredicateArgument.
+func (in *PredicateArgument) DeepCopy() *PredicateArgument {
+ if in == nil {
+ return nil
+ }
+ out := new(PredicateArgument)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PredicatePolicy) DeepCopyInto(out *PredicatePolicy) {
+ *out = *in
+ if in.Argument != nil {
+ in, out := &in.Argument, &out.Argument
+ if *in == nil {
+ *out = nil
+ } else {
+ *out = new(PredicateArgument)
+ (*in).DeepCopyInto(*out)
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PredicatePolicy.
+func (in *PredicatePolicy) DeepCopy() *PredicatePolicy {
+ if in == nil {
+ return nil
+ }
+ out := new(PredicatePolicy)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PriorityArgument) DeepCopyInto(out *PriorityArgument) {
+ *out = *in
+ if in.ServiceAntiAffinity != nil {
+ in, out := &in.ServiceAntiAffinity, &out.ServiceAntiAffinity
+ if *in == nil {
+ *out = nil
+ } else {
+ *out = new(ServiceAntiAffinity)
+ **out = **in
+ }
+ }
+ if in.LabelPreference != nil {
+ in, out := &in.LabelPreference, &out.LabelPreference
+ if *in == nil {
+ *out = nil
+ } else {
+ *out = new(LabelPreference)
+ **out = **in
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityArgument.
+func (in *PriorityArgument) DeepCopy() *PriorityArgument {
+ if in == nil {
+ return nil
+ }
+ out := new(PriorityArgument)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PriorityPolicy) DeepCopyInto(out *PriorityPolicy) {
+ *out = *in
+ if in.Argument != nil {
+ in, out := &in.Argument, &out.Argument
+ if *in == nil {
+ *out = nil
+ } else {
+ *out = new(PriorityArgument)
+ (*in).DeepCopyInto(*out)
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityPolicy.
+func (in *PriorityPolicy) DeepCopy() *PriorityPolicy {
+ if in == nil {
+ return nil
+ }
+ out := new(PriorityPolicy)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ServiceAffinity) DeepCopyInto(out *ServiceAffinity) {
+ *out = *in
+ if in.Labels != nil {
+ in, out := &in.Labels, &out.Labels
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAffinity.
+func (in *ServiceAffinity) DeepCopy() *ServiceAffinity {
+ if in == nil {
+ return nil
+ }
+ out := new(ServiceAffinity)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ServiceAntiAffinity) DeepCopyInto(out *ServiceAntiAffinity) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAntiAffinity.
+func (in *ServiceAntiAffinity) DeepCopy() *ServiceAntiAffinity {
+ if in == nil {
+ return nil
+ }
+ out := new(ServiceAntiAffinity)
+ in.DeepCopyInto(out)
+ return out
+}