AppManager: cache helm charts and container images to local registry

Caching container images is disabled until we figure out how to run
container registry behind TLS.

Change-Id: I0253f2a862e5adddff18a82b102f67258151c070
diff --git a/core/installer/tasks/dns.go b/core/installer/tasks/dns.go
index 0424cfe..7db2c3a 100644
--- a/core/installer/tasks/dns.go
+++ b/core/installer/tasks/dns.go
@@ -60,10 +60,6 @@
 			}
 		}
 		{
-			app, err := installer.FindInfraApp(st.appsRepo, "dns-gateway")
-			if err != nil {
-				return err
-			}
 			cfg, err := st.infraAppManager.FindInstance("dns-gateway")
 			if err != nil {
 				return err
@@ -84,7 +80,7 @@
 				env.Domain,
 				env.Network.DNSInClusterIP.String(),
 			})
-			if _, err := st.infraAppManager.Update(app, "dns-gateway", map[string]any{
+			if _, err := st.infraAppManager.Update("dns-gateway", map[string]any{
 				"servers": servers,
 			}); err != nil {
 				return err
diff --git a/core/installer/tasks/env.go b/core/installer/tasks/env.go
index a38e5b1..20528a3 100644
--- a/core/installer/tasks/env.go
+++ b/core/installer/tasks/env.go
@@ -15,6 +15,8 @@
 type state struct {
 	infoListener    EnvInfoListener
 	nsCreator       installer.NamespaceCreator
+	jc              installer.JobCreator
+	hf              installer.HelmFetcher
 	dnsFetcher      installer.ZoneStatusFetcher
 	httpClient      http.Client
 	dnsClient       dns.Client
@@ -34,6 +36,8 @@
 func NewCreateEnvTask(
 	env installer.EnvConfig,
 	nsCreator installer.NamespaceCreator,
+	jc installer.JobCreator,
+	hf installer.HelmFetcher,
 	dnsFetcher installer.ZoneStatusFetcher,
 	httpClient http.Client,
 	dnsClient dns.Client,
@@ -45,6 +49,8 @@
 	st := state{
 		infoListener:    infoListener,
 		nsCreator:       nsCreator,
+		jc:              jc,
+		hf:              hf,
 		dnsFetcher:      dnsFetcher,
 		httpClient:      httpClient,
 		dnsClient:       dnsClient,
diff --git a/core/installer/tasks/infra.go b/core/installer/tasks/infra.go
index e71de44..6f02fa3 100644
--- a/core/installer/tasks/infra.go
+++ b/core/installer/tasks/infra.go
@@ -18,7 +18,7 @@
 		if err != nil {
 			return err
 		}
-		appManager, err := installer.NewAppManager(r, st.nsCreator, "/apps")
+		appManager, err := installer.NewAppManager(r, st.nsCreator, st.jc, st.hf, "/apps")
 		if err != nil {
 			return err
 		}
@@ -57,31 +57,10 @@
 			if err := soft.WriteYaml(r, "config.yaml", env); err != nil {
 				return "", err
 			}
-			out, err := r.Writer("pcloud-charts.yaml")
-			if err != nil {
-				return "", err
-			}
-			defer out.Close()
-			_, err = fmt.Fprintf(out, `
-apiVersion: source.toolkit.fluxcd.io/v1
-kind: GitRepository
-metadata:
-  name: pcloud
-  namespace: %s
-spec:
-  interval: 1m0s
-  url: https://github.com/giolekva/pcloud
-  ref:
-    branch: main
-`, env.Id)
-			if err != nil {
-				return "", err
-			}
 			rootKust, err := soft.ReadKustomization(r, "kustomization.yaml")
 			if err != nil {
 				return "", err
 			}
-			rootKust.AddResources("pcloud-charts.yaml")
 			if err := soft.WriteYaml(r, "kustomization.yaml", rootKust); err != nil {
 				return "", err
 			}