f-21: vpc: change to be ok in the name
All checks were successful
Pre Release Workflow / build (dhcp, amd64, linux) (push) Successful in 1m29s
Pre Release Workflow / build (metacli, amd64, linux) (push) Successful in 1m31s
Pre Release Workflow / build (metadata, amd64, linux) (push) Successful in 1m33s
Pre Release Workflow / build (subnet, amd64, linux) (push) Successful in 1m31s
Pre Release Workflow / upload-scripts (run-dnsmasq-in-netns.sh) (push) Successful in 6s
Pre Release Workflow / prerelease (push) Successful in 13s
Pre Release Workflow / set-release-target (push) Successful in 1s
Pre Release Workflow / build (db, amd64, linux) (push) Successful in 1m31s
Pre Release Workflow / build (agent, amd64, linux) (push) Successful in 1m34s
All checks were successful
Pre Release Workflow / build (dhcp, amd64, linux) (push) Successful in 1m29s
Pre Release Workflow / build (metacli, amd64, linux) (push) Successful in 1m31s
Pre Release Workflow / build (metadata, amd64, linux) (push) Successful in 1m33s
Pre Release Workflow / build (subnet, amd64, linux) (push) Successful in 1m31s
Pre Release Workflow / upload-scripts (run-dnsmasq-in-netns.sh) (push) Successful in 6s
Pre Release Workflow / prerelease (push) Successful in 13s
Pre Release Workflow / set-release-target (push) Successful in 1s
Pre Release Workflow / build (db, amd64, linux) (push) Successful in 1m31s
Pre Release Workflow / build (agent, amd64, linux) (push) Successful in 1m34s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
This commit is contained in:
parent
4470af0e9e
commit
25aebcc123
3 changed files with 18 additions and 20 deletions
|
|
@ -209,15 +209,16 @@ components:
|
|||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: Unique name for the VPC
|
||||
example: vpc1
|
||||
description: Unique name for the VPC, must follow the format vp-[id]
|
||||
pattern: '^vp-.+'
|
||||
example: vp-00001
|
||||
|
||||
VPC:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
example: vpc1
|
||||
example: vp-00001
|
||||
state:
|
||||
type: string
|
||||
enum: [creating, created, deleting, deleted]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package vpc
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"git.g3e.fr/syonad/two/internal/netif"
|
||||
"git.g3e.fr/syonad/two/internal/netns"
|
||||
"git.g3e.fr/syonad/two/pkg/db/kv"
|
||||
|
|
@ -9,49 +11,40 @@ import (
|
|||
)
|
||||
|
||||
func CreateVPC(db *badger.DB, name string) error {
|
||||
// missing
|
||||
// search data in db
|
||||
// change state in db
|
||||
|
||||
// create netns
|
||||
if state, err := kv.GetFromDB(db, "vpc/"+name+"/state"); err != nil {
|
||||
return err
|
||||
} else if state == "creating" {
|
||||
vpcID := strings.SplitN(name, "-", 2)[1]
|
||||
|
||||
if err := netns.Create(name); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// create veth public for this netns
|
||||
if err := netif.CreateVethToNetns("vp-"+name+"-e", "vp-public-i", "/var/run/netns/"+name, 9000); err != nil {
|
||||
if err := netif.CreateVethToNetns("vp-"+vpcID+"-e", "vp-"+vpcID+"-i", "/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)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// set veth to ext public bridge
|
||||
if err := netif.BridgeSetMaster("vp-"+name+"-e", "br-public"); err != nil {
|
||||
if err := netif.BridgeSetMaster("vp-"+vpcID+"-e", "br-public"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// set veth to int public bridge
|
||||
if err := netns.Call(name, func() error {
|
||||
return netif.BridgeSetMaster("vp-public-i", "br-public")
|
||||
return netif.BridgeSetMaster("vp-"+vpcID+"-i", "br-public")
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// set set ext veth up
|
||||
if err := netif.LinkSetUp("vp-" + name + "-e"); err != nil {
|
||||
if err := netif.LinkSetUp("vp-" + vpcID + "-e"); err != nil {
|
||||
return err
|
||||
}
|
||||
// set set int veth up
|
||||
if err := netns.Call(name, func() error {
|
||||
return netif.LinkSetUp("vp-public-i")
|
||||
return netif.LinkSetUp("vp-" + vpcID + "-i")
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package vpc
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"git.g3e.fr/syonad/two/internal/netif"
|
||||
"git.g3e.fr/syonad/two/internal/netns"
|
||||
"git.g3e.fr/syonad/two/pkg/db/kv"
|
||||
|
|
@ -12,7 +14,9 @@ func DeleteVPC(db *badger.DB, name string) error {
|
|||
if state, err := kv.GetFromDB(db, "vpc/"+name+"/state"); err != nil {
|
||||
return err
|
||||
} else if state == "deleting" {
|
||||
if err := netif.DeleteLink("vp-" + name + "-e"); err != nil {
|
||||
vpcID := strings.SplitN(name, "-", 2)[1]
|
||||
|
||||
if err := netif.DeleteLink("vp-" + vpcID + "-e"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue