mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-06-25 06:30:45 -04:00
metadata-api: support dnsmasq (#3115)
This commit is contained in:
parent
37e46b98c2
commit
21c30ebb76
18 changed files with 304 additions and 270 deletions
|
@ -13,29 +13,38 @@ import (
|
|||
"log/slog"
|
||||
"os"
|
||||
|
||||
"github.com/edgelesssys/constellation/v2/hack/qemu-metadata-api/dhcp/dnsmasq"
|
||||
"github.com/edgelesssys/constellation/v2/hack/qemu-metadata-api/dhcp/virtwrapper"
|
||||
"github.com/edgelesssys/constellation/v2/hack/qemu-metadata-api/server"
|
||||
"github.com/edgelesssys/constellation/v2/hack/qemu-metadata-api/virtwrapper"
|
||||
"github.com/edgelesssys/constellation/v2/internal/logger"
|
||||
"libvirt.org/go/libvirt"
|
||||
)
|
||||
|
||||
func main() {
|
||||
bindPort := flag.String("port", "8080", "Port to bind to")
|
||||
targetNetwork := flag.String("network", "constellation-network", "Name of the network in QEMU to use")
|
||||
targetNetwork := flag.String("network", "constellation-network", "Name of the network in libvirt")
|
||||
libvirtURI := flag.String("libvirt-uri", "qemu:///system", "URI of the libvirt connection")
|
||||
leasesFileName := flag.String("dnsmasq-leases", "", "Path to the dnsmasq leases file")
|
||||
initSecretHash := flag.String("initsecrethash", "", "brcypt hash of the init secret")
|
||||
flag.Parse()
|
||||
|
||||
log := logger.NewJSONLogger(slog.LevelInfo)
|
||||
|
||||
conn, err := libvirt.NewConnect(*libvirtURI)
|
||||
if err != nil {
|
||||
log.With(slog.Any("error", err)).Error("Failed to connect to libvirt")
|
||||
os.Exit(1)
|
||||
var leaseGetter server.LeaseGetter
|
||||
if *leasesFileName == "" {
|
||||
conn, err := libvirt.NewConnect(*libvirtURI)
|
||||
if err != nil {
|
||||
log.With(slog.Any("error", err)).Error("Failed to connect to libvirt")
|
||||
os.Exit(1)
|
||||
}
|
||||
defer conn.Close()
|
||||
leaseGetter = virtwrapper.New(conn, *targetNetwork)
|
||||
} else {
|
||||
log.Info("Using dnsmasq leases file")
|
||||
leaseGetter = dnsmasq.New(*leasesFileName)
|
||||
}
|
||||
defer conn.Close()
|
||||
|
||||
serv := server.New(log, *targetNetwork, *initSecretHash, &virtwrapper.Connect{Conn: conn})
|
||||
serv := server.New(log, *targetNetwork, *initSecretHash, leaseGetter)
|
||||
if err := serv.ListenAndServe(*bindPort); err != nil {
|
||||
log.With(slog.Any("error", err)).Error("Failed to serve")
|
||||
os.Exit(1)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue