From f65859bc251b23efb9be25c5666852342642a092 Mon Sep 17 00:00:00 2001 From: Jesse Suen Date: Thu, 12 Jul 2018 14:01:54 -0700 Subject: [PATCH] Label hooks so that the cluster resource watch will be notified about completions (#387) --- controller/sync.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/controller/sync.go b/controller/sync.go index 5557ec5d59..41875a34d9 100644 --- a/controller/sync.go +++ b/controller/sync.go @@ -27,6 +27,7 @@ import ( ) type syncContext struct { + appName string comparison *appv1.ComparisonResult config *rest.Config dynClientPool dynamic.ClientPool @@ -139,6 +140,7 @@ func (s *ksonnetAppStateManager) SyncAppState(app *appv1.Application, state *app } syncCtx := syncContext{ + appName: app.Name, comparison: comparison, config: restConfig, dynClientPool: dynClientPool, @@ -542,6 +544,11 @@ func (sc *syncContext) runHook(hook *unstructured.Unstructured, hookType appv1.H if !apierr.IsNotFound(err) { return false, fmt.Errorf("Failed to get status of %s hook %s '%s': %v", hookType, gvk, hook.GetName(), err) } + hook = hook.DeepCopy() + err = kube.SetLabel(hook, common.LabelApplicationName, sc.appName) + if err != nil { + sc.log.Warnf("Failed to set application label on hook %v: %v", hook, err) + } _, err := kube.ApplyResource(sc.config, hook, sc.namespace, false, false) if err != nil { return false, fmt.Errorf("Failed to create %s hook %s '%s': %v", hookType, gvk, hook.GetName(), err)