Merge pull request #19510 from madhusudancs/daemonset-nonpointer-template

Auto commit by PR queue bot
This commit is contained in:
k8s-merge-robot 2016-01-29 02:17:23 -08:00
commit 8b66e93127
17 changed files with 8403 additions and 8475 deletions

File diff suppressed because it is too large Load Diff

View File

@ -374,7 +374,7 @@ type DaemonSetSpec struct {
// that matches the template's node selector (or on every node if no node
// selector is specified).
// More info: http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#pod-template
Template *api.PodTemplateSpec `json:"template,omitempty"`
Template api.PodTemplateSpec `json:"template"`
// Update strategy to replace existing DaemonSet pods with new pods.
UpdateStrategy DaemonSetUpdateStrategy `json:"updateStrategy,omitempty"`

View File

@ -443,14 +443,8 @@ func Convert_extensions_DaemonSetSpec_To_v1beta1_DaemonSetSpec(in *extensions.Da
} else {
out.Selector = nil
}
// unable to generate simple pointer conversion for api.PodTemplateSpec -> v1.PodTemplateSpec
if in.Template != nil {
out.Template = new(v1.PodTemplateSpec)
if err := Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in.Template, out.Template, s); err != nil {
return err
}
} else {
out.Template = nil
if err := Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
return err
}
if err := Convert_extensions_DaemonSetUpdateStrategy_To_v1beta1_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil {
return err
@ -473,14 +467,8 @@ func Convert_v1beta1_DaemonSetSpec_To_extensions_DaemonSetSpec(in *DaemonSetSpec
} else {
out.Selector = nil
}
// unable to generate simple pointer conversion for v1.PodTemplateSpec -> api.PodTemplateSpec
if in.Template != nil {
out.Template = new(api.PodTemplateSpec)
if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in.Template, out.Template, s); err != nil {
return err
}
} else {
out.Template = nil
if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
return err
}
if err := Convert_v1beta1_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil {
return err

View File

@ -2585,14 +2585,8 @@ func autoConvert_extensions_DaemonSetSpec_To_v1beta1_DaemonSetSpec(in *extension
} else {
out.Selector = nil
}
// unable to generate simple pointer conversion for api.PodTemplateSpec -> v1.PodTemplateSpec
if in.Template != nil {
out.Template = new(v1.PodTemplateSpec)
if err := Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in.Template, out.Template, s); err != nil {
return err
}
} else {
out.Template = nil
if err := Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
return err
}
if err := Convert_extensions_DaemonSetUpdateStrategy_To_v1beta1_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil {
return err
@ -3715,14 +3709,8 @@ func autoConvert_v1beta1_DaemonSetSpec_To_extensions_DaemonSetSpec(in *DaemonSet
} else {
out.Selector = nil
}
// unable to generate simple pointer conversion for v1.PodTemplateSpec -> api.PodTemplateSpec
if in.Template != nil {
out.Template = new(api.PodTemplateSpec)
if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in.Template, out.Template, s); err != nil {
return err
}
} else {
out.Template = nil
if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
return err
}
if err := Convert_v1beta1_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil {
return err

View File

@ -1055,13 +1055,8 @@ func deepCopy_v1beta1_DaemonSetSpec(in DaemonSetSpec, out *DaemonSetSpec, c *con
} else {
out.Selector = nil
}
if in.Template != nil {
out.Template = new(v1.PodTemplateSpec)
if err := deepCopy_v1_PodTemplateSpec(*in.Template, out.Template, c); err != nil {
return err
}
} else {
out.Template = nil
if err := deepCopy_v1_PodTemplateSpec(in.Template, &out.Template, c); err != nil {
return err
}
if err := deepCopy_v1beta1_DaemonSetUpdateStrategy(in.UpdateStrategy, &out.UpdateStrategy, c); err != nil {
return err

View File

@ -29,10 +29,8 @@ func addDefaultingFuncs(scheme *runtime.Scheme) {
}
},
func(obj *DaemonSet) {
var labels map[string]string
if obj.Spec.Template != nil {
labels = obj.Spec.Template.Labels
}
labels := obj.Spec.Template.Labels
// TODO: support templates defined elsewhere when we support them in the API
if labels != nil {
if obj.Spec.Selector == nil {

View File

@ -34,7 +34,7 @@ func TestSetDefaultDaemonSet(t *testing.T) {
defaultIntOrString := intstr.FromInt(1)
defaultLabels := map[string]string{"foo": "bar"}
period := int64(v1.DefaultTerminationGracePeriodSeconds)
defaultTemplate := &v1.PodTemplateSpec{
defaultTemplate := v1.PodTemplateSpec{
Spec: v1.PodSpec{
DNSPolicy: v1.DNSClusterFirst,
RestartPolicy: v1.RestartPolicyAlways,
@ -45,6 +45,14 @@ func TestSetDefaultDaemonSet(t *testing.T) {
Labels: defaultLabels,
},
}
templateNoLabel := v1.PodTemplateSpec{
Spec: v1.PodSpec{
DNSPolicy: v1.DNSClusterFirst,
RestartPolicy: v1.RestartPolicyAlways,
SecurityContext: &v1.PodSecurityContext{},
TerminationGracePeriodSeconds: &period,
},
}
tests := []struct {
original *DaemonSet
expected *DaemonSet
@ -116,6 +124,7 @@ func TestSetDefaultDaemonSet(t *testing.T) {
original: &DaemonSet{},
expected: &DaemonSet{
Spec: DaemonSetSpec{
Template: templateNoLabel,
UpdateStrategy: DaemonSetUpdateStrategy{
Type: RollingUpdateDaemonSetStrategyType,
RollingUpdate: &RollingUpdateDaemonSet{
@ -136,6 +145,7 @@ func TestSetDefaultDaemonSet(t *testing.T) {
},
expected: &DaemonSet{
Spec: DaemonSetSpec{
Template: templateNoLabel,
UpdateStrategy: DaemonSetUpdateStrategy{
Type: RollingUpdateDaemonSetStrategyType,
RollingUpdate: &RollingUpdateDaemonSet{
@ -157,6 +167,7 @@ func TestSetDefaultDaemonSet(t *testing.T) {
},
expected: &DaemonSet{
Spec: DaemonSetSpec{
Template: templateNoLabel,
UpdateStrategy: DaemonSetUpdateStrategy{
Type: RollingUpdateDaemonSetStrategyType,
RollingUpdate: &RollingUpdateDaemonSet{

File diff suppressed because it is too large Load Diff

View File

@ -364,7 +364,7 @@ type DaemonSetSpec struct {
// that matches the template's node selector (or on every node if no node
// selector is specified).
// More info: http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#pod-template
Template *v1.PodTemplateSpec `json:"template,omitempty"`
Template v1.PodTemplateSpec `json:"template"`
// Update strategy to replace existing DaemonSet pods with new pods.
UpdateStrategy DaemonSetUpdateStrategy `json:"updateStrategy,omitempty"`

View File

@ -164,7 +164,7 @@ func ValidateDaemonSetStatusUpdate(controller, oldController *extensions.DaemonS
}
// ValidateDaemonSetTemplateUpdate tests that certain fields in the daemon set's pod template are not updated.
func ValidateDaemonSetTemplateUpdate(podTemplate, oldPodTemplate *api.PodTemplateSpec, fldPath *field.Path) field.ErrorList {
func ValidateDaemonSetTemplateUpdate(podTemplate, oldPodTemplate api.PodTemplateSpec, fldPath *field.Path) field.ErrorList {
allErrs := field.ErrorList{}
podSpec := podTemplate.Spec
// podTemplate.Spec is not a pointer, so we can modify NodeSelector and NodeName directly.
@ -210,20 +210,14 @@ func ValidateDaemonSetUpdateStrategy(strategy *extensions.DaemonSetUpdateStrateg
func ValidateDaemonSetSpec(spec *extensions.DaemonSetSpec, fldPath *field.Path) field.ErrorList {
allErrs := field.ErrorList{}
// The order of these checks is important because spec.Template is tested for nil value here
// before accessing its labels in the following check.
if spec.Template == nil {
allErrs = append(allErrs, field.Required(fldPath.Child("template"), ""))
return allErrs
}
allErrs = append(allErrs, ValidateLabelSelector(spec.Selector, fldPath.Child("selector"))...)
selector, err := extensions.LabelSelectorAsSelector(spec.Selector)
if err == nil && !selector.Matches(labels.Set(spec.Template.Labels)) {
allErrs = append(allErrs, field.Invalid(fldPath.Child("template", "metadata", "labels"), spec.Template.Labels, "`selector` does not match template `labels`"))
}
allErrs = append(allErrs, apivalidation.ValidatePodTemplateSpec(spec.Template, fldPath.Child("template"))...)
allErrs = append(allErrs, apivalidation.ValidatePodTemplateSpec(&spec.Template, fldPath.Child("template"))...)
// Daemons typically run on more than one node, so mark Read-Write persistent disks as invalid.
allErrs = append(allErrs, apivalidation.ValidateReadOnlyPersistentDisks(spec.Template.Spec.Volumes, fldPath.Child("template", "spec", "volumes"))...)
// RestartPolicy has already been first-order validated as per ValidatePodTemplateSpec().

View File

@ -376,7 +376,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
Template: validPodTemplateAbc.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -384,7 +384,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
Template: validPodTemplateAbc.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -394,7 +394,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
Template: validPodTemplateAbc.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -402,7 +402,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector2},
Template: &validPodTemplateAbc2.Template,
Template: validPodTemplateAbc2.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -412,7 +412,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
Template: validPodTemplateAbc.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -420,7 +420,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateNodeSelector.Template,
Template: validPodTemplateNodeSelector.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -439,7 +439,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
Template: validPodTemplateAbc.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -447,7 +447,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
Template: validPodTemplateAbc.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -457,7 +457,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
Template: validPodTemplateAbc.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -465,7 +465,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: invalidSelector},
Template: &validPodTemplateAbc.Template,
Template: validPodTemplateAbc.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -475,7 +475,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
Template: validPodTemplateAbc.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -483,7 +483,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &invalidPodTemplate.Template,
Template: invalidPodTemplate.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -493,7 +493,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
Template: validPodTemplateAbc.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -501,7 +501,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateDef.Template,
Template: validPodTemplateDef.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -511,7 +511,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
Template: validPodTemplateAbc.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -519,7 +519,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &readWriteVolumePodTemplate.Template,
Template: readWriteVolumePodTemplate.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -529,7 +529,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
Template: validPodTemplateAbc.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -537,7 +537,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: invalidSelector},
Template: &validPodTemplateAbc.Template,
Template: validPodTemplateAbc.Template,
UpdateStrategy: extensions.DaemonSetUpdateStrategy{
Type: extensions.RollingUpdateDaemonSetStrategyType,
RollingUpdate: nil,
@ -590,7 +590,7 @@ func TestValidateDaemonSet(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
Template: validPodTemplate.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -598,7 +598,7 @@ func TestValidateDaemonSet(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "abc-123", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
Template: validPodTemplate.Template,
UpdateStrategy: validUpdateStrategy,
},
},
@ -614,27 +614,27 @@ func TestValidateDaemonSet(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
Template: validPodTemplate.Template,
},
},
"missing-namespace": {
ObjectMeta: api.ObjectMeta{Name: "abc-123"},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
Template: validPodTemplate.Template,
},
},
"empty selector": {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Template: &validPodTemplate.Template,
Template: validPodTemplate.Template,
},
},
"selector_doesnt_match": {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
Template: &validPodTemplate.Template,
Template: validPodTemplate.Template,
},
},
"invalid template": {
@ -653,7 +653,7 @@ func TestValidateDaemonSet(t *testing.T) {
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
Template: validPodTemplate.Template,
},
},
"invalid_label 2": {
@ -665,7 +665,7 @@ func TestValidateDaemonSet(t *testing.T) {
},
},
Spec: extensions.DaemonSetSpec{
Template: &invalidPodTemplate.Template,
Template: invalidPodTemplate.Template,
},
},
"invalid_annotation": {
@ -678,7 +678,7 @@ func TestValidateDaemonSet(t *testing.T) {
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
Template: validPodTemplate.Template,
},
},
"invalid restart policy 1": {
@ -688,7 +688,7 @@ func TestValidateDaemonSet(t *testing.T) {
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &api.PodTemplateSpec{
Template: api.PodTemplateSpec{
Spec: api.PodSpec{
RestartPolicy: api.RestartPolicyOnFailure,
DNSPolicy: api.DNSClusterFirst,
@ -707,7 +707,7 @@ func TestValidateDaemonSet(t *testing.T) {
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &api.PodTemplateSpec{
Template: api.PodTemplateSpec{
Spec: api.PodSpec{
RestartPolicy: api.RestartPolicyNever,
DNSPolicy: api.DNSClusterFirst,
@ -726,7 +726,7 @@ func TestValidateDaemonSet(t *testing.T) {
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
Template: validPodTemplate.Template,
UpdateStrategy: extensions.DaemonSetUpdateStrategy{
Type: "",
RollingUpdate: &extensions.RollingUpdateDaemonSet{
@ -742,7 +742,7 @@ func TestValidateDaemonSet(t *testing.T) {
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
Template: validPodTemplate.Template,
UpdateStrategy: extensions.DaemonSetUpdateStrategy{
Type: extensions.RollingUpdateDaemonSetStrategyType,
RollingUpdate: nil,
@ -756,7 +756,7 @@ func TestValidateDaemonSet(t *testing.T) {
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
Template: validPodTemplate.Template,
UpdateStrategy: extensions.DaemonSetUpdateStrategy{
Type: extensions.RollingUpdateDaemonSetStrategyType,
RollingUpdate: &extensions.RollingUpdateDaemonSet{
@ -773,7 +773,7 @@ func TestValidateDaemonSet(t *testing.T) {
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
Template: validPodTemplate.Template,
UpdateStrategy: extensions.DaemonSetUpdateStrategy{
Type: extensions.RollingUpdateDaemonSetStrategyType,
RollingUpdate: &extensions.RollingUpdateDaemonSet{
@ -790,7 +790,7 @@ func TestValidateDaemonSet(t *testing.T) {
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
Template: validPodTemplate.Template,
UpdateStrategy: extensions.DaemonSetUpdateStrategy{
Type: extensions.RollingUpdateDaemonSetStrategyType,
RollingUpdate: &extensions.RollingUpdateDaemonSet{
@ -807,7 +807,7 @@ func TestValidateDaemonSet(t *testing.T) {
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
Template: validPodTemplate.Template,
UpdateStrategy: extensions.DaemonSetUpdateStrategy{
Type: extensions.RollingUpdateDaemonSetStrategyType,
RollingUpdate: &extensions.RollingUpdateDaemonSet{

View File

@ -52,7 +52,7 @@ func TestListDaemonSets(t *testing.T) {
},
},
Spec: extensions.DaemonSetSpec{
Template: &api.PodTemplateSpec{},
Template: api.PodTemplateSpec{},
},
},
},
@ -80,7 +80,7 @@ func TestGetDaemonSet(t *testing.T) {
},
},
Spec: extensions.DaemonSetSpec{
Template: &api.PodTemplateSpec{},
Template: api.PodTemplateSpec{},
},
},
},
@ -120,7 +120,7 @@ func TestUpdateDaemonSet(t *testing.T) {
},
},
Spec: extensions.DaemonSetSpec{
Template: &api.PodTemplateSpec{},
Template: api.PodTemplateSpec{},
},
},
},
@ -148,7 +148,7 @@ func TestUpdateDaemonSetUpdateStatus(t *testing.T) {
},
},
Spec: extensions.DaemonSetSpec{
Template: &api.PodTemplateSpec{},
Template: api.PodTemplateSpec{},
},
Status: extensions.DaemonSetStatus{},
},
@ -188,7 +188,7 @@ func TestCreateDaemonSet(t *testing.T) {
},
},
Spec: extensions.DaemonSetSpec{
Template: &api.PodTemplateSpec{},
Template: api.PodTemplateSpec{},
},
},
},

View File

@ -434,7 +434,7 @@ func (dsc *DaemonSetsController) manage(ds *extensions.DaemonSet) {
for i := 0; i < createDiff; i++ {
go func(ix int) {
defer createWait.Done()
if err := dsc.podControl.CreatePodsOnNode(nodesNeedingDaemonPods[ix], ds.Namespace, ds.Spec.Template, ds); err != nil {
if err := dsc.podControl.CreatePodsOnNode(nodesNeedingDaemonPods[ix], ds.Namespace, &ds.Spec.Template, ds); err != nil {
glog.V(2).Infof("Failed creation, decrementing expectations for set %q/%q", ds.Namespace, ds.Name)
dsc.expectations.CreationObserved(dsKey)
util.HandleError(err)

View File

@ -59,7 +59,7 @@ func newDaemonSet(name string) *extensions.DaemonSet {
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: simpleDaemonSetLabel},
Template: &api.PodTemplateSpec{
Template: api.PodTemplateSpec{
ObjectMeta: api.ObjectMeta{
Labels: simpleDaemonSetLabel,
},

View File

@ -960,11 +960,7 @@ func (d *DaemonSetDescriber) Describe(namespace, name string) (string, error) {
func describeDaemonSet(daemon *extensions.DaemonSet, events *api.EventList, running, waiting, succeeded, failed int) (string, error) {
return tabbedString(func(out io.Writer) error {
fmt.Fprintf(out, "Name:\t%s\n", daemon.Name)
if daemon.Spec.Template != nil {
fmt.Fprintf(out, "Image(s):\t%s\n", makeImageList(&daemon.Spec.Template.Spec))
} else {
fmt.Fprintf(out, "Image(s):\t%s\n", "<no template>")
}
fmt.Fprintf(out, "Image(s):\t%s\n", makeImageList(&daemon.Spec.Template.Spec))
selector, err := extensions.LabelSelectorAsSelector(daemon.Spec.Selector)
if err != nil {
// this shouldn't happen if LabelSelector passed validation

View File

@ -44,7 +44,7 @@ func newValidDaemonSet() *extensions.DaemonSet {
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"a": "b"}},
Template: &api.PodTemplateSpec{
Template: api.PodTemplateSpec{
ObjectMeta: api.ObjectMeta{
Labels: map[string]string{"a": "b"},
},

View File

@ -90,7 +90,7 @@ var _ = Describe("Daemon set [Feature:DaemonSet]", func() {
Name: dsName,
},
Spec: extensions.DaemonSetSpec{
Template: &api.PodTemplateSpec{
Template: api.PodTemplateSpec{
ObjectMeta: api.ObjectMeta{
Labels: label,
},
@ -148,7 +148,7 @@ var _ = Describe("Daemon set [Feature:DaemonSet]", func() {
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.LabelSelector{MatchLabels: complexLabel},
Template: &api.PodTemplateSpec{
Template: api.PodTemplateSpec{
ObjectMeta: api.ObjectMeta{
Labels: complexLabel,
},