Compare commits

...

4 commits

Author SHA1 Message Date
6f40b3e921
f-14: code: add vpc in prerelease bin #14
All checks were successful
Pre Release Workflow / set-release-target (push) Successful in 1s
Pre Release Workflow / build (agent, amd64, linux) (push) Successful in 1m7s
Pre Release Workflow / build (db, amd64, linux) (push) Successful in 1m50s
Pre Release Workflow / build (metacli, amd64, linux) (push) Successful in 1m34s
Pre Release Workflow / build (metadata, amd64, linux) (push) Successful in 1m31s
Pre Release Workflow / build (vpc, amd64, linux) (push) Successful in 1m32s
Pre Release Workflow / prerelease (push) Successful in 11s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-01-18 22:32:49 +01:00
0b797d1c0c
f-14: bin: remove netns bin #14
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-01-18 22:32:21 +01:00
d050568638
f-14: bin: update bin #14
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-01-18 22:30:38 +01:00
9fb4d10d27
f-14: code: add create and delete vpc #14
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-01-18 22:28:38 +01:00
5 changed files with 85 additions and 44 deletions

View file

@ -37,7 +37,7 @@ jobs:
- metadata
- metacli
- agent
- netns
- vpc
uses: ./.forgejo/workflows/build.yml
with:
tag: ${{ needs.set-release-target.outputs.release_cible }}

View file

@ -1,40 +0,0 @@
package main
import (
"flag"
"fmt"
"os"
"git.g3e.fr/syonad/two/internal/netns"
)
var (
netns_name = flag.String("netns", "", "Network namespace à faire")
action = flag.String("action", "", "Action a faire")
)
func main() {
flag.Parse()
switch *action {
case "create":
err := netns.Create(*netns_name)
if err != nil {
fmt.Println(err)
}
case "delete":
err := netns.Delete(*netns_name)
if err != nil {
fmt.Println(err)
}
case "check":
if netns.Exist(*netns_name) {
fmt.Printf("netns %s exist\n", *netns_name)
} else {
fmt.Printf("netns %s do not exist\n", *netns_name)
}
default:
fmt.Printf("Available commande:\n - create\n - delete\n - check\n")
os.Exit(1)
}
}

View file

@ -5,7 +5,7 @@ import (
"fmt"
"os"
"git.g3e.fr/syonad/two/internal/netif"
"git.g3e.fr/syonad/two/internal/vpc"
)
var (
@ -19,8 +19,11 @@ func main() {
switch *action {
case "create":
err := netif.CreateVethToNetns("veth"+*name+"ext", "veth"+*name+"int", "/var/run/netns/"+*netns, 9000)
if err != nil {
if err := vpc.CreateVPC(*name); err != nil {
fmt.Println(err)
}
case "delete":
if err := vpc.DeleteVPC(*name); err != nil {
fmt.Println(err)
}
default:

60
internal/vpc/create.go Normal file
View file

@ -0,0 +1,60 @@
package vpc
import (
"git.g3e.fr/syonad/two/internal/netif"
"git.g3e.fr/syonad/two/internal/netns"
)
func CreateVPC(name string) error {
// missing
// search data in db
// change state in db
// create netns
if err := netns.Create(name); err != nil {
return err
}
// create veth public for this netns
if err := netif.CreateVethToNetns(name+"-ext", "veth-"+name+"-int", "/var/run/netns/"+name, 9000); err != nil {
return err
}
// create public bridge in netns
if err := netns.Call(name, func() error {
return netif.CreateBridge("br-public", 1500, false)
}); err != nil {
return err
}
// set veth to ext public bridge
if err := netif.BridgeSetMaster(name+"-ext", "br-public"); err != nil {
return err
}
// set veth to int public bridge
if err := netns.Call(name, func() error {
return netif.BridgeSetMaster("veth-"+name+"-int", "br-public")
}); err != nil {
return err
}
// set set ext veth up
if err := netif.LinkSetUp(name + "-ext"); err != nil {
return nil
}
// set set int veth up
if err := netns.Call(name, func() error {
return netif.LinkSetUp("veth-" + name + "-int")
}); err != nil {
return err
}
// set set int bridge up
if err := netns.Call(name, func() error {
return netif.LinkSetUp("br-public")
}); err != nil {
return err
}
return nil
}

18
internal/vpc/delete.go Normal file
View file

@ -0,0 +1,18 @@
package vpc
import (
"git.g3e.fr/syonad/two/internal/netif"
"git.g3e.fr/syonad/two/internal/netns"
)
func DeleteVPC(name string) error {
if err := netif.DeleteLink(name + "-ext"); err != nil {
return err
}
if err := netns.Delete(name); err != nil {
return err
}
return nil
}