From 02116d4bfcd1b8f6212ec08f2c8957b1cbc9e5c0 Mon Sep 17 00:00:00 2001 From: Jesse Suen Date: Thu, 13 Sep 2018 14:02:04 -0700 Subject: [PATCH] Fix comparison failure when app contains unregistered custom resource (issue #583) (#596) --- controller/state.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/controller/state.go b/controller/state.go index 7849d2221e..d9588082f5 100644 --- a/controller/state.go +++ b/controller/state.go @@ -8,6 +8,7 @@ import ( "time" log "github.com/sirupsen/logrus" + apierr "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/types" @@ -191,11 +192,15 @@ func (s *ksonnetAppStateManager) getLiveObjs(app *v1alpha1.Application, targetOb } apiResource, err := kubeutil.ServerResourceForGroupVersionKind(disco, gvk) if err != nil { - return nil, nil, err - } - liveObj, err = kubeutil.GetLiveResource(dclient, targetObj, apiResource, app.Spec.Destination.Namespace) - if err != nil { - return nil, nil, err + if !apierr.IsNotFound(err) { + return nil, nil, err + } + // If we get here, the app is comprised of a custom resource which has yet to be registered + } else { + liveObj, err = kubeutil.GetLiveResource(dclient, targetObj, apiResource, app.Spec.Destination.Namespace) + if err != nil { + return nil, nil, err + } } } controlledLiveObj[i] = liveObj