core-controllers: multi-arch container images
diff --git a/core/headscale/controller/Makefile b/core/headscale/controller/Makefile
index e1f6077..d32e0e4 100644
--- a/core/headscale/controller/Makefile
+++ b/core/headscale/controller/Makefile
@@ -68,13 +68,35 @@
 run: manifests generate fmt vet ## Run a controller from your host.
 	go run ./main.go --headscale-api=localhost:8081
 
+clean:
+	rm -rf manager_arm64 manager_amd64
+
+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 -a -o manager_arm64 main.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 -a -o manager_amd64 main.go
+
 .PHONY: docker-build
-docker-build: test ## Build docker image with the manager.
-	podman build -t ${IMG} .
+docker-build: test clean build_arm64 build_amd64 ## Build docker image with the manager.
+	podman build --platform linux/arm64 --tag ${IMG}-arm64 .
+	podman build --platform linux/amd64 --tag ${IMG}-amd64 .
 
 .PHONY: docker-push
 docker-push: ## Push docker image with the manager.
-	podman push ${IMG}
+	podman push ${IMG}-arm64
+	podman push ${IMG}-amd64
+	podman manifest create ${IMG} ${IMG}-arm64 ${IMG}-amd64
+	podman manifest push ${IMG} docker://docker.io/${IMG}
+	podman manifest rm ${IMG}
 
 ##@ Deployment