From ed526029b1dbff90544775aab5662ce2204d9a88 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Sun, 25 Mar 2018 23:40:36 +0100 Subject: [PATCH] poll trigger should react only to the same tag --- provider/kubernetes/unversioned_updates.go | 3 +- .../kubernetes/unversioned_updates_test.go | 58 +++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/provider/kubernetes/unversioned_updates.go b/provider/kubernetes/unversioned_updates.go index 7ef3ced7..a5506a92 100644 --- a/provider/kubernetes/unversioned_updates.go +++ b/provider/kubernetes/unversioned_updates.go @@ -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 } } diff --git a/provider/kubernetes/unversioned_updates_test.go b/provider/kubernetes/unversioned_updates_test.go index 5a52689d..93e93a31 100644 --- a/provider/kubernetes/unversioned_updates_test.go +++ b/provider/kubernetes/unversioned_updates_test.go @@ -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) {