resource-renderer: add status ready
diff --git a/core/resource-renderer/controllers/resourcerenderer_controller.go b/core/resource-renderer/controllers/resourcerenderer_controller.go
index 5ad21b9..8a57996 100644
--- a/core/resource-renderer/controllers/resourcerenderer_controller.go
+++ b/core/resource-renderer/controllers/resourcerenderer_controller.go
@@ -20,6 +20,7 @@
 	"bytes"
 	"context"
 	"text/template"
+	"time"
 
 	corev1 "k8s.io/api/core/v1"
 	"k8s.io/apimachinery/pkg/runtime"
@@ -61,7 +62,10 @@
 		Namespace: req.Namespace,
 		Name:      req.Name,
 	}, resource); err != nil {
-		return ctrl.Result{}, err
+		return ctrl.Result{RequeueAfter: time.Minute}, err
+	}
+	if resource.Status.Ready {
+		return ctrl.Result{}, nil
 	}
 	secret := &corev1.Secret{}
 	ns := resource.Spec.SecretNamespace
@@ -72,7 +76,7 @@
 		Namespace: ns,
 		Name:      resource.Spec.SecretName,
 	}, secret); err != nil {
-		return ctrl.Result{}, err
+		return ctrl.Result{RequeueAfter: time.Minute}, err
 	}
 	data := make(map[string]string)
 	for key, value := range secret.Data {
@@ -80,20 +84,23 @@
 	}
 	tmpl, err := template.New("resource").Parse(resource.Spec.ResourceTemplate)
 	if err != nil {
-		return ctrl.Result{}, err
+		return ctrl.Result{RequeueAfter: time.Minute}, err
 	}
 	var rendered bytes.Buffer
 	if err := tmpl.Execute(&rendered, data); err != nil {
-		return ctrl.Result{}, err
+		return ctrl.Result{RequeueAfter: time.Minute}, err
 	}
 	config := &corev1.ConfigMap{}
 	if err := yaml.Unmarshal(rendered.Bytes(), config); err != nil {
-		return ctrl.Result{}, err
+		return ctrl.Result{RequeueAfter: time.Minute}, err
 	}
 	if err := r.Create(context.Background(), config); err != nil {
-		return ctrl.Result{}, err
+		return ctrl.Result{RequeueAfter: time.Minute}, err
 	}
-
+	resource.Status.Ready = true
+	if err := r.Status().Update(context.Background(), resource); err != nil {
+		return ctrl.Result{RequeueAfter: time.Minute}, err
+	}
 	return ctrl.Result{}, nil
 }