installer: call reconciler on app install/update/remove
diff --git a/core/installer/tasks/reconciler.go b/core/installer/tasks/reconciler.go
new file mode 100644
index 0000000..461ffc8
--- /dev/null
+++ b/core/installer/tasks/reconciler.go
@@ -0,0 +1,38 @@
+package tasks
+
+import (
+ "context"
+ "fmt"
+ "net/http"
+ "time"
+)
+
+type Reconciler interface {
+ Reconcile(ctx context.Context)
+}
+
+type fluxcdReconciler struct {
+ resources []string
+}
+
+func NewFluxcdReconciler(addr, name string) Reconciler {
+ return fluxcdReconciler{
+ resources: []string{
+ fmt.Sprintf("%s/source/git/%s/%s/reconcile", addr, name, name),
+ fmt.Sprintf("%s/kustomization/%s/%s/reconcile", addr, name, name),
+ },
+ }
+}
+
+func (r fluxcdReconciler) Reconcile(ctx context.Context) {
+ for {
+ select {
+ case <-time.After(30 * time.Second):
+ for _, res := range r.resources {
+ http.Get(res)
+ }
+ case <-ctx.Done():
+ return
+ }
+ }
+}