matrix: use resource renderer
diff --git a/apps/matrix/capture-config/.gitignore b/apps/capture-config/.gitignore
similarity index 100%
rename from apps/matrix/capture-config/.gitignore
rename to apps/capture-config/.gitignore
diff --git a/apps/capture-config/Dockerfile b/apps/capture-config/Dockerfile
new file mode 100644
index 0000000..d5b4767
--- /dev/null
+++ b/apps/capture-config/Dockerfile
@@ -0,0 +1,4 @@
+FROM gcr.io/distroless/static:nonroot
+ARG TARGETARCH
+
+COPY capture-config_${TARGETARCH} /capture-config
diff --git a/apps/capture-config/Makefile b/apps/capture-config/Makefile
new file mode 100644
index 0000000..a5e3014
--- /dev/null
+++ b/apps/capture-config/Makefile
@@ -0,0 +1,29 @@
+clean:
+ rm -f capture-config_*
+
+build_arm64: export CGO_ENABLED=0
+build_arm64: export GO111MODULE=on
+build_arm64: export GOOS=linux
+build_arm64: export GOARCH=arm64
+build_arm64:
+ go build -o capture-config_arm64 *.go
+
+build_amd64: export CGO_ENABLED=0
+build_amd64: export GO111MODULE=on
+build_amd64: export GOOS=linux
+build_amd64: export GOARCH=amd64
+build_amd64:
+ go build -o capture-config_amd64 *.go
+
+push_arm64: clean build_arm64
+ podman build --platform linux/arm64 --tag=giolekva/capture-config:arm64 .
+ podman push giolekva/capture-config:arm64
+
+push_amd64: clean build_amd64
+ podman build --platform linux/amd64 --tag=giolekva/capture-config:amd64 .
+ podman push giolekva/capture-config:amd64
+
+push: push_arm64 push_amd64
+ podman manifest create giolekva/capture-config:latest giolekva/capture-config:arm64 giolekva/capture-config:amd64
+ podman manifest push giolekva/capture-config:latest docker://docker.io/giolekva/capture-config:latest
+ podman manifest rm giolekva/capture-config:latest
diff --git a/apps/matrix/capture-config/go.mod b/apps/capture-config/go.mod
similarity index 100%
rename from apps/matrix/capture-config/go.mod
rename to apps/capture-config/go.mod
diff --git a/apps/matrix/capture-config/go.sum b/apps/capture-config/go.sum
similarity index 100%
rename from apps/matrix/capture-config/go.sum
rename to apps/capture-config/go.sum
diff --git a/apps/matrix/capture-config/main.go b/apps/capture-config/main.go
similarity index 66%
rename from apps/matrix/capture-config/main.go
rename to apps/capture-config/main.go
index 08d7be2..73b94d6 100644
--- a/apps/matrix/capture-config/main.go
+++ b/apps/capture-config/main.go
@@ -3,6 +3,7 @@
import (
"context"
"flag"
+ "fmt"
"io/ioutil"
"path"
@@ -14,9 +15,8 @@
"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 baseFile = flag.String("base", "", "Path to the homeserver.yaml config file.")
+var mergeWith = flag.String("merge-with", "", "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.")
@@ -32,7 +32,7 @@
return cs
}
-func createConfig(data []byte) *v1.ConfigMap {
+func newConig(data []byte) *v1.ConfigMap {
return &v1.ConfigMap{
TypeMeta: metav1.TypeMeta{
Kind: "ConfigMap",
@@ -42,7 +42,7 @@
Name: *configMapName,
},
Data: map[string]string{
- path.Base(*configFile): string(data),
+ path.Base(*baseFile): string(data),
},
}
}
@@ -51,25 +51,28 @@
flag.Parse()
client := createClient().CoreV1().ConfigMaps(*namespace)
conf := conflate.New()
- generated, err := ioutil.ReadFile(*configFile)
+ generated, err := ioutil.ReadFile(*baseFile)
if err != nil {
panic(err)
}
+ fmt.Printf("--- BASE:\n%s\n", string(generated))
if err := conf.AddData(generated); err != nil {
panic(err)
}
- toMerge, err := client.Get(context.TODO(), *configToMerge, metav1.GetOptions{})
+ mergeWith, err := ioutil.ReadFile(*mergeWith)
if err != nil {
panic(err)
}
- if err := conf.AddData([]byte(toMerge.Data[*toMergeFilename])); err != nil {
+ fmt.Printf("--- MERGE WITH:\n%s\n", string(mergeWith))
+ if err := conf.AddData(mergeWith); err != nil {
panic(err)
}
merged, err := conf.MarshalYAML()
if err != nil {
panic(err)
}
- config := createConfig(merged)
+ fmt.Printf("--- MERGED:\n%s\n", string(merged))
+ config := newConig(merged)
if _, err := client.Create(context.TODO(), config, metav1.CreateOptions{}); err != nil {
panic(err)
}
diff --git a/apps/matrix/capture-config/Dockerfile b/apps/matrix/capture-config/Dockerfile
deleted file mode 100644
index bcecf7b..0000000
--- a/apps/matrix/capture-config/Dockerfile
+++ /dev/null
@@ -1,6 +0,0 @@
-FROM alpine:latest
-
-ARG TARGETARCH
-
-COPY capture-config_${TARGETARCH} /usr/bin/capture-config
-RUN chmod +x /usr/bin/capture-config
diff --git a/apps/matrix/capture-config/Makefile b/apps/matrix/capture-config/Makefile
deleted file mode 100644
index c05687d..0000000
--- a/apps/matrix/capture-config/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-clean:
- rm -f capture-config_*
-
-build_arm64: export CGO_ENABLED=0
-build_arm64: export GO111MODULE=on
-build_arm64: export GOOS=linux
-build_arm64: export GOARCH=arm64
-build_arm64:
- go build -o capture-config_arm64 *.go
-
-build_amd64: export CGO_ENABLED=0
-build_amd64: export GO111MODULE=on
-build_amd64: export GOOS=linux
-build_amd64: export GOARCH=amd64
-build_amd64:
- go build -o capture-config_amd64 *.go
-
-build: clean build_arm64 build_amd64
-
-push: build
- docker buildx build --tag=giolekva/capture-config:latest . --platform=linux/arm64,linux/amd64 --push