mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2025-10-05 15:26:57 +08:00
39 lines
1.2 KiB
Go
39 lines
1.2 KiB
Go
package handler
|
|
|
|
import (
|
|
"github.com/spf13/pflag"
|
|
|
|
"github.com/wencaiwulue/kubevpn/v2/pkg/daemon/rpc"
|
|
)
|
|
|
|
type ExtraRouteInfo struct {
|
|
ExtraCIDR []string
|
|
ExtraDomain []string
|
|
ExtraNodeIP bool
|
|
}
|
|
|
|
func ParseExtraRouteFromRPC(route *rpc.ExtraRoute) *ExtraRouteInfo {
|
|
if route == nil {
|
|
return &ExtraRouteInfo{}
|
|
}
|
|
return &ExtraRouteInfo{
|
|
ExtraCIDR: route.ExtraCIDR,
|
|
ExtraDomain: route.ExtraDomain,
|
|
ExtraNodeIP: route.ExtraNodeIP,
|
|
}
|
|
}
|
|
|
|
func (e ExtraRouteInfo) ToRPC() *rpc.ExtraRoute {
|
|
return &rpc.ExtraRoute{
|
|
ExtraCIDR: e.ExtraCIDR,
|
|
ExtraDomain: e.ExtraDomain,
|
|
ExtraNodeIP: e.ExtraNodeIP,
|
|
}
|
|
}
|
|
|
|
func AddExtraRoute(flags *pflag.FlagSet, route *ExtraRouteInfo) {
|
|
flags.StringArrayVar(&route.ExtraCIDR, "extra-cidr", []string{}, "Extra network CIDR string, add those cidr network to route table, eg: --extra-cidr 192.168.0.159/24 --extra-cidr 192.168.1.160/32")
|
|
flags.StringArrayVar(&route.ExtraDomain, "extra-domain", []string{}, "Extra domain string, the resolved IP will add to route table, eg: --extra-domain test.abc.com --extra-domain foo.test.com")
|
|
flags.BoolVar(&route.ExtraNodeIP, "extra-node-ip", false, "Extra node IP, add cluster node IP to route table.")
|
|
}
|