Skip to content

Commit

Permalink
Support for ingress host-url in LB commands
Browse files Browse the repository at this point in the history
  • Loading branch information
TrekkieCoder committed Jul 19, 2024
1 parent c021dd2 commit 8f678a9
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 15 deletions.
10 changes: 5 additions & 5 deletions cmd/create/create_loadbalancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ type CreateLoadBalancerOptions struct {
SecIPs []string
Select string
Name string
Path string
Host string
}

type CreateLoadBalancerResult struct {
Expand Down Expand Up @@ -132,7 +132,7 @@ func NewCreateLoadBalancerCmd(restOptions *api.RESTOptions) *cobra.Command {
o := CreateLoadBalancerOptions{}

var createLbCmd = &cobra.Command{
Use: "lb IP [--select=<rr|hash|priority|persist>] [--tcp=<port>:<targetPort>] [--udp=<port>:<targetPort>] [--sctp=<port>:<targetPort>] [--icmp] [--mark=<val>] [--secips=<ip>,][--endpoints=<ip>:<weight>,] [--mode=<onearm|fullnat>] [--bgp] [--monitor] [--inatimeout=<to>] [--name=<service-name>] [--attachEP] [--detachEP] [--security=<https|none>] [--path=<url>]",
Use: "lb IP [--select=<rr|hash|priority|persist>] [--tcp=<port>:<targetPort>] [--udp=<port>:<targetPort>] [--sctp=<port>:<targetPort>] [--icmp] [--mark=<val>] [--secips=<ip>,][--endpoints=<ip>:<weight>,] [--mode=<onearm|fullnat>] [--bgp] [--monitor] [--inatimeout=<to>] [--name=<service-name>] [--attachEP] [--detachEP] [--security=<https|none>] [--host=<url>]",
Short: "Create a LoadBalancer",
Long: `Create a LoadBalancer
Expand All @@ -150,7 +150,7 @@ func NewCreateLoadBalancerCmd(restOptions *api.RESTOptions) *cobra.Command {
ex) loxicmd create lb 192.168.0.200 --tcp=80:32015 --endpoints=10.212.0.1:1,10.212.0.2:1,10.212.0.3:1
loxicmd create lb 192.168.0.200 --tcp=80:32015 --endpoints=10.212.0.1:1,10.212.0.2:1,10.212.0.3:1 --security=https
loxicmd create lb 192.168.0.200 --tcp=80:32015 --endpoints=10.212.0.1:1,10.212.0.2:1,10.212.0.3:1 --path=loxilb.io
loxicmd create lb 192.168.0.200 --tcp=80:32015 --endpoints=10.212.0.1:1,10.212.0.2:1,10.212.0.3:1 --host=loxilb.io
loxicmd create lb 192.168.0.200 --tcp=80:32015 --name="http-service" --endpoints=10.212.0.1:1,10.212.0.2:1,10.212.0.3:1
loxicmd create lb 192.168.0.200 --udp=80:32015 --endpoints=10.212.0.1:1,10.212.0.2:1,10.212.0.3:1 --mark=10
loxicmd create lb 192.168.0.200 --tcp=80:32015 --udp=80:32015 --endpoints=10.212.0.1:1,10.212.0.2:1,10.212.0.3:1
Expand Down Expand Up @@ -230,7 +230,7 @@ ex) loxicmd create lb 192.168.0.200 --tcp=80:32015 --endpoints=10.212.0.1:1,10.2
Name: o.Name,
Oper: api.LbOP(oper),
Security: api.LbSec(SecStringToNum(o.Security)),
Path: o.Path,
Host: o.Host,
}

if o.Mode == "dsr" && targetPort != port {
Expand Down Expand Up @@ -290,7 +290,7 @@ ex) loxicmd create lb 192.168.0.200 --tcp=80:32015 --endpoints=10.212.0.1:1,10.2
createLbCmd.Flags().BoolVarP(&o.Attach, "attachEP", "", false, "Attach endpoints to the load balancer rule")
createLbCmd.Flags().BoolVarP(&o.Detach, "detachEP", "", false, "Detach endpoints from the load balancer rule")
createLbCmd.Flags().StringVarP(&o.Security, "security", "", o.Security, "Security mode for load balancer rule")
createLbCmd.Flags().StringVarP(&o.Path, "path", "", o.Path, "Ingress URL Path")
createLbCmd.Flags().StringVarP(&o.Host, "host", "", o.Host, "Ingress Host URL Path")

return createLbCmd
}
Expand Down
12 changes: 6 additions & 6 deletions cmd/delete/delete_loadbalancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,13 @@ func NewDeleteLoadBalancerCmd(restOptions *api.RESTOptions) *cobra.Command {
var BGP bool
var Mark uint16
var Name string
var Path string
var Host string

var externalIP string
//var endpointList []string

var deleteLbCmd = &cobra.Command{
Use: "lb <EXTERNAL-IP> [--tcp portNumber] [--udp portNumber] [--sctp portNumber] [--icmp portNumber] [--bgp] [--mark=<val>] [--name=<service-name>] [--path=<url>]",
Use: "lb <EXTERNAL-IP> [--tcp portNumber] [--udp portNumber] [--sctp portNumber] [--icmp portNumber] [--bgp] [--mark=<val>] [--name=<service-name>] [--host=<url>]",
Short: "Delete a LoadBalancer",
Long: `Delete a LoadBalancer.`,
PreRun: func(cmd *cobra.Command, args []string) {
Expand Down Expand Up @@ -113,13 +113,13 @@ func NewDeleteLoadBalancerCmd(restOptions *api.RESTOptions) *cobra.Command {
PortNumberList["icmp"] = []int{0}
}
fmt.Printf("PortNumberList: %v\n", PortNumberList)
if Path == "" {
Path = "any"
if Host == "" {
Host = "any"
}
for proto, portNum := range PortNumberList {
for _, port := range portNum {
subResources := []string{
"urlpath", Path,
"hosturl", Host,
"externalipaddress", externalIP,
"port", strconv.Itoa(port),
"protocol", proto,
Expand Down Expand Up @@ -152,7 +152,7 @@ func NewDeleteLoadBalancerCmd(restOptions *api.RESTOptions) *cobra.Command {
deleteLbCmd.Flags().BoolVarP(&BGP, "bgp", "", false, "BGP enable information'")
deleteLbCmd.Flags().Uint16VarP(&Mark, "mark", "", 0, "Specify the mark num to segregate a load-balancer VIP service")
deleteLbCmd.Flags().StringVarP(&Name, "name", "", Name, "Name for load balancer rule")
deleteLbCmd.Flags().StringVarP(&Path, "path", "", Path, "Ingress URL Path")
deleteLbCmd.Flags().StringVarP(&Host, "host", "", Host, "Ingress Host URL Path")

return deleteLbCmd
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/get/get_loadbalancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ func PrintGetLbResult(resp *http.Response, o api.RESTOptions) {
for i, eps := range lbrule.Endpoints {
if i == 0 {

data = append(data, []string{lbrule.Service.ExternalIP, secIPs, lbrule.Service.Path, fmt.Sprintf("%d", lbrule.Service.Port), protocolStr, lbrule.Service.Name, fmt.Sprintf("%d", lbrule.Service.Block), NumToSelect(int(lbrule.Service.Sel)), NumToMode(int(lbrule.Service.Mode)),
data = append(data, []string{lbrule.Service.ExternalIP, secIPs, lbrule.Service.Host, fmt.Sprintf("%d", lbrule.Service.Port), protocolStr, lbrule.Service.Name, fmt.Sprintf("%d", lbrule.Service.Block), NumToSelect(int(lbrule.Service.Sel)), NumToMode(int(lbrule.Service.Mode)),
eps.EndpointIP, fmt.Sprintf("%d", eps.TargetPort), fmt.Sprintf("%d", eps.Weight), eps.State, eps.Counter})
} else {
data = append(data, []string{"", "", "", "", "", "", "", "", "", eps.EndpointIP, fmt.Sprintf("%d", eps.TargetPort), fmt.Sprintf("%d", eps.Weight), eps.State, eps.Counter})
Expand All @@ -186,7 +186,7 @@ func PrintGetLbResult(resp *http.Response, o api.RESTOptions) {
} else {
for i, eps := range lbrule.Endpoints {
if i == 0 {
data = append(data, []string{lbrule.Service.ExternalIP, secIPs, lbrule.Service.Path, fmt.Sprintf("%d", lbrule.Service.Port), protocolStr, lbrule.Service.Name, fmt.Sprintf("%d", lbrule.Service.Block), NumToSelect(int(lbrule.Service.Sel)), NumToMode(int(lbrule.Service.Mode)),
data = append(data, []string{lbrule.Service.ExternalIP, secIPs, lbrule.Service.Host, fmt.Sprintf("%d", lbrule.Service.Port), protocolStr, lbrule.Service.Name, fmt.Sprintf("%d", lbrule.Service.Block), NumToSelect(int(lbrule.Service.Sel)), NumToMode(int(lbrule.Service.Mode)),
eps.EndpointIP, fmt.Sprintf("%d", eps.TargetPort), fmt.Sprintf("%d", eps.Weight), "-", eps.Counter})
} else {
data = append(data, []string{"", "", "", "", "", "", "", "", "", eps.EndpointIP, fmt.Sprintf("%d", eps.TargetPort), fmt.Sprintf("%d", eps.Weight), "-", eps.Counter})
Expand Down
2 changes: 1 addition & 1 deletion cmd/get/type.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ package get
var (
CONNTRACK_TITLE = []string{"destIP", "srcIP", "dPort", "sPort", "proto", "state", "act", "packets", "bytes"}
LOADBALANCER_TITLE = []string{"Ext IP", "Port", "Proto", "Name", "Mark", "Sel", "Mode", "# of Endpoints", "Monitor"}
LOADBALANCER_WIDE_TITLE = []string{"Ext IP", "Sec IPs", "Path", "Port", "Proto", "Name", "Mark", "Sel", "Mode", "Endpoint", "EPort", "Weight", "State", "Counters"}
LOADBALANCER_WIDE_TITLE = []string{"Ext IP", "Sec IPs", "Host", "Port", "Proto", "Name", "Mark", "Sel", "Mode", "Endpoint", "EPort", "Weight", "State", "Counters"}
SESSION_TITLE = []string{"ident", "session IP"}
SESSION_WIDE_TITLE = []string{"ident", "session IP", "access Network Tunnel", "core Network Tunnel"}
PORT_WIDE_TITLE = []string{"index", "portname", "MAC", "link/state", "mtu", "isActive/bpf\nPort type", "Statistics", "L3Info", "L2Info", "Sync"}
Expand Down
2 changes: 1 addition & 1 deletion pkg/api/loadBalancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ type LoadBalancerService struct {
Snat bool `json:"snat,omitempty"`
Oper LbOP `json:"oper,omitempty"`
Security LbSec `json:"security,omitempty" yaml:"security"`
Path string `json:"path,omitempty" yaml:"path"`
Host string `json:"host,omitempty" yaml:"path"`
}

type LoadBalancerEndpoint struct {
Expand Down

0 comments on commit 8f678a9

Please sign in to comment.