diff --git a/cmd/integration/integration.go b/cmd/integration/integration.go index 59873eb3fbc..ace2e864aed 100644 --- a/cmd/integration/integration.go +++ b/cmd/integration/integration.go @@ -237,8 +237,8 @@ func podsOnMinions(c *client.Client, podNamespace string, labelSelector labels.S for i := range pods.Items { pod := pods.Items[i] podString := fmt.Sprintf("%q/%q", pod.Namespace, pod.Name) - glog.Infof("Check whether pod %q exists on node %q", podString, pod.Spec.Host) - if len(pod.Spec.Host) == 0 { + glog.Infof("Check whether pod %q exists on node %q", podString, pod.Spec.NodeName) + if len(pod.Spec.NodeName) == 0 { glog.Infof("Pod %q is not bound to a host yet", podString) return false, nil } diff --git a/docs/api-conventions.md b/docs/api-conventions.md index b45042bd73f..a72ceec2aeb 100644 --- a/docs/api-conventions.md +++ b/docs/api-conventions.md @@ -301,7 +301,7 @@ Late Initialization Late initialization is when resource fields are set by a system controller after an object is created/updated. -For example, the scheduler sets the pod.spec.host field after the pod is created. +For example, the scheduler sets the pod.spec.nodeName field after the pod is created. Late-initializers should only make the following types of modifications: - Setting previously unset fields diff --git a/hack/test-cmd.sh b/hack/test-cmd.sh index 4ed8822289e..1fa85fbc92e 100755 --- a/hack/test-cmd.sh +++ b/hack/test-cmd.sh @@ -171,7 +171,7 @@ for version in "${kube_api_versions[@]}"; do kube::test::get_object_assert 'pod/valid-pod' "{{$id_field}}" 'valid-pod' kube::test::get_object_assert 'pods/valid-pod' "{{$id_field}}" 'valid-pod' # Describe command should print detailed information - kube::test::describe_object_assert pods 'valid-pod' "Name:" "Image(s):" "Host:" "Labels:" "Status:" "Replication Controllers" + kube::test::describe_object_assert pods 'valid-pod' "Name:" "Image(s):" "Node:" "Labels:" "Status:" "Replication Controllers" ### Dump current valid-pod POD output_pod=$(kubectl get pod valid-pod -o yaml --output-version=v1beta3 "${kube_flags[@]}") diff --git a/pkg/api/deep_copy_generated.go b/pkg/api/deep_copy_generated.go index 97bad4c3165..6bbc7638c8c 100644 --- a/pkg/api/deep_copy_generated.go +++ b/pkg/api/deep_copy_generated.go @@ -1374,7 +1374,7 @@ func deepCopy_api_PodSpec(in PodSpec, out *PodSpec, c *conversion.Cloner) error out.NodeSelector = nil } out.ServiceAccount = in.ServiceAccount - out.Host = in.Host + out.NodeName = in.NodeName out.HostNetwork = in.HostNetwork if in.ImagePullSecrets != nil { out.ImagePullSecrets = make([]LocalObjectReference, len(in.ImagePullSecrets)) diff --git a/pkg/api/types.go b/pkg/api/types.go index 5504ba2f213..e2f09829f99 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -868,10 +868,10 @@ type PodSpec struct { // The pod will be allowed to use secrets referenced by the ServiceAccount ServiceAccount string `json:"serviceAccount"` - // Host is a request to schedule this pod onto a specific host. If it is non-empty, - // the the scheduler simply schedules this pod onto that host, assuming that it fits - // resource requirements. - Host string `json:"host,omitempty"` + // NodeName is a request to schedule this pod onto a specific node. If it is non-empty, + // the scheduler simply schedules this pod onto that node, assuming that it fits resource + // requirements. + NodeName string `json:"nodeName,omitempty"` // Uses the host's network namespace. If this option is set, the ports that will be // used must be specified. // Optional: Default to false. diff --git a/pkg/api/v1/conversion_generated.go b/pkg/api/v1/conversion_generated.go index da1de85a2c0..a01943f5fac 100644 --- a/pkg/api/v1/conversion_generated.go +++ b/pkg/api/v1/conversion_generated.go @@ -1513,7 +1513,7 @@ func convert_api_PodSpec_To_v1_PodSpec(in *api.PodSpec, out *PodSpec, s conversi out.NodeSelector = nil } out.ServiceAccount = in.ServiceAccount - out.Host = in.Host + out.NodeName = in.NodeName out.HostNetwork = in.HostNetwork if in.ImagePullSecrets != nil { out.ImagePullSecrets = make([]LocalObjectReference, len(in.ImagePullSecrets)) @@ -3787,7 +3787,7 @@ func convert_v1_PodSpec_To_api_PodSpec(in *PodSpec, out *api.PodSpec, s conversi out.NodeSelector = nil } out.ServiceAccount = in.ServiceAccount - out.Host = in.Host + out.NodeName = in.NodeName out.HostNetwork = in.HostNetwork if in.ImagePullSecrets != nil { out.ImagePullSecrets = make([]api.LocalObjectReference, len(in.ImagePullSecrets)) diff --git a/pkg/api/v1/deep_copy_generated.go b/pkg/api/v1/deep_copy_generated.go index c365033e4ba..2b408eff4b0 100644 --- a/pkg/api/v1/deep_copy_generated.go +++ b/pkg/api/v1/deep_copy_generated.go @@ -1305,7 +1305,7 @@ func deepCopy_v1_PodSpec(in PodSpec, out *PodSpec, c *conversion.Cloner) error { out.NodeSelector = nil } out.ServiceAccount = in.ServiceAccount - out.Host = in.Host + out.NodeName = in.NodeName out.HostNetwork = in.HostNetwork if in.ImagePullSecrets != nil { out.ImagePullSecrets = make([]LocalObjectReference, len(in.ImagePullSecrets)) diff --git a/pkg/api/v1/types.go b/pkg/api/v1/types.go index 18855dd86e5..3d1f25f769b 100644 --- a/pkg/api/v1/types.go +++ b/pkg/api/v1/types.go @@ -862,10 +862,10 @@ type PodSpec struct { // ServiceAccount is the name of the ServiceAccount to use to run this pod ServiceAccount string `json:"serviceAccount,omitempty" description:"name of the ServiceAccount to use to run this pod"` - // Host is a request to schedule this pod onto a specific host. If it is non-empty, - // the the scheduler simply schedules this pod onto that host, assuming that it fits - // resource requirements. - Host string `json:"host,omitempty" description:"host requested for this pod"` + // NodeName is a request to schedule this pod onto a specific node. If it is non-empty, + // the scheduler simply schedules this pod onto that node, assuming that it fits resource + // requirements. + NodeName string `json:"nodeName,omitempty" description:"node requested for this pod"` // Uses the host's network namespace. If this option is set, the ports that will be // used must be specified. // Optional: Default to false. diff --git a/pkg/api/v1beta1/conversion.go b/pkg/api/v1beta1/conversion.go index c1186c42b51..ac1b6f9d000 100644 --- a/pkg/api/v1beta1/conversion.go +++ b/pkg/api/v1beta1/conversion.go @@ -226,14 +226,14 @@ func addConversionFuncs() { if err := s.Convert(&in, &out.Manifest, 0); err != nil { return err } - out.Host = in.Host + out.Host = in.NodeName return nil }, func(in *PodState, out *api.PodSpec, s conversion.Scope) error { if err := s.Convert(&in.Manifest, &out, 0); err != nil { return err } - out.Host = in.Host + out.NodeName = in.Host return nil }, @@ -375,8 +375,8 @@ func addConversionFuncs() { if err := s.Convert(&in.Spec, &out.DesiredState.Manifest, 0); err != nil { return err } - out.DesiredState.Host = in.Spec.Host - out.CurrentState.Host = in.Spec.Host + out.DesiredState.Host = in.Spec.NodeName + out.CurrentState.Host = in.Spec.NodeName out.ServiceAccount = in.Spec.ServiceAccount if err := s.Convert(&in.Status, &out.CurrentState, 0); err != nil { return err @@ -399,7 +399,7 @@ func addConversionFuncs() { if err := s.Convert(&in.DesiredState.Manifest, &out.Spec, 0); err != nil { return err } - out.Spec.Host = in.DesiredState.Host + out.Spec.NodeName = in.DesiredState.Host out.Spec.ServiceAccount = in.ServiceAccount if err := s.Convert(&in.CurrentState, &out.Status, 0); err != nil { return err @@ -504,7 +504,7 @@ func addConversionFuncs() { if err := s.Convert(&in.Spec, &out.DesiredState.Manifest, 0); err != nil { return err } - out.DesiredState.Host = in.Spec.Host + out.DesiredState.Host = in.Spec.NodeName out.ServiceAccount = in.Spec.ServiceAccount if err := s.Convert(&in.Spec.NodeSelector, &out.NodeSelector, 0); err != nil { return err @@ -521,7 +521,7 @@ func addConversionFuncs() { if err := s.Convert(&in.DesiredState.Manifest, &out.Spec, 0); err != nil { return err } - out.Spec.Host = in.DesiredState.Host + out.Spec.NodeName = in.DesiredState.Host out.Spec.ServiceAccount = in.ServiceAccount if err := s.Convert(&in.NodeSelector, &out.Spec.NodeSelector, 0); err != nil { return err diff --git a/pkg/api/v1beta2/conversion.go b/pkg/api/v1beta2/conversion.go index be9800dc416..cdef72d683e 100644 --- a/pkg/api/v1beta2/conversion.go +++ b/pkg/api/v1beta2/conversion.go @@ -178,8 +178,8 @@ func addConversionFuncs() { if err := s.Convert(&in.Spec, &out.DesiredState.Manifest, 0); err != nil { return err } - out.DesiredState.Host = in.Spec.Host - out.CurrentState.Host = in.Spec.Host + out.DesiredState.Host = in.Spec.NodeName + out.CurrentState.Host = in.Spec.NodeName out.ServiceAccount = in.Spec.ServiceAccount if err := s.Convert(&in.Status, &out.CurrentState, 0); err != nil { return err @@ -203,7 +203,7 @@ func addConversionFuncs() { return err } out.Spec.ServiceAccount = in.ServiceAccount - out.Spec.Host = in.DesiredState.Host + out.Spec.NodeName = in.DesiredState.Host if err := s.Convert(&in.CurrentState, &out.Status, 0); err != nil { return err } @@ -283,7 +283,7 @@ func addConversionFuncs() { if err := s.Convert(&in.Spec, &out.DesiredState.Manifest, 0); err != nil { return err } - out.DesiredState.Host = in.Spec.Host + out.DesiredState.Host = in.Spec.NodeName out.ServiceAccount = in.Spec.ServiceAccount if err := s.Convert(&in.Spec.NodeSelector, &out.NodeSelector, 0); err != nil { return err @@ -300,7 +300,7 @@ func addConversionFuncs() { if err := s.Convert(&in.DesiredState.Manifest, &out.Spec, 0); err != nil { return err } - out.Spec.Host = in.DesiredState.Host + out.Spec.NodeName = in.DesiredState.Host out.Spec.ServiceAccount = in.ServiceAccount if err := s.Convert(&in.NodeSelector, &out.Spec.NodeSelector, 0); err != nil { return err @@ -660,14 +660,14 @@ func addConversionFuncs() { if err := s.Convert(&in, &out.Manifest, 0); err != nil { return err } - out.Host = in.Host + out.Host = in.NodeName return nil }, func(in *PodState, out *api.PodSpec, s conversion.Scope) error { if err := s.Convert(&in.Manifest, &out, 0); err != nil { return err } - out.Host = in.Host + out.NodeName = in.Host return nil }, func(in *api.Service, out *Service, s conversion.Scope) error { diff --git a/pkg/api/v1beta3/conversion.go b/pkg/api/v1beta3/conversion.go index a4de8508a28..9d050ff995a 100644 --- a/pkg/api/v1beta3/conversion.go +++ b/pkg/api/v1beta3/conversion.go @@ -31,6 +31,8 @@ func addConversionFuncs() { convert_api_Container_To_v1beta3_Container, convert_v1beta3_ServiceSpec_To_api_ServiceSpec, convert_api_ServiceSpec_To_v1beta3_ServiceSpec, + convert_v1beta3_PodSpec_To_api_PodSpec, + convert_api_PodSpec_To_v1beta3_PodSpec, ) if err != nil { // If one of the conversion functions is malformed, detect it immediately. @@ -420,3 +422,127 @@ func convert_api_ServiceSpec_To_v1beta3_ServiceSpec(in *api.ServiceSpec, out *Se out.SessionAffinity = ServiceAffinity(in.SessionAffinity) return nil } + +func convert_v1beta3_PodSpec_To_api_PodSpec(in *PodSpec, out *api.PodSpec, s conversion.Scope) error { + if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { + defaulting.(func(*PodSpec))(in) + } + if in.Volumes != nil { + out.Volumes = make([]api.Volume, len(in.Volumes)) + for i := range in.Volumes { + if err := convert_v1beta3_Volume_To_api_Volume(&in.Volumes[i], &out.Volumes[i], s); err != nil { + return err + } + } + } else { + out.Volumes = nil + } + if in.Containers != nil { + out.Containers = make([]api.Container, len(in.Containers)) + for i := range in.Containers { + if err := convert_v1beta3_Container_To_api_Container(&in.Containers[i], &out.Containers[i], s); err != nil { + return err + } + } + } else { + out.Containers = nil + } + out.RestartPolicy = api.RestartPolicy(in.RestartPolicy) + if in.TerminationGracePeriodSeconds != nil { + out.TerminationGracePeriodSeconds = new(int64) + *out.TerminationGracePeriodSeconds = *in.TerminationGracePeriodSeconds + } else { + out.TerminationGracePeriodSeconds = nil + } + if in.ActiveDeadlineSeconds != nil { + out.ActiveDeadlineSeconds = new(int64) + *out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds + } else { + out.ActiveDeadlineSeconds = nil + } + out.DNSPolicy = api.DNSPolicy(in.DNSPolicy) + if in.NodeSelector != nil { + out.NodeSelector = make(map[string]string) + for key, val := range in.NodeSelector { + out.NodeSelector[key] = val + } + } else { + out.NodeSelector = nil + } + out.ServiceAccount = in.ServiceAccount + out.NodeName = in.Host + out.HostNetwork = in.HostNetwork + if in.ImagePullSecrets != nil { + out.ImagePullSecrets = make([]api.LocalObjectReference, len(in.ImagePullSecrets)) + for i := range in.ImagePullSecrets { + if err := convert_v1beta3_LocalObjectReference_To_api_LocalObjectReference(&in.ImagePullSecrets[i], &out.ImagePullSecrets[i], s); err != nil { + return err + } + } + } else { + out.ImagePullSecrets = nil + } + return nil +} + +func convert_api_PodSpec_To_v1beta3_PodSpec(in *api.PodSpec, out *PodSpec, s conversion.Scope) error { + if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { + defaulting.(func(*api.PodSpec))(in) + } + if in.Volumes != nil { + out.Volumes = make([]Volume, len(in.Volumes)) + for i := range in.Volumes { + if err := convert_api_Volume_To_v1beta3_Volume(&in.Volumes[i], &out.Volumes[i], s); err != nil { + return err + } + } + } else { + out.Volumes = nil + } + if in.Containers != nil { + out.Containers = make([]Container, len(in.Containers)) + for i := range in.Containers { + if err := convert_api_Container_To_v1beta3_Container(&in.Containers[i], &out.Containers[i], s); err != nil { + return err + } + } + } else { + out.Containers = nil + } + out.RestartPolicy = RestartPolicy(in.RestartPolicy) + if in.TerminationGracePeriodSeconds != nil { + out.TerminationGracePeriodSeconds = new(int64) + *out.TerminationGracePeriodSeconds = *in.TerminationGracePeriodSeconds + } else { + out.TerminationGracePeriodSeconds = nil + } + if in.ActiveDeadlineSeconds != nil { + out.ActiveDeadlineSeconds = new(int64) + *out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds + } else { + out.ActiveDeadlineSeconds = nil + } + out.DNSPolicy = DNSPolicy(in.DNSPolicy) + if in.NodeSelector != nil { + out.NodeSelector = make(map[string]string) + for key, val := range in.NodeSelector { + out.NodeSelector[key] = val + } + } else { + out.NodeSelector = nil + } + out.ServiceAccount = in.ServiceAccount + out.Host = in.NodeName + out.HostNetwork = in.HostNetwork + if in.ImagePullSecrets != nil { + out.ImagePullSecrets = make([]LocalObjectReference, len(in.ImagePullSecrets)) + for i := range in.ImagePullSecrets { + if err := convert_api_LocalObjectReference_To_v1beta3_LocalObjectReference(&in.ImagePullSecrets[i], &out.ImagePullSecrets[i], s); err != nil { + return err + } + } + } else { + out.ImagePullSecrets = nil + } + return nil +} diff --git a/pkg/api/v1beta3/conversion_generated.go b/pkg/api/v1beta3/conversion_generated.go index 486744c3e30..da2f98b40c2 100644 --- a/pkg/api/v1beta3/conversion_generated.go +++ b/pkg/api/v1beta3/conversion_generated.go @@ -1373,68 +1373,6 @@ func convert_api_PodProxyOptions_To_v1beta3_PodProxyOptions(in *api.PodProxyOpti return nil } -func convert_api_PodSpec_To_v1beta3_PodSpec(in *api.PodSpec, out *PodSpec, s conversion.Scope) error { - if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { - defaulting.(func(*api.PodSpec))(in) - } - if in.Volumes != nil { - out.Volumes = make([]Volume, len(in.Volumes)) - for i := range in.Volumes { - if err := convert_api_Volume_To_v1beta3_Volume(&in.Volumes[i], &out.Volumes[i], s); err != nil { - return err - } - } - } else { - out.Volumes = nil - } - if in.Containers != nil { - out.Containers = make([]Container, len(in.Containers)) - for i := range in.Containers { - if err := convert_api_Container_To_v1beta3_Container(&in.Containers[i], &out.Containers[i], s); err != nil { - return err - } - } - } else { - out.Containers = nil - } - out.RestartPolicy = RestartPolicy(in.RestartPolicy) - if in.TerminationGracePeriodSeconds != nil { - out.TerminationGracePeriodSeconds = new(int64) - *out.TerminationGracePeriodSeconds = *in.TerminationGracePeriodSeconds - } else { - out.TerminationGracePeriodSeconds = nil - } - if in.ActiveDeadlineSeconds != nil { - out.ActiveDeadlineSeconds = new(int64) - *out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds - } else { - out.ActiveDeadlineSeconds = nil - } - out.DNSPolicy = DNSPolicy(in.DNSPolicy) - if in.NodeSelector != nil { - out.NodeSelector = make(map[string]string) - for key, val := range in.NodeSelector { - out.NodeSelector[key] = val - } - } else { - out.NodeSelector = nil - } - out.ServiceAccount = in.ServiceAccount - out.Host = in.Host - out.HostNetwork = in.HostNetwork - if in.ImagePullSecrets != nil { - out.ImagePullSecrets = make([]LocalObjectReference, len(in.ImagePullSecrets)) - for i := range in.ImagePullSecrets { - if err := convert_api_LocalObjectReference_To_v1beta3_LocalObjectReference(&in.ImagePullSecrets[i], &out.ImagePullSecrets[i], s); err != nil { - return err - } - } - } else { - out.ImagePullSecrets = nil - } - return nil -} - func convert_api_PodStatus_To_v1beta3_PodStatus(in *api.PodStatus, out *PodStatus, s conversion.Scope) error { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { defaulting.(func(*api.PodStatus))(in) @@ -3580,68 +3518,6 @@ func convert_v1beta3_PodProxyOptions_To_api_PodProxyOptions(in *PodProxyOptions, return nil } -func convert_v1beta3_PodSpec_To_api_PodSpec(in *PodSpec, out *api.PodSpec, s conversion.Scope) error { - if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { - defaulting.(func(*PodSpec))(in) - } - if in.Volumes != nil { - out.Volumes = make([]api.Volume, len(in.Volumes)) - for i := range in.Volumes { - if err := convert_v1beta3_Volume_To_api_Volume(&in.Volumes[i], &out.Volumes[i], s); err != nil { - return err - } - } - } else { - out.Volumes = nil - } - if in.Containers != nil { - out.Containers = make([]api.Container, len(in.Containers)) - for i := range in.Containers { - if err := convert_v1beta3_Container_To_api_Container(&in.Containers[i], &out.Containers[i], s); err != nil { - return err - } - } - } else { - out.Containers = nil - } - out.RestartPolicy = api.RestartPolicy(in.RestartPolicy) - if in.TerminationGracePeriodSeconds != nil { - out.TerminationGracePeriodSeconds = new(int64) - *out.TerminationGracePeriodSeconds = *in.TerminationGracePeriodSeconds - } else { - out.TerminationGracePeriodSeconds = nil - } - if in.ActiveDeadlineSeconds != nil { - out.ActiveDeadlineSeconds = new(int64) - *out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds - } else { - out.ActiveDeadlineSeconds = nil - } - out.DNSPolicy = api.DNSPolicy(in.DNSPolicy) - if in.NodeSelector != nil { - out.NodeSelector = make(map[string]string) - for key, val := range in.NodeSelector { - out.NodeSelector[key] = val - } - } else { - out.NodeSelector = nil - } - out.ServiceAccount = in.ServiceAccount - out.Host = in.Host - out.HostNetwork = in.HostNetwork - if in.ImagePullSecrets != nil { - out.ImagePullSecrets = make([]api.LocalObjectReference, len(in.ImagePullSecrets)) - for i := range in.ImagePullSecrets { - if err := convert_v1beta3_LocalObjectReference_To_api_LocalObjectReference(&in.ImagePullSecrets[i], &out.ImagePullSecrets[i], s); err != nil { - return err - } - } - } else { - out.ImagePullSecrets = nil - } - return nil -} - func convert_v1beta3_PodStatus_To_api_PodStatus(in *PodStatus, out *api.PodStatus, s conversion.Scope) error { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { defaulting.(func(*PodStatus))(in) @@ -4514,7 +4390,6 @@ func init() { convert_api_PodList_To_v1beta3_PodList, convert_api_PodLogOptions_To_v1beta3_PodLogOptions, convert_api_PodProxyOptions_To_v1beta3_PodProxyOptions, - convert_api_PodSpec_To_v1beta3_PodSpec, convert_api_PodStatusResult_To_v1beta3_PodStatusResult, convert_api_PodStatus_To_v1beta3_PodStatus, convert_api_PodTemplateList_To_v1beta3_PodTemplateList, @@ -4626,7 +4501,6 @@ func init() { convert_v1beta3_PodList_To_api_PodList, convert_v1beta3_PodLogOptions_To_api_PodLogOptions, convert_v1beta3_PodProxyOptions_To_api_PodProxyOptions, - convert_v1beta3_PodSpec_To_api_PodSpec, convert_v1beta3_PodStatusResult_To_api_PodStatusResult, convert_v1beta3_PodStatus_To_api_PodStatus, convert_v1beta3_PodTemplateList_To_api_PodTemplateList, diff --git a/pkg/api/validation/validation.go b/pkg/api/validation/validation.go index 9e18919623e..29893f14ff0 100644 --- a/pkg/api/validation/validation.go +++ b/pkg/api/validation/validation.go @@ -1007,8 +1007,8 @@ func ValidatePodStatusUpdate(newPod, oldPod *api.Pod) errs.ValidationErrorList { allErrs = append(allErrs, ValidateObjectMetaUpdate(&oldPod.ObjectMeta, &newPod.ObjectMeta).Prefix("metadata")...) // TODO: allow change when bindings are properly decoupled from pods - if newPod.Spec.Host != oldPod.Spec.Host { - allErrs = append(allErrs, errs.NewFieldInvalid("status.host", newPod.Spec.Host, "pod host cannot be changed directly")) + if newPod.Spec.NodeName != oldPod.Spec.NodeName { + allErrs = append(allErrs, errs.NewFieldInvalid("status.nodeName", newPod.Spec.NodeName, "pod nodename cannot be changed directly")) } // For status update we ignore changes to pod spec. diff --git a/pkg/api/validation/validation_test.go b/pkg/api/validation/validation_test.go index a2922b48280..39db58fef59 100644 --- a/pkg/api/validation/validation_test.go +++ b/pkg/api/validation/validation_test.go @@ -1049,7 +1049,7 @@ func TestValidatePodSpec(t *testing.T) { NodeSelector: map[string]string{ "key": "value", }, - Host: "foobar", + NodeName: "foobar", DNSPolicy: api.DNSClusterFirst, ActiveDeadlineSeconds: &activeDeadlineSeconds, }, @@ -1116,7 +1116,7 @@ func TestValidatePodSpec(t *testing.T) { NodeSelector: map[string]string{ "key": "value", }, - Host: "foobar", + NodeName: "foobar", DNSPolicy: api.DNSClusterFirst, ActiveDeadlineSeconds: &activeDeadlineSeconds, }, @@ -1151,7 +1151,7 @@ func TestValidatePod(t *testing.T) { NodeSelector: map[string]string{ "key": "value", }, - Host: "foobar", + NodeName: "foobar", }, }, } diff --git a/pkg/cloudprovider/nodecontroller/nodecontroller.go b/pkg/cloudprovider/nodecontroller/nodecontroller.go index 6a0bb4f6d53..b42fbf45fc1 100644 --- a/pkg/cloudprovider/nodecontroller/nodecontroller.go +++ b/pkg/cloudprovider/nodecontroller/nodecontroller.go @@ -425,7 +425,7 @@ func (nc *NodeController) deletePods(nodeID string) error { } for _, pod := range pods.Items { // Defensive check, also needed for tests. - if pod.Spec.Host != nodeID { + if pod.Spec.NodeName != nodeID { continue } glog.V(2).Infof("Delete pod %v", pod.Name) diff --git a/pkg/cloudprovider/nodecontroller/nodecontroller_test.go b/pkg/cloudprovider/nodecontroller/nodecontroller_test.go index b1aea3f9bd6..d6e03d33cb1 100644 --- a/pkg/cloudprovider/nodecontroller/nodecontroller_test.go +++ b/pkg/cloudprovider/nodecontroller/nodecontroller_test.go @@ -566,7 +566,7 @@ func newNode(name string) *api.Node { } func newPod(name, host string) *api.Pod { - return &api.Pod{ObjectMeta: api.ObjectMeta{Name: name}, Spec: api.PodSpec{Host: host}} + return &api.Pod{ObjectMeta: api.ObjectMeta{Name: name}, Spec: api.PodSpec{NodeName: host}} } func sortedNodeNames(nodes []*api.Node) []string { diff --git a/pkg/controller/controller_utils.go b/pkg/controller/controller_utils.go index 5d24e25dc6e..53954232dcd 100644 --- a/pkg/controller/controller_utils.go +++ b/pkg/controller/controller_utils.go @@ -274,7 +274,7 @@ func (s activePods) Swap(i, j int) { s[i], s[j] = s[j], s[i] } func (s activePods) Less(i, j int) bool { // Unassigned < assigned - if s[i].Spec.Host == "" && s[j].Spec.Host != "" { + if s[i].Spec.NodeName == "" && s[j].Spec.NodeName != "" { return true } // PodPending < PodUnknown < PodRunning diff --git a/pkg/controller/replication_controller_test.go b/pkg/controller/replication_controller_test.go index c71e52fe1e3..a2e960941d0 100644 --- a/pkg/controller/replication_controller_test.go +++ b/pkg/controller/replication_controller_test.go @@ -436,19 +436,19 @@ func TestSortingActivePods(t *testing.T) { pods[i] = &podList.Items[i] } // pods[0] is not scheduled yet. - pods[0].Spec.Host = "" + pods[0].Spec.NodeName = "" pods[0].Status.Phase = api.PodPending // pods[1] is scheduled but pending. - pods[1].Spec.Host = "bar" + pods[1].Spec.NodeName = "bar" pods[1].Status.Phase = api.PodPending // pods[2] is unknown. - pods[2].Spec.Host = "foo" + pods[2].Spec.NodeName = "foo" pods[2].Status.Phase = api.PodUnknown // pods[3] is running but not ready. - pods[3].Spec.Host = "foo" + pods[3].Spec.NodeName = "foo" pods[3].Status.Phase = api.PodRunning // pods[4] is running and ready. - pods[4].Spec.Host = "foo" + pods[4].Spec.NodeName = "foo" pods[4].Status.Phase = api.PodRunning pods[4].Status.Conditions = []api.PodCondition{{Type: api.PodReady, Status: api.ConditionTrue}} diff --git a/pkg/kubectl/cmd/util/helpers_test.go b/pkg/kubectl/cmd/util/helpers_test.go index d9359eace52..5f3f14b6e63 100644 --- a/pkg/kubectl/cmd/util/helpers_test.go +++ b/pkg/kubectl/cmd/util/helpers_test.go @@ -67,7 +67,7 @@ func TestMerge(t *testing.T) { Name: "baz", }, Spec: api.PodSpec{ - Host: "bar", + NodeName: "bar", RestartPolicy: api.RestartPolicyAlways, DNSPolicy: api.DNSClusterFirst, }, diff --git a/pkg/kubectl/describe.go b/pkg/kubectl/describe.go index 30c54e1a378..3b119b6a7a1 100644 --- a/pkg/kubectl/describe.go +++ b/pkg/kubectl/describe.go @@ -269,7 +269,7 @@ func describePod(pod *api.Pod, rcs []api.ReplicationController, events *api.Even return tabbedString(func(out io.Writer) error { fmt.Fprintf(out, "Name:\t%s\n", pod.Name) fmt.Fprintf(out, "Image(s):\t%s\n", makeImageList(&pod.Spec)) - fmt.Fprintf(out, "Host:\t%s\n", pod.Spec.Host+"/"+pod.Status.HostIP) + fmt.Fprintf(out, "Node:\t%s\n", pod.Spec.NodeName+"/"+pod.Status.HostIP) fmt.Fprintf(out, "Labels:\t%s\n", formatLabels(pod.Labels)) fmt.Fprintf(out, "Status:\t%s\n", string(pod.Status.Phase)) fmt.Fprintf(out, "Replication Controllers:\t%s\n", printReplicationControllersByLabels(rcs)) @@ -612,7 +612,7 @@ func (d *NodeDescriber) Describe(namespace, name string) (string, error) { } for i := range allPods.Items { pod := &allPods.Items[i] - if pod.Spec.Host != name { + if pod.Spec.NodeName != name { continue } pods = append(pods, pod) diff --git a/pkg/kubectl/resource_printer.go b/pkg/kubectl/resource_printer.go index 30da9dab6a1..96ca8bd1be0 100644 --- a/pkg/kubectl/resource_printer.go +++ b/pkg/kubectl/resource_printer.go @@ -406,7 +406,7 @@ func printPod(pod *api.Pod, w io.Writer, withNamespace bool) error { name, pod.Status.PodIP, "", "", - podHostString(pod.Spec.Host, pod.Status.HostIP), + podHostString(pod.Spec.NodeName, pod.Status.HostIP), formatLabels(pod.Labels), pod.Status.Phase, translateTimestamp(pod.CreationTimestamp), diff --git a/pkg/kubelet/config/common.go b/pkg/kubelet/config/common.go index cbfc85207a7..936944af44c 100644 --- a/pkg/kubelet/config/common.go +++ b/pkg/kubelet/config/common.go @@ -68,7 +68,7 @@ func applyDefaults(pod *api.Pod, source string, isFile bool, hostname string) er glog.V(5).Infof("Using namespace %q for pod %q from %s", pod.Namespace, pod.Name, source) // Set the Host field to indicate this pod is scheduled on the current node. - pod.Spec.Host = hostname + pod.Spec.NodeName = hostname pod.ObjectMeta.SelfLink = getSelfLink(pod.Name, pod.Namespace) return nil diff --git a/pkg/kubelet/config/file_test.go b/pkg/kubelet/config/file_test.go index f649fdcacbc..901866e1c57 100644 --- a/pkg/kubelet/config/file_test.go +++ b/pkg/kubelet/config/file_test.go @@ -99,7 +99,7 @@ func TestReadContainerManifestFromFile(t *testing.T) { SelfLink: getSelfLink("test-"+hostname, kubelet.NamespaceDefault), }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, RestartPolicy: api.RestartPolicyAlways, DNSPolicy: api.DNSClusterFirst, Containers: []api.Container{{ @@ -126,7 +126,7 @@ func TestReadContainerManifestFromFile(t *testing.T) { SelfLink: getSelfLink("12345-"+hostname, kubelet.NamespaceDefault), }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, RestartPolicy: api.RestartPolicyAlways, DNSPolicy: api.DNSClusterFirst, Containers: []api.Container{{ @@ -196,7 +196,7 @@ func TestReadPodsFromFile(t *testing.T) { SelfLink: getSelfLink("test-"+hostname, "mynamespace"), }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, RestartPolicy: api.RestartPolicyAlways, DNSPolicy: api.DNSClusterFirst, Containers: []api.Container{{ @@ -231,7 +231,7 @@ func TestReadPodsFromFile(t *testing.T) { SelfLink: getSelfLink("12345-"+hostname, kubelet.NamespaceDefault), }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, RestartPolicy: api.RestartPolicyAlways, DNSPolicy: api.DNSClusterFirst, Containers: []api.Container{{ @@ -371,7 +371,7 @@ func exampleManifestAndPod(id string) (v1beta1.ContainerManifest, *api.Pod) { SelfLink: getSelfLink(id+"-"+hostname, kubelet.NamespaceDefault), }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, Containers: []api.Container{ { Name: "c" + id, diff --git a/pkg/kubelet/config/http_test.go b/pkg/kubelet/config/http_test.go index 789dd17b9dc..a724167f1ea 100644 --- a/pkg/kubelet/config/http_test.go +++ b/pkg/kubelet/config/http_test.go @@ -145,7 +145,7 @@ func TestExtractManifestFromHTTP(t *testing.T) { SelfLink: getSelfLink("foo-"+hostname, kubelet.NamespaceDefault), }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, RestartPolicy: api.RestartPolicyAlways, DNSPolicy: api.DNSClusterFirst, Containers: []api.Container{{ @@ -172,7 +172,7 @@ func TestExtractManifestFromHTTP(t *testing.T) { SelfLink: getSelfLink("111-"+hostname, kubelet.NamespaceDefault), }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, RestartPolicy: api.RestartPolicyAlways, DNSPolicy: api.DNSClusterFirst, Containers: []api.Container{{ @@ -199,7 +199,7 @@ func TestExtractManifestFromHTTP(t *testing.T) { SelfLink: getSelfLink("foo-"+hostname, kubelet.NamespaceDefault), }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, RestartPolicy: api.RestartPolicyAlways, DNSPolicy: api.DNSClusterFirst, Containers: []api.Container{{ @@ -230,7 +230,7 @@ func TestExtractManifestFromHTTP(t *testing.T) { SelfLink: getSelfLink("foo-"+hostname, kubelet.NamespaceDefault), }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, RestartPolicy: api.RestartPolicyAlways, DNSPolicy: api.DNSClusterFirst, Containers: []api.Container{{ @@ -250,7 +250,7 @@ func TestExtractManifestFromHTTP(t *testing.T) { SelfLink: getSelfLink("bar-"+hostname, kubelet.NamespaceDefault), }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, RestartPolicy: api.RestartPolicyAlways, DNSPolicy: api.DNSClusterFirst, Containers: []api.Container{{ @@ -328,7 +328,7 @@ func TestExtractPodsFromHTTP(t *testing.T) { Namespace: "mynamespace", }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, Containers: []api.Container{{Name: "1", Image: "foo", ImagePullPolicy: api.PullAlways}}, }, }, @@ -343,7 +343,7 @@ func TestExtractPodsFromHTTP(t *testing.T) { SelfLink: getSelfLink("foo-"+hostname, "mynamespace"), }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, RestartPolicy: api.RestartPolicyAlways, DNSPolicy: api.DNSClusterFirst, Containers: []api.Container{{ @@ -369,7 +369,7 @@ func TestExtractPodsFromHTTP(t *testing.T) { UID: "111", }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, Containers: []api.Container{{Name: "1", Image: "foo", ImagePullPolicy: api.PullAlways}}, }, }, @@ -379,7 +379,7 @@ func TestExtractPodsFromHTTP(t *testing.T) { UID: "222", }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, Containers: []api.Container{{Name: "2", Image: "bar", ImagePullPolicy: ""}}, }, }, @@ -396,7 +396,7 @@ func TestExtractPodsFromHTTP(t *testing.T) { SelfLink: getSelfLink("foo-"+hostname, kubelet.NamespaceDefault), }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, RestartPolicy: api.RestartPolicyAlways, DNSPolicy: api.DNSClusterFirst, Containers: []api.Container{{ @@ -416,7 +416,7 @@ func TestExtractPodsFromHTTP(t *testing.T) { SelfLink: getSelfLink("bar-"+hostname, kubelet.NamespaceDefault), }, Spec: api.PodSpec{ - Host: hostname, + NodeName: hostname, RestartPolicy: api.RestartPolicyAlways, DNSPolicy: api.DNSClusterFirst, Containers: []api.Container{{ diff --git a/pkg/kubelet/kubelet_test.go b/pkg/kubelet/kubelet_test.go index 1e08cc539dc..3126c614008 100644 --- a/pkg/kubelet/kubelet_test.go +++ b/pkg/kubelet/kubelet_test.go @@ -1869,7 +1869,7 @@ func failedState(cName string) api.ContainerStatus { func TestPodPhaseWithRestartAlways(t *testing.T) { desiredState := api.PodSpec{ - Host: "machine", + NodeName: "machine", Containers: []api.Container{ {Name: "containerA"}, {Name: "containerB"}, @@ -1944,7 +1944,7 @@ func TestPodPhaseWithRestartAlways(t *testing.T) { func TestPodPhaseWithRestartNever(t *testing.T) { desiredState := api.PodSpec{ - Host: "machine", + NodeName: "machine", Containers: []api.Container{ {Name: "containerA"}, {Name: "containerB"}, @@ -2032,7 +2032,7 @@ func TestPodPhaseWithRestartNever(t *testing.T) { func TestPodPhaseWithRestartOnFailure(t *testing.T) { desiredState := api.PodSpec{ - Host: "machine", + NodeName: "machine", Containers: []api.Container{ {Name: "containerA"}, {Name: "containerB"}, diff --git a/pkg/registry/generic/etcd/etcd_test.go b/pkg/registry/generic/etcd/etcd_test.go index 5041ffb3800..7431b813582 100644 --- a/pkg/registry/generic/etcd/etcd_test.go +++ b/pkg/registry/generic/etcd/etcd_test.go @@ -123,11 +123,11 @@ func (everythingMatcher) MatchesSingle() (string, bool) { func TestEtcdList(t *testing.T) { podA := &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, } podB := &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "bar"}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, } singleElemListResp := &etcd.Response{ @@ -230,11 +230,11 @@ func TestEtcdList(t *testing.T) { func TestEtcdCreate(t *testing.T) { podA := &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: api.NamespaceDefault}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, } podB := &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: api.NamespaceDefault}, - Spec: api.PodSpec{Host: "machine2"}, + Spec: api.PodSpec{NodeName: "machine2"}, } nodeWithPodA := tools.EtcdResponseWithError{ @@ -308,11 +308,11 @@ func TestEtcdCreate(t *testing.T) { func TestEtcdCreateWithName(t *testing.T) { podA := &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: api.NamespaceDefault}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, } podB := &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: api.NamespaceDefault}, - Spec: api.PodSpec{Host: "machine2"}, + Spec: api.PodSpec{NodeName: "machine2"}, } nodeWithPodA := tools.EtcdResponseWithError{ @@ -384,11 +384,11 @@ func TestEtcdCreateWithName(t *testing.T) { func TestEtcdUpdate(t *testing.T) { podA := &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: api.NamespaceDefault}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, } podB := &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: api.NamespaceDefault, ResourceVersion: "1"}, - Spec: api.PodSpec{Host: "machine2"}, + Spec: api.PodSpec{NodeName: "machine2"}, } nodeWithPodA := tools.EtcdResponseWithError{ @@ -499,11 +499,11 @@ func TestEtcdUpdate(t *testing.T) { func TestEtcdUpdateWithName(t *testing.T) { podA := &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, } podB := &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo", ResourceVersion: "1"}, - Spec: api.PodSpec{Host: "machine2"}, + Spec: api.PodSpec{NodeName: "machine2"}, } nodeWithPodA := tools.EtcdResponseWithError{ @@ -574,7 +574,7 @@ func TestEtcdUpdateWithName(t *testing.T) { func TestEtcdGet(t *testing.T) { podA := &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo", ResourceVersion: "1"}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, } nodeWithPodA := tools.EtcdResponseWithError{ @@ -630,7 +630,7 @@ func TestEtcdGet(t *testing.T) { func TestEtcdDelete(t *testing.T) { podA := &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo", ResourceVersion: "1"}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, } nodeWithPodA := tools.EtcdResponseWithError{ @@ -699,7 +699,7 @@ func TestEtcdWatch(t *testing.T) { Namespace: api.NamespaceDefault, ResourceVersion: "1", }, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, } respWithPodA := &etcd.Response{ Node: &etcd.Node{ diff --git a/pkg/registry/pod/etcd/etcd.go b/pkg/registry/pod/etcd/etcd.go index 000075f08d7..cf8e6816ee0 100644 --- a/pkg/registry/pod/etcd/etcd.go +++ b/pkg/registry/pod/etcd/etcd.go @@ -147,10 +147,10 @@ func (r *BindingREST) setPodHostAndAnnotations(ctx api.Context, podID, oldMachin if !ok { return nil, 0, fmt.Errorf("unexpected object: %#v", obj) } - if pod.Spec.Host != oldMachine { - return nil, 0, fmt.Errorf("pod %v is already assigned to host %q", pod.Name, pod.Spec.Host) + if pod.Spec.NodeName != oldMachine { + return nil, 0, fmt.Errorf("pod %v is already assigned to node %q", pod.Name, pod.Spec.NodeName) } - pod.Spec.Host = machine + pod.Spec.NodeName = machine if pod.Annotations == nil { pod.Annotations = make(map[string]string) } diff --git a/pkg/registry/pod/etcd/etcd_test.go b/pkg/registry/pod/etcd/etcd_test.go index 81ede48d041..9d1e00f9264 100644 --- a/pkg/registry/pod/etcd/etcd_test.go +++ b/pkg/registry/pod/etcd/etcd_test.go @@ -231,14 +231,14 @@ func TestListPodList(t *testing.T) { { Value: runtime.EncodeOrDie(latest.Codec, &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, Status: api.PodStatus{Phase: api.PodRunning}, }), }, { Value: runtime.EncodeOrDie(latest.Codec, &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "bar"}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, }), }, }, @@ -255,10 +255,10 @@ func TestListPodList(t *testing.T) { if len(pods.Items) != 2 { t.Errorf("Unexpected pod list: %#v", pods) } - if pods.Items[0].Name != "foo" || pods.Items[0].Status.Phase != api.PodRunning || pods.Items[0].Spec.Host != "machine" { + if pods.Items[0].Name != "foo" || pods.Items[0].Status.Phase != api.PodRunning || pods.Items[0].Spec.NodeName != "machine" { t.Errorf("Unexpected pod: %#v", pods.Items[0]) } - if pods.Items[1].Name != "bar" || pods.Items[1].Spec.Host != "machine" { + if pods.Items[1].Name != "bar" || pods.Items[1].Spec.NodeName != "machine" { t.Errorf("Unexpected pod: %#v", pods.Items[1]) } } @@ -278,7 +278,7 @@ func TestListPodListSelection(t *testing.T) { })}, {Value: runtime.EncodeOrDie(latest.Codec, &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "bar"}, - Spec: api.PodSpec{Host: "barhost"}, + Spec: api.PodSpec{NodeName: "barhost"}, })}, {Value: runtime.EncodeOrDie(latest.Codec, &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "baz"}, @@ -388,7 +388,7 @@ func TestPodDecode(t *testing.T) { func TestGet(t *testing.T) { expect := validNewPod() expect.Status.Phase = api.PodRunning - expect.Spec.Host = "machine" + expect.Spec.NodeName = "machine" fakeEtcdClient, helper := newHelper(t) key := etcdtest.AddPrefix("/pods/test/foo") @@ -485,7 +485,7 @@ func TestUpdateWithConflictingNamespace(t *testing.T) { Node: &etcd.Node{ Value: runtime.EncodeOrDie(latest.Codec, &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: "default"}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, }), ModifiedIndex: 1, }, @@ -645,7 +645,7 @@ func TestDeletePod(t *testing.T) { Name: "foo", Namespace: api.NamespaceDefault, }, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, }), ModifiedIndex: 1, CreatedIndex: 1, @@ -1035,8 +1035,8 @@ func TestEtcdCreateBinding(t *testing.T) { pod, err := registry.Get(ctx, validNewPod().ObjectMeta.Name) if err != nil { t.Errorf("%s: unexpected error: %v", k, err) - } else if pod.(*api.Pod).Spec.Host != test.binding.Target.Name { - t.Errorf("%s: expected: %v, got: %v", k, pod.(*api.Pod).Spec.Host, test.binding.Target.Name) + } else if pod.(*api.Pod).Spec.NodeName != test.binding.Target.Name { + t.Errorf("%s: expected: %v, got: %v", k, pod.(*api.Pod).Spec.NodeName, test.binding.Target.Name) } } } @@ -1107,7 +1107,7 @@ func TestEtcdUpdateScheduled(t *testing.T) { Namespace: api.NamespaceDefault, }, Spec: api.PodSpec{ - Host: "machine", + NodeName: "machine", Containers: []api.Container{ { Name: "foobar", @@ -1127,7 +1127,7 @@ func TestEtcdUpdateScheduled(t *testing.T) { }, }, Spec: api.PodSpec{ - Host: "machine", + NodeName: "machine", Containers: []api.Container{ { Name: "foobar", @@ -1170,7 +1170,7 @@ func TestEtcdUpdateStatus(t *testing.T) { Namespace: api.NamespaceDefault, }, Spec: api.PodSpec{ - Host: "machine", + NodeName: "machine", Containers: []api.Container{ { Image: "foo:v1", @@ -1190,7 +1190,7 @@ func TestEtcdUpdateStatus(t *testing.T) { }, }, Spec: api.PodSpec{ - Host: "machine", + NodeName: "machine", Containers: []api.Container{ { Image: "foo:v2", @@ -1238,7 +1238,7 @@ func TestEtcdDeletePod(t *testing.T) { key = etcdtest.AddPrefix(key) fakeClient.Set(key, runtime.EncodeOrDie(latest.Codec, &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, }), 0) _, err := registry.Delete(ctx, "foo", api.NewDeleteOptions(0)) if err != nil { @@ -1260,7 +1260,7 @@ func TestEtcdDeletePodMultipleContainers(t *testing.T) { key = etcdtest.AddPrefix(key) fakeClient.Set(key, runtime.EncodeOrDie(latest.Codec, &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, }), 0) _, err := registry.Delete(ctx, "foo", api.NewDeleteOptions(0)) if err != nil { @@ -1330,13 +1330,13 @@ func TestEtcdList(t *testing.T) { { Value: runtime.EncodeOrDie(latest.Codec, &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, }), }, { Value: runtime.EncodeOrDie(latest.Codec, &api.Pod{ ObjectMeta: api.ObjectMeta{Name: "bar"}, - Spec: api.PodSpec{Host: "machine"}, + Spec: api.PodSpec{NodeName: "machine"}, }), }, }, @@ -1353,8 +1353,8 @@ func TestEtcdList(t *testing.T) { if len(pods.Items) != 2 || pods.Items[0].Name != "foo" || pods.Items[1].Name != "bar" { t.Errorf("Unexpected pod list: %#v", pods) } - if pods.Items[0].Spec.Host != "machine" || - pods.Items[1].Spec.Host != "machine" { + if pods.Items[0].Spec.NodeName != "machine" || + pods.Items[1].Spec.NodeName != "machine" { t.Errorf("Failed to populate host name.") } } diff --git a/pkg/registry/pod/rest.go b/pkg/registry/pod/rest.go index ff54ff0d0b4..7c1ed33e3bc 100644 --- a/pkg/registry/pod/rest.go +++ b/pkg/registry/pod/rest.go @@ -123,7 +123,7 @@ func MatchPod(label labels.Selector, field fields.Selector) generic.Matcher { func PodToSelectableFields(pod *api.Pod) fields.Set { return fields.Set{ "metadata.name": pod.Name, - "spec.host": pod.Spec.Host, + "spec.host": pod.Spec.NodeName, "status.phase": string(pod.Status.Phase), } } @@ -199,7 +199,7 @@ func LogLocation(getter ResourceGetter, connInfo client.ConnectionInfoGetter, ct return nil, nil, errors.NewBadRequest(fmt.Sprintf("a container name must be specified for pod %s", name)) } } - nodeHost := pod.Spec.Host + nodeHost := pod.Spec.NodeName if len(nodeHost) == 0 { // If pod has not been assigned a host, return an empty location return nil, nil, nil @@ -242,7 +242,7 @@ func ExecLocation(getter ResourceGetter, connInfo client.ConnectionInfoGetter, c return nil, nil, errors.NewBadRequest(fmt.Sprintf("a container name must be specified for pod %s", name)) } } - nodeHost := pod.Spec.Host + nodeHost := pod.Spec.NodeName if len(nodeHost) == 0 { // If pod has not been assigned a host, return an empty location return nil, nil, fmt.Errorf("pod %s does not have a host assigned", name) @@ -284,7 +284,7 @@ func PortForwardLocation(getter ResourceGetter, connInfo client.ConnectionInfoGe return nil, nil, err } - nodeHost := pod.Spec.Host + nodeHost := pod.Spec.NodeName if len(nodeHost) == 0 { // If pod has not been assigned a host, return an empty location return nil, nil, errors.NewBadRequest(fmt.Sprintf("pod %s does not have a host assigned", name)) diff --git a/plugin/pkg/scheduler/algorithm/predicates/predicates.go b/plugin/pkg/scheduler/algorithm/predicates/predicates.go index 6f360a09521..c1a5d3cf99c 100644 --- a/plugin/pkg/scheduler/algorithm/predicates/predicates.go +++ b/plugin/pkg/scheduler/algorithm/predicates/predicates.go @@ -189,10 +189,10 @@ func (n *NodeSelector) PodSelectorMatches(pod *api.Pod, existingPods []*api.Pod, } func PodFitsHost(pod *api.Pod, existingPods []*api.Pod, node string) (bool, error) { - if len(pod.Spec.Host) == 0 { + if len(pod.Spec.NodeName) == 0 { return true, nil } - return pod.Spec.Host == node, nil + return pod.Spec.NodeName == node, nil } type NodeLabelChecker struct { @@ -300,7 +300,7 @@ func (s *ServiceAffinity) CheckServiceAffinity(pod *api.Pod, existingPods []*api } if len(nsServicePods) > 0 { // consider any service pod and fetch the minion its hosted on - otherMinion, err := s.nodeInfo.GetNodeInfo(nsServicePods[0].Spec.Host) + otherMinion, err := s.nodeInfo.GetNodeInfo(nsServicePods[0].Spec.NodeName) if err != nil { return false, err } @@ -369,7 +369,7 @@ func MapPodsToMachines(lister algorithm.PodLister) (map[string][]*api.Pod, error return map[string][]*api.Pod{}, err } for _, scheduledPod := range pods { - host := scheduledPod.Spec.Host + host := scheduledPod.Spec.NodeName machineToPods[host] = append(machineToPods[host], scheduledPod) } return machineToPods, nil diff --git a/plugin/pkg/scheduler/algorithm/predicates/predicates_test.go b/plugin/pkg/scheduler/algorithm/predicates/predicates_test.go index 653e7cdaade..6c3a63b2179 100644 --- a/plugin/pkg/scheduler/algorithm/predicates/predicates_test.go +++ b/plugin/pkg/scheduler/algorithm/predicates/predicates_test.go @@ -197,7 +197,7 @@ func TestPodFitsHost(t *testing.T) { { pod: &api.Pod{ Spec: api.PodSpec{ - Host: "foo", + NodeName: "foo", }, }, node: "foo", @@ -207,7 +207,7 @@ func TestPodFitsHost(t *testing.T) { { pod: &api.Pod{ Spec: api.PodSpec{ - Host: "bar", + NodeName: "bar", }, }, node: "foo", @@ -234,7 +234,7 @@ func newPod(host string, hostPorts ...int) *api.Pod { } return &api.Pod{ Spec: api.PodSpec{ - Host: host, + NodeName: host, Containers: []api.Container{ { Ports: networkPorts, @@ -632,7 +632,7 @@ func TestServiceAffinity(t *testing.T) { }, { pod: &api.Pod{ObjectMeta: api.ObjectMeta{Labels: selector}}, - pods: []*api.Pod{{Spec: api.PodSpec{Host: "machine1"}, ObjectMeta: api.ObjectMeta{Labels: selector}}}, + pods: []*api.Pod{{Spec: api.PodSpec{NodeName: "machine1"}, ObjectMeta: api.ObjectMeta{Labels: selector}}}, node: "machine1", services: []api.Service{{Spec: api.ServiceSpec{Selector: selector}}}, fits: true, @@ -641,7 +641,7 @@ func TestServiceAffinity(t *testing.T) { }, { pod: &api.Pod{ObjectMeta: api.ObjectMeta{Labels: selector}}, - pods: []*api.Pod{{Spec: api.PodSpec{Host: "machine2"}, ObjectMeta: api.ObjectMeta{Labels: selector}}}, + pods: []*api.Pod{{Spec: api.PodSpec{NodeName: "machine2"}, ObjectMeta: api.ObjectMeta{Labels: selector}}}, node: "machine1", services: []api.Service{{Spec: api.ServiceSpec{Selector: selector}}}, fits: true, @@ -650,7 +650,7 @@ func TestServiceAffinity(t *testing.T) { }, { pod: &api.Pod{ObjectMeta: api.ObjectMeta{Labels: selector}}, - pods: []*api.Pod{{Spec: api.PodSpec{Host: "machine3"}, ObjectMeta: api.ObjectMeta{Labels: selector}}}, + pods: []*api.Pod{{Spec: api.PodSpec{NodeName: "machine3"}, ObjectMeta: api.ObjectMeta{Labels: selector}}}, node: "machine1", services: []api.Service{{Spec: api.ServiceSpec{Selector: selector}}}, fits: false, @@ -659,7 +659,7 @@ func TestServiceAffinity(t *testing.T) { }, { pod: &api.Pod{ObjectMeta: api.ObjectMeta{Labels: selector, Namespace: "ns1"}}, - pods: []*api.Pod{{Spec: api.PodSpec{Host: "machine3"}, ObjectMeta: api.ObjectMeta{Labels: selector, Namespace: "ns1"}}}, + pods: []*api.Pod{{Spec: api.PodSpec{NodeName: "machine3"}, ObjectMeta: api.ObjectMeta{Labels: selector, Namespace: "ns1"}}}, node: "machine1", services: []api.Service{{Spec: api.ServiceSpec{Selector: selector}, ObjectMeta: api.ObjectMeta{Namespace: "ns2"}}}, fits: true, @@ -668,7 +668,7 @@ func TestServiceAffinity(t *testing.T) { }, { pod: &api.Pod{ObjectMeta: api.ObjectMeta{Labels: selector, Namespace: "ns1"}}, - pods: []*api.Pod{{Spec: api.PodSpec{Host: "machine3"}, ObjectMeta: api.ObjectMeta{Labels: selector, Namespace: "ns2"}}}, + pods: []*api.Pod{{Spec: api.PodSpec{NodeName: "machine3"}, ObjectMeta: api.ObjectMeta{Labels: selector, Namespace: "ns2"}}}, node: "machine1", services: []api.Service{{Spec: api.ServiceSpec{Selector: selector}, ObjectMeta: api.ObjectMeta{Namespace: "ns1"}}}, fits: true, @@ -677,7 +677,7 @@ func TestServiceAffinity(t *testing.T) { }, { pod: &api.Pod{ObjectMeta: api.ObjectMeta{Labels: selector, Namespace: "ns1"}}, - pods: []*api.Pod{{Spec: api.PodSpec{Host: "machine3"}, ObjectMeta: api.ObjectMeta{Labels: selector, Namespace: "ns1"}}}, + pods: []*api.Pod{{Spec: api.PodSpec{NodeName: "machine3"}, ObjectMeta: api.ObjectMeta{Labels: selector, Namespace: "ns1"}}}, node: "machine1", services: []api.Service{{Spec: api.ServiceSpec{Selector: selector}, ObjectMeta: api.ObjectMeta{Namespace: "ns1"}}}, fits: false, @@ -686,7 +686,7 @@ func TestServiceAffinity(t *testing.T) { }, { pod: &api.Pod{ObjectMeta: api.ObjectMeta{Labels: selector}}, - pods: []*api.Pod{{Spec: api.PodSpec{Host: "machine2"}, ObjectMeta: api.ObjectMeta{Labels: selector}}}, + pods: []*api.Pod{{Spec: api.PodSpec{NodeName: "machine2"}, ObjectMeta: api.ObjectMeta{Labels: selector}}}, node: "machine1", services: []api.Service{{Spec: api.ServiceSpec{Selector: selector}}}, fits: false, @@ -695,7 +695,7 @@ func TestServiceAffinity(t *testing.T) { }, { pod: &api.Pod{ObjectMeta: api.ObjectMeta{Labels: selector}}, - pods: []*api.Pod{{Spec: api.PodSpec{Host: "machine5"}, ObjectMeta: api.ObjectMeta{Labels: selector}}}, + pods: []*api.Pod{{Spec: api.PodSpec{NodeName: "machine5"}, ObjectMeta: api.ObjectMeta{Labels: selector}}}, node: "machine4", services: []api.Service{{Spec: api.ServiceSpec{Selector: selector}}}, fits: true, diff --git a/plugin/pkg/scheduler/algorithm/priorities/priorities_test.go b/plugin/pkg/scheduler/algorithm/priorities/priorities_test.go index 3a387606b7b..ab43cecfedb 100644 --- a/plugin/pkg/scheduler/algorithm/priorities/priorities_test.go +++ b/plugin/pkg/scheduler/algorithm/priorities/priorities_test.go @@ -48,16 +48,16 @@ func TestLeastRequested(t *testing.T) { "baz": "blah", } machine1Spec := api.PodSpec{ - Host: "machine1", + NodeName: "machine1", } machine2Spec := api.PodSpec{ - Host: "machine2", + NodeName: "machine2", } noResources := api.PodSpec{ Containers: []api.Container{}, } cpuOnly := api.PodSpec{ - Host: "machine1", + NodeName: "machine1", Containers: []api.Container{ { Resources: api.ResourceRequirements{ @@ -76,9 +76,9 @@ func TestLeastRequested(t *testing.T) { }, } cpuOnly2 := cpuOnly - cpuOnly2.Host = "machine2" + cpuOnly2.NodeName = "machine2" cpuAndMemory := api.PodSpec{ - Host: "machine2", + NodeName: "machine2", Containers: []api.Container{ { Resources: api.ResourceRequirements{ @@ -378,16 +378,16 @@ func TestBalancedResourceAllocation(t *testing.T) { "baz": "blah", } machine1Spec := api.PodSpec{ - Host: "machine1", + NodeName: "machine1", } machine2Spec := api.PodSpec{ - Host: "machine2", + NodeName: "machine2", } noResources := api.PodSpec{ Containers: []api.Container{}, } cpuOnly := api.PodSpec{ - Host: "machine1", + NodeName: "machine1", Containers: []api.Container{ { Resources: api.ResourceRequirements{ @@ -406,9 +406,9 @@ func TestBalancedResourceAllocation(t *testing.T) { }, } cpuOnly2 := cpuOnly - cpuOnly2.Host = "machine2" + cpuOnly2.NodeName = "machine2" cpuAndMemory := api.PodSpec{ - Host: "machine2", + NodeName: "machine2", Containers: []api.Container{ { Resources: api.ResourceRequirements{ diff --git a/plugin/pkg/scheduler/algorithm/priorities/spreading.go b/plugin/pkg/scheduler/algorithm/priorities/spreading.go index 6f0cc2c5981..eaddad66d0d 100644 --- a/plugin/pkg/scheduler/algorithm/priorities/spreading.go +++ b/plugin/pkg/scheduler/algorithm/priorities/spreading.go @@ -64,10 +64,10 @@ func (s *ServiceSpread) CalculateSpreadPriority(pod *api.Pod, podLister algorith counts := map[string]int{} if len(nsServicePods) > 0 { for _, pod := range nsServicePods { - counts[pod.Spec.Host]++ + counts[pod.Spec.NodeName]++ // Compute the maximum number of pods hosted on any minion - if counts[pod.Spec.Host] > maxCount { - maxCount = counts[pod.Spec.Host] + if counts[pod.Spec.NodeName] > maxCount { + maxCount = counts[pod.Spec.NodeName] } } } @@ -141,7 +141,7 @@ func (s *ServiceAntiAffinity) CalculateAntiAffinityPriority(pod *api.Pod, podLis podCounts := map[string]int{} for _, pod := range nsServicePods { - label, exists := labeledMinions[pod.Spec.Host] + label, exists := labeledMinions[pod.Spec.NodeName] if !exists { continue } diff --git a/plugin/pkg/scheduler/algorithm/priorities/spreading_test.go b/plugin/pkg/scheduler/algorithm/priorities/spreading_test.go index 0eddda7e509..1e5a2660b17 100644 --- a/plugin/pkg/scheduler/algorithm/priorities/spreading_test.go +++ b/plugin/pkg/scheduler/algorithm/priorities/spreading_test.go @@ -35,10 +35,10 @@ func TestServiceSpreadPriority(t *testing.T) { "baz": "blah", } zone1Spec := api.PodSpec{ - Host: "machine1", + NodeName: "machine1", } zone2Spec := api.PodSpec{ - Host: "machine2", + NodeName: "machine2", } tests := []struct { pod *api.Pod @@ -191,13 +191,13 @@ func TestZoneSpreadPriority(t *testing.T) { "name": "value", } zone0Spec := api.PodSpec{ - Host: "machine01", + NodeName: "machine01", } zone1Spec := api.PodSpec{ - Host: "machine11", + NodeName: "machine11", } zone2Spec := api.PodSpec{ - Host: "machine21", + NodeName: "machine21", } labeledNodes := map[string]map[string]string{ "machine01": nozone, "machine02": nozone, diff --git a/plugin/pkg/scheduler/factory/factory.go b/plugin/pkg/scheduler/factory/factory.go index 87515b45cdb..012a0d00084 100644 --- a/plugin/pkg/scheduler/factory/factory.go +++ b/plugin/pkg/scheduler/factory/factory.go @@ -267,7 +267,7 @@ func (factory *ConfigFactory) makeDefaultErrorFunc(backoff *podBackoff, podQueue } return } - if pod.Spec.Host == "" { + if pod.Spec.NodeName == "" { podQueue.Add(pod) } }() diff --git a/plugin/pkg/scheduler/scheduler.go b/plugin/pkg/scheduler/scheduler.go index 7d3830fcac2..f8debd02da6 100644 --- a/plugin/pkg/scheduler/scheduler.go +++ b/plugin/pkg/scheduler/scheduler.go @@ -142,7 +142,7 @@ func (s *Scheduler) scheduleOne() { s.config.Recorder.Eventf(pod, "scheduled", "Successfully assigned %v to %v", pod.Name, dest) // tell the model to assume that this binding took effect. assumed := *pod - assumed.Spec.Host = dest + assumed.Spec.NodeName = dest s.config.Modeler.AssumePod(&assumed) }) } diff --git a/plugin/pkg/scheduler/scheduler_test.go b/plugin/pkg/scheduler/scheduler_test.go index 39093a4c2e8..a712c6da4d9 100644 --- a/plugin/pkg/scheduler/scheduler_test.go +++ b/plugin/pkg/scheduler/scheduler_test.go @@ -42,7 +42,7 @@ func podWithID(id, desiredHost string) *api.Pod { return &api.Pod{ ObjectMeta: api.ObjectMeta{Name: id, SelfLink: testapi.SelfLink("pods", id)}, Spec: api.PodSpec{ - Host: desiredHost, + NodeName: desiredHost, }, } } diff --git a/test/e2e/es_cluster_logging.go b/test/e2e/es_cluster_logging.go index c505dce648c..294f54b085b 100644 --- a/test/e2e/es_cluster_logging.go +++ b/test/e2e/es_cluster_logging.go @@ -203,7 +203,7 @@ func ClusterLevelLoggingWithElasticsearch(c *client.Client) { Command: []string{"bash", "-c", fmt.Sprintf("i=0; while ((i < %d)); do echo \"%d %s $i %s\"; i=$$(($i+1)); done", countTo, i, taintName, podName)}, }, }, - Host: node.Name, + NodeName: node.Name, RestartPolicy: api.RestartPolicyNever, }, }) diff --git a/test/e2e/networking.go b/test/e2e/networking.go index b507eff7a24..057474a30cb 100644 --- a/test/e2e/networking.go +++ b/test/e2e/networking.go @@ -60,7 +60,7 @@ func LaunchNetTestPodPerNode(f *Framework, nodes *api.NodeList, name string) []s Ports: []api.ContainerPort{{ContainerPort: 8080}}, }, }, - Host: node.Name, + NodeName: node.Name, RestartPolicy: api.RestartPolicyNever, }, }) diff --git a/test/e2e/pd.go b/test/e2e/pd.go index 58441696a2e..d396d44665d 100644 --- a/test/e2e/pd.go +++ b/test/e2e/pd.go @@ -263,7 +263,7 @@ func testPDPod(diskName, targetHost string, readOnly bool) *api.Pod { }, }, }, - Host: targetHost, + NodeName: targetHost, }, } diff --git a/test/e2e/util.go b/test/e2e/util.go index b23707a7bd1..84b9be0b44f 100644 --- a/test/e2e/util.go +++ b/test/e2e/util.go @@ -128,8 +128,8 @@ func logPodStates(pods []api.Pod) { if len(pod.ObjectMeta.Name) > maxPodW { maxPodW = len(pod.ObjectMeta.Name) } - if len(pod.Spec.Host) > maxNodeW { - maxNodeW = len(pod.Spec.Host) + if len(pod.Spec.NodeName) > maxNodeW { + maxNodeW = len(pod.Spec.NodeName) } if len(pod.Status.Phase) > maxPhaseW { maxPhaseW = len(pod.Status.Phase) @@ -145,7 +145,7 @@ func logPodStates(pods []api.Pod) { maxPodW, "POD", maxNodeW, "NODE", maxPhaseW, "PHASE", "CONDITIONS") for _, pod := range pods { Logf("%-[1]*[2]s %-[3]*[4]s %-[5]*[6]s %[7]s", - maxPodW, pod.ObjectMeta.Name, maxNodeW, pod.Spec.Host, maxPhaseW, pod.Status.Phase, pod.Status.Conditions) + maxPodW, pod.ObjectMeta.Name, maxNodeW, pod.Spec.NodeName, maxPhaseW, pod.Status.Phase, pod.Status.Conditions) } Logf("") // Final empty line helps for readability. } @@ -156,12 +156,12 @@ func podRunningReady(p *api.Pod) (bool, error) { // Check the phase is running. if p.Status.Phase != api.PodRunning { return false, fmt.Errorf("want pod '%s' on '%s' to be '%v' but was '%v'", - p.ObjectMeta.Name, p.Spec.Host, api.PodRunning, p.Status.Phase) + p.ObjectMeta.Name, p.Spec.NodeName, api.PodRunning, p.Status.Phase) } // Check the ready condition is true. if !podReady(p) { return false, fmt.Errorf("pod '%s' on '%s' didn't have condition {%v %v}; conditions: %v", - p.ObjectMeta.Name, p.Spec.Host, api.PodReady, api.ConditionTrue, p.Status.Conditions) + p.ObjectMeta.Name, p.Spec.NodeName, api.PodReady, api.ConditionTrue, p.Status.Conditions) } return true, nil @@ -532,8 +532,8 @@ func testContainerOutputInNamespace(scenarioName string, c *client.Client, pod * Failf("Failed to get pod status: %v", err) } - By(fmt.Sprintf("Trying to get logs from host %s pod %s container %s: %v", - podStatus.Spec.Host, podStatus.Name, containerName, err)) + By(fmt.Sprintf("Trying to get logs from node %s pod %s container %s: %v", + podStatus.Spec.NodeName, podStatus.Name, containerName, err)) var logs []byte start := time.Now() @@ -542,15 +542,15 @@ func testContainerOutputInNamespace(scenarioName string, c *client.Client, pod * logs, err = c.Get(). Prefix("proxy"). Resource("nodes"). - Name(podStatus.Spec.Host). + Name(podStatus.Spec.NodeName). Suffix("containerLogs", ns, podStatus.Name, containerName). Do(). Raw() fmt.Sprintf("pod logs:%v\n", string(logs)) By(fmt.Sprintf("pod logs:%v\n", string(logs))) if strings.Contains(string(logs), "Internal Error") { - By(fmt.Sprintf("Failed to get logs from host %q pod %q container %q: %v", - podStatus.Spec.Host, podStatus.Name, containerName, string(logs))) + By(fmt.Sprintf("Failed to get logs from node %q pod %q container %q: %v", + podStatus.Spec.NodeName, podStatus.Name, containerName, string(logs))) time.Sleep(5 * time.Second) continue } @@ -613,15 +613,15 @@ func Diff(oldPods *api.PodList, curPods *api.PodList) PodDiff { // New pods will show up in the curPods list but not in oldPods. They have oldhostname/phase == nonexist. for _, pod := range curPods.Items { - podInfoMap[pod.Name] = &podInfo{hostname: pod.Spec.Host, phase: string(pod.Status.Phase), oldHostname: nonExist, oldPhase: nonExist} + podInfoMap[pod.Name] = &podInfo{hostname: pod.Spec.NodeName, phase: string(pod.Status.Phase), oldHostname: nonExist, oldPhase: nonExist} } // Deleted pods will show up in the oldPods list but not in curPods. They have a hostname/phase == nonexist. for _, pod := range oldPods.Items { if info, ok := podInfoMap[pod.Name]; ok { - info.oldHostname, info.oldPhase = pod.Spec.Host, string(pod.Status.Phase) + info.oldHostname, info.oldPhase = pod.Spec.NodeName, string(pod.Status.Phase) } else { - podInfoMap[pod.Name] = &podInfo{hostname: nonExist, phase: nonExist, oldHostname: pod.Spec.Host, oldPhase: string(pod.Status.Phase)} + podInfoMap[pod.Name] = &podInfo{hostname: nonExist, phase: nonExist, oldHostname: pod.Spec.NodeName, oldPhase: string(pod.Status.Phase)} } } return podInfoMap @@ -733,7 +733,7 @@ func RunRC(c *client.Client, name string, ns, image string, replicas int) error failedContainers = failedContainers + v.restarts } } else if p.Status.Phase == api.PodPending { - if p.Spec.Host == "" { + if p.Spec.NodeName == "" { waiting++ } else { pending++ diff --git a/test/integration/client_test.go b/test/integration/client_test.go index 9f193c211b6..097be311df6 100644 --- a/test/integration/client_test.go +++ b/test/integration/client_test.go @@ -102,7 +102,7 @@ func TestClient(t *testing.T) { if actual.Name != got.Name { t.Errorf("expected pod %#v, got %#v", got, actual) } - if actual.Spec.Host != "" { + if actual.Spec.NodeName != "" { t.Errorf("expected pod to be unscheduled, got %#v", actual) } } diff --git a/test/integration/framework/master_utils.go b/test/integration/framework/master_utils.go index 97aad0693ef..3ff952e3547 100644 --- a/test/integration/framework/master_utils.go +++ b/test/integration/framework/master_utils.go @@ -242,7 +242,7 @@ func StartPods(numPods int, host string, restClient *client.Client) error { // Make the rc unique to the given host. controller.Spec.Replicas = numPods - controller.Spec.Template.Spec.Host = host + controller.Spec.Template.Spec.NodeName = host controller.Name = controller.Name + host controller.Spec.Selector["host"] = host controller.Spec.Template.Labels["host"] = host diff --git a/test/integration/scheduler_test.go b/test/integration/scheduler_test.go index bcff273feb1..e1733929c7e 100644 --- a/test/integration/scheduler_test.go +++ b/test/integration/scheduler_test.go @@ -104,7 +104,7 @@ func podScheduled(c *client.Client, podNamespace, podName string) wait.Condition // This could be a connection error so we want to retry. return false, nil } - if pod.Spec.Host == "" { + if pod.Spec.NodeName == "" { return false, nil } return true, nil diff --git a/test/soak/serve_hostnames/serve_hostnames.go b/test/soak/serve_hostnames/serve_hostnames.go index 17bd5bc8859..629432f9d9b 100644 --- a/test/soak/serve_hostnames/serve_hostnames.go +++ b/test/soak/serve_hostnames/serve_hostnames.go @@ -185,7 +185,7 @@ func main() { Ports: []api.ContainerPort{{ContainerPort: 9376}}, }, }, - Host: node.Name, + NodeName: node.Name, }, }) glog.V(4).Infof("Pod create %s/%s request took %v", ns, podName, time.Since(t))