puml格式,装plant uml查看
@startuml keadm-join-v1.10.0
' Author: xiaoyang.chen
' mail: xiaoyang.chen@???.com
start
: keadm join args (基于v1.10.0);
note left
args:
kubeedge-version, kubeedge的版本
cgroupdriver, cgroup驱动器, 默认"cgroupfs"
certPath, 证书文件路径, 默认"/etc/kubeedge/certs"
cloudcore-ipport, KubeEdge CloudCore的ip:port, 必填
runtimetype, 容器运行时类型, 默认"docker"
edgenode-name, 边缘节点的唯一字符串标识, 如果没有设置,
系统将产生一个唯一的字符串给边缘节点(取系统hostname), 如果产生失败, 将使用默认"default-edge-node"
remote-runtime-endpoint, 边缘节点的容器运行时节点的端点,
默认unix:///var/run/dockershim.sock
token, 用于申请证书, 默认""
certport, 用于申请证书的端口, 默认10002
tarballpath, kubeedge二进制安装包tar包的路径,
tar包的目录层次参照github的kubeedge仓库, 默认KubeEdgePath = "/etc/kubeedge/"
labels, 用于设置节点的定制化标签, 格式 key1=value1,key2=value2, 默认为空
with-mqtt, 使用这个设置是否默认安装和开启 MQTT Broker, **该字段尚未启用**
example:
keadm join
--cloudcore-ipport=101.33.227.236:10000
--token=xxx
--kubeedge-version 1.10.0
end note
: 解析keadm join args的args, AddToolsVals;
partition "添加部署工具信息\n (func Add2ToolsList(\n toolList map[string]types.ToolsInstaller, \n flagData map[string]types.FlagData, \n joinOptions *types.JoinOptions \n) error)" {
:var kubeVer string;
if (参数"kubeedge-version"存在) then (yes)
:kubeVar = val of args kubeedge-version;
endif
if (kubeVer == "") then (yes)
:var latestVersion string;
while (i := 0; i < util.RetryTimes(默认 5); i++)
:通过 https://kubeedge.io/latestversion
获取最新的版本信息;
if (获取最新版本的err, err != nil) then (yes)
:打印错误信息;
else (no)
if (获取到的版本号字符串长度大于0) then (yes)
:版本号剪除前缀"v", v1.10.0=>1.10.0
并赋值给 kubeVar;
:latestVersion = 版本号(未剪除"v");
break
endif
endif
endwhile