From 362bcf66e2526f74c0748a61e268ddf492643294 Mon Sep 17 00:00:00 2001 From: Vegar Sechmann Molvig Date: Fri, 12 Apr 2019 12:30:24 +0200 Subject: [PATCH 1/3] Draft for passing rollout reason annotation to deployment --- pkg/apis/naiserator/v1alpha1/types.go | 6 ++++-- pkg/resourcecreator/deployment.go | 10 +++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/pkg/apis/naiserator/v1alpha1/types.go b/pkg/apis/naiserator/v1alpha1/types.go index 5a276f2b..03d7fade 100644 --- a/pkg/apis/naiserator/v1alpha1/types.go +++ b/pkg/apis/naiserator/v1alpha1/types.go @@ -168,11 +168,13 @@ func (in Application) Hash() (string, error) { // struct including the relevant fields for // creating a hash of an Application object relevantValues := struct { - AppSpec ApplicationSpec - Labels map[string]string + AppSpec ApplicationSpec + Labels map[string]string + Annotations map[string]string }{ in.Spec, in.Labels, + in.Annotations, } h, err := hash.Hash(relevantValues, nil) diff --git a/pkg/resourcecreator/deployment.go b/pkg/resourcecreator/deployment.go index 3094f693..98442874 100644 --- a/pkg/resourcecreator/deployment.go +++ b/pkg/resourcecreator/deployment.go @@ -27,12 +27,20 @@ func Deployment(app *nais.Application, opts ResourceOptions) (*appsv1.Deployment if err != nil { return nil, err } + + objectMeta := app.CreateObjectMeta() + if val, ok := app.Annotations["kubernetes.io/change-cause"]; ok { + objectMeta.Annotations = map[string]string{ + "kubernetes.io/change-cause": val, + } + } + return &appsv1.Deployment{ TypeMeta: metav1.TypeMeta{ Kind: "Deployment", APIVersion: "apps/v1", }, - ObjectMeta: app.CreateObjectMeta(), + ObjectMeta: objectMeta, Spec: *spec, }, nil } From 8de73ea1dbb09f95f23ffb0f16e8a6baf087a17f Mon Sep 17 00:00:00 2001 From: Vegar Sechmann Molvig Date: Sat, 13 Apr 2019 11:41:53 +0200 Subject: [PATCH 2/3] use change-cause explicitly in hash --- pkg/apis/naiserator/v1alpha1/types.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/apis/naiserator/v1alpha1/types.go b/pkg/apis/naiserator/v1alpha1/types.go index 03d7fade..a55e549f 100644 --- a/pkg/apis/naiserator/v1alpha1/types.go +++ b/pkg/apis/naiserator/v1alpha1/types.go @@ -170,11 +170,11 @@ func (in Application) Hash() (string, error) { relevantValues := struct { AppSpec ApplicationSpec Labels map[string]string - Annotations map[string]string + ChangeCause string }{ in.Spec, in.Labels, - in.Annotations, + in.Annotations["kubernetes.io/change-cause"], } h, err := hash.Hash(relevantValues, nil) From 9fa59dcab6a27e90a92bc9c37da44510865cbc7f Mon Sep 17 00:00:00 2001 From: Vegar Sechmann Molvig Date: Mon, 27 May 2019 14:21:43 +0200 Subject: [PATCH 3/3] Assign specific annotations instead of creating new map Create new map if nil --- pkg/resourcecreator/deployment.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/resourcecreator/deployment.go b/pkg/resourcecreator/deployment.go index 98442874..cedf0f56 100644 --- a/pkg/resourcecreator/deployment.go +++ b/pkg/resourcecreator/deployment.go @@ -30,9 +30,11 @@ func Deployment(app *nais.Application, opts ResourceOptions) (*appsv1.Deployment objectMeta := app.CreateObjectMeta() if val, ok := app.Annotations["kubernetes.io/change-cause"]; ok { - objectMeta.Annotations = map[string]string{ - "kubernetes.io/change-cause": val, + if objectMeta.Annotations == nil { + objectMeta.Annotations = make(map[string]string) } + + objectMeta.Annotations["kubernetes.io/change-cause"] = val } return &appsv1.Deployment{