Commit bb4c7e56 authored by 金戟's avatar 金戟
Browse files

feat: also dump full cluster domain of service

Showing with 24 additions and 17 deletions
+24 -17
...@@ -116,24 +116,24 @@ func getOrCreateShadow(options *options.DaemonOptions, err error, kubernetes clu ...@@ -116,24 +116,24 @@ func getOrCreateShadow(options *options.DaemonOptions, err error, kubernetes clu
} }
func setupDump2Host(options *options.DaemonOptions, kubernetes cluster.KubernetesInterface) { func setupDump2Host(options *options.DaemonOptions, kubernetes cluster.KubernetesInterface) {
hosts := kubernetes.ServiceHosts(options.Namespace) var namespaceToDump = options.ConnectOptions.Dump2HostsNamespaces
for k, v := range hosts { if len(namespaceToDump) == 0 {
log.Info().Msgf("Service found: %s %s", k, v) namespaceToDump = append(namespaceToDump, options.Namespace)
} }
if len(options.ConnectOptions.Dump2HostsNamespaces) > 0 { hosts := map[string]string{}
for _, namespace := range options.ConnectOptions.Dump2HostsNamespaces { for _, namespace := range namespaceToDump {
if namespace == options.Namespace { log.Debug().Msgf("Search service in %s namespace...", namespace)
singleHosts := kubernetes.ServiceHosts(namespace)
for svc, ip := range singleHosts {
if ip == "" || ip == "None" {
continue continue
} }
log.Debug().Msgf("Search service in %s namespace...", namespace) log.Debug().Msgf("Service found: %s.%s %s", svc, namespace, ip)
singleHosts := kubernetes.ServiceHosts(namespace) if namespace == options.Namespace {
for svc, ip := range singleHosts { hosts[svc] = ip
if ip == "" || ip == "None" {
continue
}
log.Info().Msgf("Service found: %s.%s %s", svc, namespace, ip)
hosts[svc+"."+namespace] = ip
} }
hosts[svc+"."+namespace] = ip
hosts[svc+"."+namespace+"."+options.ConnectOptions.ClusterDomain] = ip
} }
} }
util.DumpHosts(hosts) util.DumpHosts(hosts)
......
...@@ -70,13 +70,13 @@ func ConnectActionFlag(options *options.DaemonOptions) []cli.Flag { ...@@ -70,13 +70,13 @@ func ConnectActionFlag(options *options.DaemonOptions) []cli.Flag {
Destination: &options.ConnectOptions.Method, Destination: &options.ConnectOptions.Method,
}, },
cli.IntFlag{ cli.IntFlag{
Name: "proxy", Name: "proxyPort",
Value: 2223, Value: 2223,
Usage: "when should method socks5, you can choice which port to proxy", Usage: "when should method socks5, you can choice which port to proxy",
Destination: &options.ConnectOptions.SocksPort, Destination: &options.ConnectOptions.SocksPort,
}, },
cli.IntFlag{ cli.IntFlag{
Name: "port", Name: "sshPort",
Value: 2222, Value: 2222,
Usage: "Local SSH Proxy port", Usage: "Local SSH Proxy port",
Destination: &options.ConnectOptions.SSHPort, Destination: &options.ConnectOptions.SSHPort,
...@@ -106,6 +106,12 @@ func ConnectActionFlag(options *options.DaemonOptions) []cli.Flag { ...@@ -106,6 +106,12 @@ func ConnectActionFlag(options *options.DaemonOptions) []cli.Flag {
Usage: "Set local domain suffix to help dns resolve properly", Usage: "Set local domain suffix to help dns resolve properly",
Destination: &options.ConnectOptions.LocalDomain, Destination: &options.ConnectOptions.LocalDomain,
}, },
cli.StringFlag{
Name: "clusterDomain",
Usage: "The cluster domain provided to kubernetes api-server",
Value: "cluster.local",
Destination: &options.ConnectOptions.ClusterDomain,
},
} }
} }
......
...@@ -26,6 +26,7 @@ type ConnectOptions struct { ...@@ -26,6 +26,7 @@ type ConnectOptions struct {
Dump2HostsNamespaces cli.StringSlice Dump2HostsNamespaces cli.StringSlice
ShareShadow bool ShareShadow bool
LocalDomain string LocalDomain string
ClusterDomain string
} }
// ExchangeOptions ... // ExchangeOptions ...
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment