Skip to content

Commit

Permalink
Merge pull request #38574 from k82cn/k8s_38542
Browse files Browse the repository at this point in the history
Automatic merge from submit-queue

Add default imagePullPolicy for initContainers.

fixes #38542
  • Loading branch information
Kubernetes Submit Queue committed Jan 2, 2017
2 parents 3fe288d + cd6792a commit cc0b17e
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 1 deletion.
6 changes: 6 additions & 0 deletions pkg/api/v1/conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -493,6 +493,12 @@ func Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in *PodTemplateSpec, out
// taking responsibility to ensure mutation of in is not exposed
// back to the caller.
in.Spec.InitContainers = values

// Call defaulters explicitly until annotations are removed
for i := range in.Spec.InitContainers {
c := &in.Spec.InitContainers[i]
SetDefaults_Container(c)
}
}

if err := autoConvert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in, out, s); err != nil {
Expand Down
1 change: 0 additions & 1 deletion pkg/api/v1/defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ func SetDefaults_Container(obj *Container) {
_, tag, _, _ := parsers.ParseImageName(obj.Image)

// Check image tag

if tag == "latest" {
obj.ImagePullPolicy = PullAlways
} else {
Expand Down
67 changes: 67 additions & 0 deletions pkg/api/v1/defaults_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ limitations under the License.
package v1_test

import (
"encoding/json"
"reflect"
"testing"

Expand Down Expand Up @@ -230,6 +231,72 @@ func TestSetDefaultReplicationControllerReplicas(t *testing.T) {
}
}

func TestSetDefaultReplicationControllerImagePullPolicy(t *testing.T) {
containersWithoutPullPolicy, _ := json.Marshal([]map[string]interface{}{
{
"name": "install",
"image": "busybox:latest",
},
})

containersWithPullPolicy, _ := json.Marshal([]map[string]interface{}{
{
"name": "install",
"imagePullPolicy": "IfNotPresent",
},
})

tests := []struct {
rc versioned.ReplicationController
expectPullPolicy versioned.PullPolicy
}{
{
rc: versioned.ReplicationController{
Spec: versioned.ReplicationControllerSpec{
Template: &versioned.PodTemplateSpec{
ObjectMeta: versioned.ObjectMeta{
Annotations: map[string]string{
"pod.beta.kubernetes.io/init-containers": string(containersWithoutPullPolicy),
},
},
},
},
},
expectPullPolicy: versioned.PullAlways,
},
{
rc: versioned.ReplicationController{
Spec: versioned.ReplicationControllerSpec{
Template: &versioned.PodTemplateSpec{
ObjectMeta: versioned.ObjectMeta{
Annotations: map[string]string{
"pod.beta.kubernetes.io/init-containers": string(containersWithPullPolicy),
},
},
},
},
},
expectPullPolicy: versioned.PullIfNotPresent,
},
}

for _, test := range tests {
rc := &test.rc
obj2 := roundTrip(t, runtime.Object(rc))
rc2, ok := obj2.(*versioned.ReplicationController)
if !ok {
t.Errorf("unexpected object: %v", rc2)
t.FailNow()
}
if test.expectPullPolicy != rc2.Spec.Template.Spec.InitContainers[0].ImagePullPolicy {
t.Errorf("expected ImagePullPolicy: %s, got: %s",
test.expectPullPolicy,
rc2.Spec.Template.Spec.InitContainers[0].ImagePullPolicy,
)
}
}
}

func TestSetDefaultService(t *testing.T) {
svc := &versioned.Service{}
obj2 := roundTrip(t, runtime.Object(svc))
Expand Down

0 comments on commit cc0b17e

Please sign in to comment.