initial commit
This commit is contained in:
40
cmd/node-agent/main.go
Normal file
40
cmd/node-agent/main.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
|
||||
"jagacloud/node-agent/pkg/api"
|
||||
"jagacloud/node-agent/pkg/compute/libvirt"
|
||||
"jagacloud/node-agent/pkg/config"
|
||||
"jagacloud/node-agent/pkg/containers/lxc"
|
||||
"jagacloud/node-agent/pkg/containers/podman"
|
||||
"jagacloud/node-agent/pkg/state"
|
||||
"jagacloud/node-agent/pkg/tasks"
|
||||
)
|
||||
|
||||
func main() {
|
||||
cfg := config.LoadOrExit("/etc/jagacloud/agent.yaml")
|
||||
|
||||
store := state.NewStore(cfg.VMPath, cfg.CTPath)
|
||||
|
||||
svc := api.Services{
|
||||
Tasks: tasks.NewRegistry(),
|
||||
Libvirt: libvirt.NewVirshClient(cfg.LibvirtURI, "templates/libvirt/domain.xml.tmpl", "/etc/jagacloud/libvirt"),
|
||||
LXC: lxc.NewCmdManager(cfg.LXCPath),
|
||||
Podman: podman.NewCmdClient(cfg.PodmanSocket),
|
||||
Store: store,
|
||||
}
|
||||
go svc.Tasks.StartWorker(context.Background())
|
||||
|
||||
r := chi.NewRouter()
|
||||
api.RegisterRoutes(r, cfg, svc)
|
||||
|
||||
log.Printf("node-agent listening on %s", cfg.ListenAddr)
|
||||
if err := http.ListenAndServe(cfg.ListenAddr, r); err != nil {
|
||||
log.Fatalf("http server failed: %v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user