From 76b1a10b853871a17257d41db4c3a1725478fb65 Mon Sep 17 00:00:00 2001 From: kaiyou <dev@kaiyou.fr> Date: Sat, 30 Sep 2023 21:02:45 +0200 Subject: [PATCH] Switch to refactored dolly --- cmd/hepto/hepto.go | 44 ++++++++++++++++++++++++++++---------------- go.mod | 2 +- go.sum | 2 ++ 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/cmd/hepto/hepto.go b/cmd/hepto/hepto.go index b134e6b..dae826f 100644 --- a/cmd/hepto/hepto.go +++ b/cmd/hepto/hepto.go @@ -87,12 +87,30 @@ var Hepto = &cobra.Command{ if err != nil { return err } - mounts := []*dolly.MountVolume{dolly.NewVolume(dataPath, config.Cluster.DataDir)} + self, err := os.Executable() + if err != nil { + return err + } + // Containerize self + c := dolly.NewForking() + c.Add( + &dolly.Pid{}, + &dolly.Net{DNS: config.DNS}, + &dolly.Certs{}, + ) + c.AddAll(dolly.NewEmptyRoot(config.Node.Name)) + c.AddAll(dolly.DefaultVolumes()) + c.Add(dolly.NewBind(dataPath, config.Cluster.DataDir)) + c.Add(dolly.NewBind(self, self)) + c.AddAll(dolly.NewDevicesOrPanic( + "/dev/null", "/dev/zero", "/dev/random", "/dev/urandom", + "/dev/kmsg", "/dev/full", "/dev/tty", "/dev/ptmx", + )) for src, dst := range config.Mounts { - mounts = append(mounts, dolly.NewVolume(src, dst)) + c.Add(dolly.NewBind(src, dst)) } - iface := dolly.NetIface{ - Name: "eth0", + iface := &dolly.Iface{ + Slave: "eth0", Master: config.Iface, } if len(config.Address.IP) > 0 { @@ -101,22 +119,16 @@ var Hepto = &cobra.Command{ if len(config.Gateway) > 0 { iface.Routes[&net.IPNet{}] = config.Gateway } - container := dolly.NewForking( - dolly.NewEmptyMount(config.Node.Name, append( - dolly.DefaultVolumes(), - mounts..., - )...), - &dolly.NetConfig{ - Ifaces: []dolly.NetIface{iface}, - }, - &dolly.Forward{ + c.Add(iface) + if config.Node.Role == "master" || config.Node.Role == "full" { + c.Add(&dolly.Forward{ HostBind: net.ParseIP("::1"), HostPort: config.Cluster.LoopbackPort, ContainerIP: net.ParseIP("::1"), ContainerPort: 6443, - }, - ) - return container.Run(hepto) + }) + } + return c.Run(hepto) }, } diff --git a/go.mod b/go.mod index 3656398..dc3edb4 100644 --- a/go.mod +++ b/go.mod @@ -63,7 +63,7 @@ require ( github.com/spf13/viper v1.16.0 github.com/vishvananda/netlink v1.2.1-beta.2 go.acides.org/daeman v0.3.4 - go.acides.org/dolly v0.2.0 + go.acides.org/dolly v0.3.1 go.acides.org/pekahi v0.2.1 go.acides.org/sml v0.2.2 go.etcd.io/etcd/server/v3 v3.5.9 diff --git a/go.sum b/go.sum index ff7b118..1977cdd 100644 --- a/go.sum +++ b/go.sum @@ -1166,6 +1166,8 @@ go.acides.org/daeman v0.3.4 h1:gjKq95TpP2+IMUkW/u1do4J43Y6KhTOPwOg6BBCBT74= go.acides.org/daeman v0.3.4/go.mod h1:fOZ4YudsVjbUan8WYTs0ED6JfpZ7Z6mlN4Lnn1qW5nk= go.acides.org/dolly v0.2.0 h1:MLUh+1IuqnOkM1KcJ/5tOS7uOSL6wfADDO23yHduwJI= go.acides.org/dolly v0.2.0/go.mod h1:eO56y+YmSx2h0/Zy7+p2zxNeJVl4iIWMM/vsRFMaIDM= +go.acides.org/dolly v0.3.1 h1:FvG5z90mEIToXK+zgb/R/ucQOuW+agsXQVFdpTkhogY= +go.acides.org/dolly v0.3.1/go.mod h1:eO56y+YmSx2h0/Zy7+p2zxNeJVl4iIWMM/vsRFMaIDM= go.acides.org/pekahi v0.2.1 h1:ysmC14q+hnYXcuB1Ew2XoWDZsgR1jbut89ACRLwi43I= go.acides.org/pekahi v0.2.1/go.mod h1:AxgN7Ss6dCRHoNOVWMymkmDafWYdDV7ce6jPl5bqyRc= go.acides.org/sml v0.2.2 h1:swwqh/MoYO/7AifuIefhfw2XeVEyXU46Uz+VtDWiDNE= -- GitLab