diff --git a/core/installer/tasks/activate.go b/core/installer/tasks/activate.go
index c6506aa..0980dee 100644
--- a/core/installer/tasks/activate.go
+++ b/core/installer/tasks/activate.go
@@ -47,7 +47,7 @@
 		for _, key := range ssPublicKeys {
 			fmt.Fprintf(&knownHosts, "%s %s\n", repoHost, key)
 		}
-		for _, tmpl := range tmpls.Templates() {
+		for _, tmpl := range tmpls.Templates() { // TODO(gio): migrate to cue
 			dstPath := path.Join("environments", env.Name, tmpl.Name())
 			dst, err := st.repo.Writer(dstPath)
 			if err != nil {
diff --git a/core/installer/tasks/infra.go b/core/installer/tasks/infra.go
index 995744c..d7ff235 100644
--- a/core/installer/tasks/infra.go
+++ b/core/installer/tasks/infra.go
@@ -81,7 +81,7 @@
   interval: 1m0s
   url: https://github.com/giolekva/pcloud
   ref:
-    branch: main
+    branch: cuelang
 `, env.Name)
 			if err != nil {
 				return err
@@ -114,29 +114,29 @@
 				return err
 			}
 			if err := st.appManager.Install(*app, st.nsGen, installer.NewSuffixGenerator("-ingress-private"), map[string]any{
-				"Name":       fmt.Sprintf("%s-ingress-private", env.Name),
-				"From":       ingressPrivateIP.String(),
-				"To":         ingressPrivateIP.String(),
-				"AutoAssign": false,
-				"Namespace":  "metallb-system",
+				"name":       fmt.Sprintf("%s-ingress-private", env.Name),
+				"from":       ingressPrivateIP.String(),
+				"to":         ingressPrivateIP.String(),
+				"autoAssign": false,
+				"namespace":  "metallb-system",
 			}); err != nil {
 				return err
 			}
 			if err := st.appManager.Install(*app, st.nsGen, installer.NewSuffixGenerator("-headscale"), map[string]any{
-				"Name":       fmt.Sprintf("%s-headscale", env.Name),
-				"From":       headscaleIP.String(),
-				"To":         headscaleIP.String(),
-				"AutoAssign": false,
-				"Namespace":  "metallb-system",
+				"name":       fmt.Sprintf("%s-headscale", env.Name),
+				"from":       headscaleIP.String(),
+				"to":         headscaleIP.String(),
+				"autoAssign": false,
+				"namespace":  "metallb-system",
 			}); err != nil {
 				return err
 			}
 			if err := st.appManager.Install(*app, st.nsGen, st.emptySuffixGen, map[string]any{
-				"Name":       env.Name,
-				"From":       "10.1.0.100", // TODO(gio): auto-generate
-				"To":         "10.1.0.254",
-				"AutoAssign": false,
-				"Namespace":  "metallb-system",
+				"name":       env.Name,
+				"from":       "10.1.0.100", // TODO(gio): auto-generate
+				"to":         "10.1.0.254",
+				"autoAssign": false,
+				"namespace":  "metallb-system",
 			}); err != nil {
 				return err
 			}
@@ -147,10 +147,10 @@
 				return err
 			}
 			if err := st.appManager.Install(*app, st.nsGen, st.emptySuffixGen, map[string]any{
-				"PrivateNetwork": map[string]any{
-					"Hostname": "private-network-proxy",
-					"Username": "private-network-proxy",
-					"IPSubnet": "10.1.0.0/24",
+				"privateNetwork": map[string]any{
+					"hostname": "private-network-proxy",
+					"username": "private-network-proxy",
+					"ipSubnet": "10.1.0.0/24",
 				},
 			}); err != nil {
 				return err
@@ -178,9 +178,9 @@
 			return err
 		}
 		if err := st.appManager.Install(*app, st.nsGen, st.emptySuffixGen, map[string]any{
-			"APIConfigMap": map[string]any{
-				"Name":      "api-config", // TODO(gio): take from global pcloud config
-				"Namespace": fmt.Sprintf("%s-dns-zone-manager", env.PCloudEnvName),
+			"apiConfigMap": map[string]any{
+				"name":      "api-config", // TODO(gio): take from global pcloud config
+				"namespace": fmt.Sprintf("%s-dns-zone-manager", env.PCloudEnvName),
 			},
 		}); err != nil {
 			return err
@@ -197,7 +197,7 @@
 			return err
 		}
 		if err := st.appManager.Install(*app, st.nsGen, st.emptySuffixGen, map[string]any{
-			"Subdomain": "test", // TODO(giolekva): make core-auth chart actually use this
+			"subdomain": "test", // TODO(giolekva): make core-auth chart actually use this
 		}); err != nil {
 			return err
 		}
@@ -217,7 +217,7 @@
 			return err
 		}
 		if err := st.appManager.Install(*app, st.nsGen, st.emptySuffixGen, map[string]any{
-			"Subdomain": "headscale",
+			"subdomain": "headscale",
 		}); err != nil {
 			return err
 		}
@@ -248,8 +248,8 @@
 			return err
 		}
 		if err := st.appManager.Install(*app, st.nsGen, st.emptySuffixGen, map[string]any{
-			"RepoAddr":      st.ssClient.GetRepoAddress("config"),
-			"SSHPrivateKey": string(keys.RawPrivateKey()),
+			"repoAddr":      st.ssClient.GetRepoAddress("config"),
+			"sshPrivateKey": string(keys.RawPrivateKey()),
 		}); err != nil {
 			return err
 		}
@@ -280,8 +280,8 @@
 			return err
 		}
 		if err := st.appManager.Install(*app, st.nsGen, st.emptySuffixGen, map[string]any{
-			"RepoAddr":      st.ssClient.GetRepoAddress("config"),
-			"SSHPrivateKey": string(keys.RawPrivateKey()),
+			"repoAddr":      st.ssClient.GetRepoAddress("config"),
+			"sshPrivateKey": string(keys.RawPrivateKey()),
 		}); err != nil {
 			return err
 		}
diff --git a/core/installer/tasks/init.go b/core/installer/tasks/init.go
index f3818e3..d41dde7 100644
--- a/core/installer/tasks/init.go
+++ b/core/installer/tasks/init.go
@@ -21,7 +21,7 @@
 func NewCreateConfigRepoTask(env Env, st *state) Task {
 	t := newLeafTask("Install Git server", func() error {
 		appsRepo := installer.NewInMemoryAppRepository(installer.CreateAllApps())
-		ssApp, err := appsRepo.Find("soft-serve")
+		ssApp, err := appsRepo.Find("config-repo")
 		if err != nil {
 			return err
 		}
@@ -35,14 +35,9 @@
 			return err
 		}
 		ssValues := map[string]any{
-			"ChartRepositoryNamespace": env.PCloudEnvName,
-			"ServiceType":              "ClusterIP",
-			"PrivateKey":               string(ssKeys.RawPrivateKey()),
-			"PublicKey":                string(ssKeys.RawAuthorizedKey()),
-			"AdminKey":                 string(ssAdminKeys.RawAuthorizedKey()),
-			"Ingress": map[string]any{
-				"Enabled": false,
-			},
+			"privateKey": string(ssKeys.RawPrivateKey()),
+			"publicKey":  string(ssKeys.RawAuthorizedKey()),
+			"adminKey":   string(ssAdminKeys.RawAuthorizedKey()),
 		}
 		derived := installer.Derived{
 			Global: installer.Values{
