From a3e59bba18485e153e52dfc589b35cf3425cbfdb Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Sun, 25 Mar 2018 23:25:59 +0100 Subject: [PATCH] only update same tag if poll trigger is used on new event --- provider/kubernetes/unversioned_updates.go | 10 ++++- .../kubernetes/unversioned_updates_test.go | 37 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/provider/kubernetes/unversioned_updates.go b/provider/kubernetes/unversioned_updates.go index f6b55b8c..7ef3ced7 100644 --- a/provider/kubernetes/unversioned_updates.go +++ b/provider/kubernetes/unversioned_updates.go @@ -11,7 +11,6 @@ import ( log "github.com/sirupsen/logrus" ) -// func (p *Provider) checkUnversionedDeployment(policy types.PolicyType, repo *types.Repository, deployment v1beta1.Deployment) (updated v1beta1.Deployment, shouldUpdateDeployment bool, err error) { func (p *Provider) checkUnversionedDeployment(policy types.PolicyType, repo *types.Repository, deployment v1beta1.Deployment) (updatePlan *UpdatePlan, shouldUpdateDeployment bool, err error) { updatePlan = &UpdatePlan{} @@ -28,6 +27,8 @@ func (p *Provider) checkUnversionedDeployment(policy types.PolicyType, repo *typ "policy": policy, }).Info("provider.kubernetes.checkVersionedDeployment: keel policy found, checking deployment...") + annotations := deployment.GetAnnotations() + shouldUpdateDeployment = false for idx, c := range deployment.Spec.Template.Spec.Containers { @@ -61,6 +62,13 @@ func (p *Provider) checkUnversionedDeployment(policy types.PolicyType, repo *typ continue } + // if poll trigger is used, also checking for matching versions + if _, ok := annotations[types.KeelPollScheduleAnnotation]; ok { + if eventRepoRef.Tag() != containerImageRef.Tag() { + continue + } + } + // updating image if containerImageRef.Registry() == image.DefaultRegistryHostname { c.Image = fmt.Sprintf("%s:%s", containerImageRef.ShortName(), repo.Tag) diff --git a/provider/kubernetes/unversioned_updates_test.go b/provider/kubernetes/unversioned_updates_test.go index 3c5c2cfe..5a52689d 100644 --- a/provider/kubernetes/unversioned_updates_test.go +++ b/provider/kubernetes/unversioned_updates_test.go @@ -121,6 +121,43 @@ func TestProvider_checkUnversionedDeployment(t *testing.T) { wantShouldUpdateDeployment: false, wantErr: false, }, + { + name: "different tag name for poll image", + args: args{ + policy: types.PolicyTypeForce, + repo: &types.Repository{Name: "gcr.io/v2-namespace/hello-world", 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: "all", + }, + }, + v1beta1.DeploymentSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + v1.Container{ + Image: "gcr.io/v2-namespace/hello-world:alpha", + }, + }, + }, + }, + }, + v1beta1.DeploymentStatus{}, + }, + }, + wantUpdatePlan: &UpdatePlan{ + Deployment: v1beta1.Deployment{}, + }, + wantShouldUpdateDeployment: false, + wantErr: false, + }, { name: "dockerhub short image name ", args: args{