poll trigger should react only to the same tag

pull/167/head
Karolis Rusenas 2018-03-25 23:40:36 +01:00
parent a3e59bba18
commit ed526029b1
2 changed files with 60 additions and 1 deletions

View File

@ -64,7 +64,8 @@ func (p *Provider) checkUnversionedDeployment(policy types.PolicyType, repo *typ
// if poll trigger is used, also checking for matching versions
if _, ok := annotations[types.KeelPollScheduleAnnotation]; ok {
if eventRepoRef.Tag() != containerImageRef.Tag() {
if repo.Tag != containerImageRef.Tag() {
fmt.Printf("tags different, not updating (%s != %s) \n", eventRepoRef.Tag(), containerImageRef.Tag())
continue
}
}

View File

@ -213,6 +213,64 @@ func TestProvider_checkUnversionedDeployment(t *testing.T) {
wantShouldUpdateDeployment: true,
wantErr: false,
},
{
name: "poll trigger, same tag",
args: args{
policy: types.PolicyTypeForce,
repo: &types.Repository{Name: "karolisr/keel", Tag: "master"},
deployment: v1beta1.Deployment{
meta_v1.TypeMeta{},
meta_v1.ObjectMeta{
Name: "dep-1",
Namespace: "xxxx",
Annotations: map[string]string{types.KeelPollScheduleAnnotation: types.KeelPollDefaultSchedule},
Labels: map[string]string{types.KeelPolicyLabel: "force"},
},
v1beta1.DeploymentSpec{
Template: v1.PodTemplateSpec{
Spec: v1.PodSpec{
Containers: []v1.Container{
v1.Container{
Image: "karolisr/keel:master",
},
},
},
},
},
v1beta1.DeploymentStatus{},
},
},
wantUpdatePlan: &UpdatePlan{
Deployment: v1beta1.Deployment{
meta_v1.TypeMeta{},
meta_v1.ObjectMeta{
Name: "dep-1",
Namespace: "xxxx",
Annotations: map[string]string{
types.KeelPollScheduleAnnotation: types.KeelPollDefaultSchedule,
forceUpdateImageAnnotation: "karolisr/keel:master",
},
Labels: map[string]string{types.KeelPolicyLabel: "force"},
},
v1beta1.DeploymentSpec{
Template: v1.PodTemplateSpec{
Spec: v1.PodSpec{
Containers: []v1.Container{
v1.Container{
Image: "karolisr/keel:master",
},
},
},
},
},
v1beta1.DeploymentStatus{},
},
NewVersion: "master",
CurrentVersion: "master",
},
wantShouldUpdateDeployment: true,
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {