diff --git a/apps/matrix/capture-config/main.go b/apps/matrix/capture-config/main.go
index b031fbb..08d7be2 100644
--- a/apps/matrix/capture-config/main.go
+++ b/apps/matrix/capture-config/main.go
@@ -10,9 +10,13 @@
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/client-go/kubernetes"
 	"k8s.io/client-go/rest"
+
+	"github.com/miracl/conflate"
 )
 
 var configFile = flag.String("config", "", "Path to the homeserver.yaml config file.")
+var configToMerge = flag.String("config-to-merge", "", "Name of the configmap to merge with generated one.")
+var toMergeFilename = flag.String("to-merge-filename", "", "Name of the file from config to merge.")
 var namespace = flag.String("namespace", "", "Namespace name.")
 var configMapName = flag.String("config-map-name", "", "Name of the ConfigMap to create.")
 
@@ -28,11 +32,7 @@
 	return cs
 }
 
-func createConfigFromFile() *v1.ConfigMap {
-	f, err := ioutil.ReadFile(*configFile)
-	if err != nil {
-		panic(err)
-	}
+func createConfig(data []byte) *v1.ConfigMap {
 	return &v1.ConfigMap{
 		TypeMeta: metav1.TypeMeta{
 			Kind:       "ConfigMap",
@@ -42,17 +42,35 @@
 			Name: *configMapName,
 		},
 		Data: map[string]string{
-			path.Base(*configFile): string(f),
+			path.Base(*configFile): string(data),
 		},
 	}
 }
 
 func main() {
 	flag.Parse()
-	config := createConfigFromFile()
 	client := createClient().CoreV1().ConfigMaps(*namespace)
-	_, err := client.Create(context.TODO(), config, metav1.CreateOptions{})
+	conf := conflate.New()
+	generated, err := ioutil.ReadFile(*configFile)
 	if err != nil {
 		panic(err)
 	}
+	if err := conf.AddData(generated); err != nil {
+		panic(err)
+	}
+	toMerge, err := client.Get(context.TODO(), *configToMerge, metav1.GetOptions{})
+	if err != nil {
+		panic(err)
+	}
+	if err := conf.AddData([]byte(toMerge.Data[*toMergeFilename])); err != nil {
+		panic(err)
+	}
+	merged, err := conf.MarshalYAML()
+	if err != nil {
+		panic(err)
+	}
+	config := createConfig(merged)
+	if _, err := client.Create(context.TODO(), config, metav1.CreateOptions{}); err != nil {
+		panic(err)
+	}
 }
