summaryrefslogtreecommitdiff
path: root/keadm
diff options
context:
space:
mode:
authorluomengY <2938893385@qq.com>2023-11-16 22:35:50 +0800
committerluomengY <2938893385@qq.com>2023-11-22 19:10:08 +0800
commit66d77a99443556d0ad412b0d6111e977eda485d3 (patch)
tree5934e2f59a0b65a08ac02247c386dadf91cf150d /keadm
parentMerge pull request #5157 from zhiyingfang2022/fzy1108 (diff)
downloadkubeedge-66d77a99443556d0ad412b0d6111e977eda485d3.tar.gz
fix quic server ip
Signed-off-by: luomengY <2938893385@qq.com>
Diffstat (limited to 'keadm')
-rw-r--r--keadm/cmd/keadm/app/cmd/common/constant.go2
-rw-r--r--keadm/cmd/keadm/app/cmd/common/types.go1
-rw-r--r--keadm/cmd/keadm/app/cmd/deprecated/join.go3
-rw-r--r--keadm/cmd/keadm/app/cmd/edge/join.go2
-rw-r--r--keadm/cmd/keadm/app/cmd/edge/join_others.go36
-rw-r--r--keadm/cmd/keadm/app/cmd/edge/join_windows.go20
-rwxr-xr-xkeadm/cmd/keadm/app/cmd/util/edgecoreinstaller.go19
7 files changed, 78 insertions, 5 deletions
diff --git a/keadm/cmd/keadm/app/cmd/common/constant.go b/keadm/cmd/keadm/app/cmd/common/constant.go
index 74b245dea..581d0ff6b 100644
--- a/keadm/cmd/keadm/app/cmd/common/constant.go
+++ b/keadm/cmd/keadm/app/cmd/common/constant.go
@@ -100,6 +100,8 @@ const (
HelmInstallAction = "install"
HelmManifestAction = "manifest"
+ HubProtocol = "hub-protocol"
+
CmdGetDNSIP = "cat /etc/resolv.conf | grep nameserver | grep -v -E ':|#' | awk '{print $2}' | head -n1"
CmdGetStatusDocker = "systemctl status docker |grep Active | awk '{print $2}'"
CmdPing = "ping %s -w %d |grep 'packets transmitted' |awk '{print $6}'"
diff --git a/keadm/cmd/keadm/app/cmd/common/types.go b/keadm/cmd/keadm/app/cmd/common/types.go
index 1c2cf351a..e48627d4e 100644
--- a/keadm/cmd/keadm/app/cmd/common/types.go
+++ b/keadm/cmd/keadm/app/cmd/common/types.go
@@ -59,6 +59,7 @@ type JoinOptions struct {
Labels []string
WithMQTT bool
ImageRepository string
+ HubProtocol string
}
type CheckOptions struct {
diff --git a/keadm/cmd/keadm/app/cmd/deprecated/join.go b/keadm/cmd/keadm/app/cmd/deprecated/join.go
index 849ed7ac1..452d8284a 100644
--- a/keadm/cmd/keadm/app/cmd/deprecated/join.go
+++ b/keadm/cmd/keadm/app/cmd/deprecated/join.go
@@ -28,6 +28,7 @@ import (
types "github.com/kubeedge/kubeedge/keadm/cmd/keadm/app/cmd/common"
"github.com/kubeedge/kubeedge/keadm/cmd/keadm/app/cmd/edge"
"github.com/kubeedge/kubeedge/keadm/cmd/keadm/app/cmd/util"
+ "github.com/kubeedge/viaduct/pkg/api"
)
var (
@@ -84,6 +85,7 @@ func NewDeprecatedEdgeJoin() *cobra.Command {
func newJoinOptions() *types.JoinOptions {
opts := &types.JoinOptions{}
opts.CertPath = types.DefaultCertPath
+ opts.HubProtocol = api.ProtocolTypeWS
return opts
}
@@ -129,6 +131,7 @@ func Add2EdgeToolsList(toolList map[string]types.ToolsInstaller, flagData map[st
CGroupDriver: joinOptions.CGroupDriver,
TarballPath: joinOptions.TarballPath,
Labels: joinOptions.Labels,
+ HubProtocol: joinOptions.HubProtocol,
}
toolList["MQTT"] = &util.MQTTInstTool{}
diff --git a/keadm/cmd/keadm/app/cmd/edge/join.go b/keadm/cmd/keadm/app/cmd/edge/join.go
index 08eb8c4dd..4c9ef5fb4 100644
--- a/keadm/cmd/keadm/app/cmd/edge/join.go
+++ b/keadm/cmd/keadm/app/cmd/edge/join.go
@@ -28,6 +28,7 @@ import (
"github.com/kubeedge/kubeedge/keadm/cmd/keadm/app/cmd/common"
"github.com/kubeedge/kubeedge/keadm/cmd/keadm/app/cmd/util"
"github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2"
+ "github.com/kubeedge/viaduct/pkg/api"
)
var (
@@ -110,6 +111,7 @@ func newOption() *common.JoinOptions {
joinOptions.CertPath = common.DefaultCertPath
joinOptions.RuntimeType = kubetypes.RemoteContainerRuntime
joinOptions.RemoteRuntimeEndpoint = constants.DefaultRemoteRuntimeEndpoint
+ joinOptions.HubProtocol = api.ProtocolTypeWS
return joinOptions
}
diff --git a/keadm/cmd/keadm/app/cmd/edge/join_others.go b/keadm/cmd/keadm/app/cmd/edge/join_others.go
index afaf9191b..7acf9a5ba 100644
--- a/keadm/cmd/keadm/app/cmd/edge/join_others.go
+++ b/keadm/cmd/keadm/app/cmd/edge/join_others.go
@@ -41,6 +41,7 @@ import (
"github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2"
"github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2/validation"
pkgutil "github.com/kubeedge/kubeedge/pkg/util"
+ "github.com/kubeedge/viaduct/pkg/api"
)
func AddJoinOtherFlags(cmd *cobra.Command, joinOptions *common.JoinOptions) {
@@ -88,6 +89,9 @@ func AddJoinOtherFlags(cmd *cobra.Command, joinOptions *common.JoinOptions) {
cmd.Flags().StringVar(&joinOptions.ImageRepository, common.ImageRepository, joinOptions.ImageRepository,
`Use this key to decide which image repository to pull images from`,
)
+
+ cmd.Flags().StringVar(&joinOptions.HubProtocol, common.HubProtocol, joinOptions.HubProtocol,
+ `Use this key to decide which communication protocol the edge node adopts.`)
}
func createEdgeConfigFiles(opt *common.JoinOptions) error {
@@ -121,7 +125,6 @@ func createEdgeConfigFiles(opt *common.JoinOptions) error {
edgeCoreConfig = v1alpha2.NewDefaultEdgeCoreConfig()
}
- edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = opt.CloudCoreIPPort
// TODO: remove this after release 1.14
// this is for keeping backward compatibility
// don't save token in configuration edgecore.yaml
@@ -158,6 +161,21 @@ func createEdgeConfigFiles(opt *common.JoinOptions) error {
} else {
edgeCoreConfig.Modules.EdgeHub.HTTPServer = "https://" + net.JoinHostPort(host, "10002")
}
+
+ switch opt.HubProtocol {
+ case api.ProtocolTypeQuic:
+ edgeCoreConfig.Modules.EdgeHub.Quic.Enable = true
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = false
+ edgeCoreConfig.Modules.EdgeHub.Quic.Server = opt.CloudCoreIPPort
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = net.JoinHostPort(host, strconv.Itoa(constants.DefaultWebSocketPort))
+ case api.ProtocolTypeWS:
+ edgeCoreConfig.Modules.EdgeHub.Quic.Enable = false
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = true
+ edgeCoreConfig.Modules.EdgeHub.Quic.Server = net.JoinHostPort(host, strconv.Itoa(constants.DefaultQuicPort))
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = opt.CloudCoreIPPort
+ default:
+ return fmt.Errorf("unsupported hub of protocol: %s", opt.HubProtocol)
+ }
edgeCoreConfig.Modules.EdgeStream.TunnelServer = net.JoinHostPort(host, strconv.Itoa(constants.DefaultTunnelPort))
if len(opt.Labels) > 0 {
@@ -275,7 +293,6 @@ func createV1alpha1EdgeConfigFiles(opt *common.JoinOptions) error {
edgeCoreConfig = v1alpha1.NewDefaultEdgeCoreConfig()
}
- edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = opt.CloudCoreIPPort
if opt.Token != "" {
edgeCoreConfig.Modules.EdgeHub.Token = opt.Token
}
@@ -310,6 +327,21 @@ func createV1alpha1EdgeConfigFiles(opt *common.JoinOptions) error {
} else {
edgeCoreConfig.Modules.EdgeHub.HTTPServer = "https://" + net.JoinHostPort(host, "10002")
}
+
+ switch opt.HubProtocol {
+ case api.ProtocolTypeQuic:
+ edgeCoreConfig.Modules.EdgeHub.Quic.Enable = true
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = false
+ edgeCoreConfig.Modules.EdgeHub.Quic.Server = opt.CloudCoreIPPort
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = net.JoinHostPort(host, strconv.Itoa(constants.DefaultWebSocketPort))
+ case api.ProtocolTypeWS:
+ edgeCoreConfig.Modules.EdgeHub.Quic.Enable = false
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = true
+ edgeCoreConfig.Modules.EdgeHub.Quic.Server = net.JoinHostPort(host, strconv.Itoa(constants.DefaultQuicPort))
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = opt.CloudCoreIPPort
+ default:
+ return fmt.Errorf("unsupported hub of protocol: %s", opt.HubProtocol)
+ }
edgeCoreConfig.Modules.EdgeStream.TunnelServer = net.JoinHostPort(host, strconv.Itoa(constants.DefaultTunnelPort))
if len(opt.Labels) > 0 {
diff --git a/keadm/cmd/keadm/app/cmd/edge/join_windows.go b/keadm/cmd/keadm/app/cmd/edge/join_windows.go
index 60bb8bd17..e9a8ee5d7 100644
--- a/keadm/cmd/keadm/app/cmd/edge/join_windows.go
+++ b/keadm/cmd/keadm/app/cmd/edge/join_windows.go
@@ -41,6 +41,7 @@ import (
"github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2"
"github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2/validation"
pkgutil "github.com/kubeedge/kubeedge/pkg/util"
+ "github.com/kubeedge/viaduct/pkg/api"
)
func AddJoinOtherFlags(cmd *cobra.Command, joinOptions *common.JoinOptions) {
@@ -72,6 +73,9 @@ func AddJoinOtherFlags(cmd *cobra.Command, joinOptions *common.JoinOptions) {
cmd.Flags().StringSliceVarP(&joinOptions.Labels, common.Labels, "l", joinOptions.Labels,
`Use this key to set the customized labels for node, you can input customized labels like key1=value1,key2=value2`)
+
+ cmd.Flags().StringVar(&joinOptions.HubProtocol, common.HubProtocol, joinOptions.HubProtocol,
+ `Use this key to decide which communication protocol the edge node adopts.`)
}
func createEdgeConfigFiles(opt *common.JoinOptions) error {
@@ -102,7 +106,6 @@ func createEdgeConfigFiles(opt *common.JoinOptions) error {
edgeCoreConfig = v1alpha2.NewDefaultEdgeCoreConfig()
}
- edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = opt.CloudCoreIPPort
// TODO: remove this after release 1.14
// this is for keeping backward compatibility
// don't save token in configuration edgecore.yaml
@@ -130,6 +133,21 @@ func createEdgeConfigFiles(opt *common.JoinOptions) error {
} else {
edgeCoreConfig.Modules.EdgeHub.HTTPServer = "https://" + net.JoinHostPort(host, "10002")
}
+
+ switch opt.HubProtocol {
+ case api.ProtocolTypeQuic:
+ edgeCoreConfig.Modules.EdgeHub.Quic.Enable = true
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = false
+ edgeCoreConfig.Modules.EdgeHub.Quic.Server = opt.CloudCoreIPPort
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = net.JoinHostPort(host, strconv.Itoa(constants.DefaultWebSocketPort))
+ case api.ProtocolTypeWS:
+ edgeCoreConfig.Modules.EdgeHub.Quic.Enable = false
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = true
+ edgeCoreConfig.Modules.EdgeHub.Quic.Server = net.JoinHostPort(host, strconv.Itoa(constants.DefaultQuicPort))
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = opt.CloudCoreIPPort
+ default:
+ return fmt.Errorf("unsupported hub of protocol: %s", opt.HubProtocol)
+ }
edgeCoreConfig.Modules.EdgeStream.TunnelServer = net.JoinHostPort(host, strconv.Itoa(constants.DefaultTunnelPort))
if len(opt.Labels) > 0 {
diff --git a/keadm/cmd/keadm/app/cmd/util/edgecoreinstaller.go b/keadm/cmd/keadm/app/cmd/util/edgecoreinstaller.go
index 94087826f..6c30fc212 100755
--- a/keadm/cmd/keadm/app/cmd/util/edgecoreinstaller.go
+++ b/keadm/cmd/keadm/app/cmd/util/edgecoreinstaller.go
@@ -29,6 +29,7 @@ import (
"github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2"
"github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2/validation"
"github.com/kubeedge/kubeedge/pkg/util"
+ "github.com/kubeedge/viaduct/pkg/api"
)
// KubeEdgeInstTool embeds Common struct and contains cloud node ip:port information
@@ -45,6 +46,7 @@ type KubeEdgeInstTool struct {
CGroupDriver string
TarballPath string
Labels []string
+ HubProtocol string
}
// InstallTools downloads KubeEdge for the specified version
@@ -92,8 +94,6 @@ func (ku *KubeEdgeInstTool) createEdgeConfigFiles() error {
}
edgeCoreConfig := v1alpha2.NewDefaultEdgeCoreConfig()
- edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = ku.CloudCoreIP
-
if ku.EdgeNodeName != "" {
edgeCoreConfig.Modules.Edged.HostnameOverride = ku.EdgeNodeName
}
@@ -124,6 +124,21 @@ func (ku *KubeEdgeInstTool) createEdgeConfigFiles() error {
} else {
edgeCoreConfig.Modules.EdgeHub.HTTPServer = "https://" + cloudCoreIP + ":10002"
}
+
+ switch ku.HubProtocol {
+ case api.ProtocolTypeQuic:
+ edgeCoreConfig.Modules.EdgeHub.Quic.Enable = true
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = false
+ edgeCoreConfig.Modules.EdgeHub.Quic.Server = ku.CloudCoreIP
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = net.JoinHostPort(cloudCoreIP, strconv.Itoa(constants.DefaultWebSocketPort))
+ case api.ProtocolTypeWS:
+ edgeCoreConfig.Modules.EdgeHub.Quic.Enable = false
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = true
+ edgeCoreConfig.Modules.EdgeHub.Quic.Server = net.JoinHostPort(cloudCoreIP, strconv.Itoa(constants.DefaultQuicPort))
+ edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = ku.CloudCoreIP
+ default:
+ return fmt.Errorf("unsupported hub of protocol: %s", ku.HubProtocol)
+ }
edgeCoreConfig.Modules.EdgeStream.TunnelServer = net.JoinHostPort(cloudCoreIP, strconv.Itoa(constants.DefaultTunnelPort))
if len(ku.Labels) >= 1 {