diff --git a/README.md b/README.md index 022b85c4..80f70f2d 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ sudo autok3s join \ --v-switch \ --security-group \ --token \ - --url \ + --ip \ --worker 1 ``` diff --git a/pkg/cluster/cluster.go b/pkg/cluster/cluster.go index 7ff99e55..99e32cfa 100644 --- a/pkg/cluster/cluster.go +++ b/pkg/cluster/cluster.go @@ -93,8 +93,12 @@ func InitK3sCluster(cluster *types.Cluster) error { return errors.New("[cluster] master node internal ip address can not be empty") } - cluster.URL = cluster.MasterNodes[0].InternalIPAddress[0] - publicIP := cluster.MasterNodes[0].PublicIPAddress[0] + publicIP := cluster.IP + if cluster.IP == "" { + cluster.IP = cluster.MasterNodes[0].InternalIPAddress[0] + publicIP = cluster.MasterNodes[0].PublicIPAddress[0] + } + masterExtraArgs := cluster.MasterExtraArgs workerExtraArgs := cluster.WorkerExtraArgs @@ -271,11 +275,11 @@ func JoinK3sNode(merged, added *types.Cluster) error { return errors.New("[cluster] k3s token can not be empty") } - if merged.URL == "" { + if merged.IP == "" { if len(merged.MasterNodes) <= 0 || len(merged.MasterNodes[0].InternalIPAddress) <= 0 { return errors.New("[cluster] master node internal ip address can not be empty") } - merged.URL = merged.MasterNodes[0].InternalIPAddress[0] + merged.IP = merged.MasterNodes[0].InternalIPAddress[0] } errChan := make(chan error) @@ -563,7 +567,7 @@ func initWorker(wg *sync.WaitGroup, errChan chan error, k3sScript, k3sMirror, do } if _, err := execute(&hosts.Host{Node: worker}, - fmt.Sprintf(joinCommand, k3sScript, k3sMirror, cluster.Registries, cluster.URL, cluster.Token, + fmt.Sprintf(joinCommand, k3sScript, k3sMirror, cluster.Registries, cluster.IP, cluster.Token, strings.TrimSpace(extraArgs), cluster.K3sVersion), false); err != nil { errChan <- err } @@ -574,7 +578,7 @@ func joinMaster(wg *sync.WaitGroup, errChan chan error, noFlannel bool, k3sScrip defer wg.Done() if !strings.Contains(extraArgs, "server --server") { - extraArgs += " server --server " + fmt.Sprintf("https://%s:6443", merged.URL) + extraArgs += " server --server " + fmt.Sprintf("https://%s:6443", merged.IP) } if merged.DataStore != "" { @@ -607,7 +611,7 @@ func joinMaster(wg *sync.WaitGroup, errChan chan error, noFlannel bool, k3sScrip // for now, use the workerCommand to join the additional master server node. if _, err := execute(&hosts.Host{Node: full}, - fmt.Sprintf(joinCommand, k3sScript, k3sMirror, merged.Registries, merged.URL, merged.Token, + fmt.Sprintf(joinCommand, k3sScript, k3sMirror, merged.Registries, merged.IP, merged.Token, strings.TrimSpace(extraArgs), merged.K3sVersion), false); err != nil { errChan <- err } @@ -629,7 +633,7 @@ func joinWorker(wg *sync.WaitGroup, errChan chan error, k3sScript, k3sMirror, do } if _, err := execute(&hosts.Host{Node: full}, - fmt.Sprintf(joinCommand, k3sScript, k3sMirror, merged.Registries, merged.URL, merged.Token, + fmt.Sprintf(joinCommand, k3sScript, k3sMirror, merged.Registries, merged.IP, merged.Token, strings.TrimSpace(extraArgs), merged.K3sVersion), false); err != nil { errChan <- err } diff --git a/pkg/providers/alibaba/flag.go b/pkg/providers/alibaba/flag.go index d3c561cc..fc5f91d3 100644 --- a/pkg/providers/alibaba/flag.go +++ b/pkg/providers/alibaba/flag.go @@ -151,16 +151,6 @@ func (p *Alibaba) GetDeleteFlags(cmd *cobra.Command) *pflag.FlagSet { func (p *Alibaba) GetJoinFlags(cmd *cobra.Command) *pflag.FlagSet { fs := p.sharedFlags() - fs = append(fs, []types.Flag{ - { - Name: "url", - P: &p.URL, - V: p.URL, - Usage: "Specify K3s master URL", - Required: true, - }, - }...) - for _, f := range fs { if f.ShortHand == "" { if cmd.Flags().Lookup(f.Name) == nil { @@ -193,7 +183,7 @@ func (p *Alibaba) GetJoinFlags(cmd *cobra.Command) *pflag.FlagSet { // join command need merge status & token value. p.Status = matched.Status p.Token = matched.Token - p.URL = matched.URL + p.IP = matched.IP p.mergeOptions(*matched) } @@ -372,6 +362,12 @@ func (p *Alibaba) sharedFlags() []types.Flag { Usage: "Used to specify the maximum out flow of the instance internet", Required: true, }, + { + Name: "ip", + P: &p.IP, + V: p.IP, + Usage: "Specify K3s master/lb ip", + }, { Name: "k3s-version", P: &p.K3sVersion, diff --git a/pkg/types/autok3s.go b/pkg/types/autok3s.go index 8ea58756..0c057478 100644 --- a/pkg/types/autok3s.go +++ b/pkg/types/autok3s.go @@ -18,7 +18,7 @@ type Metadata struct { Worker string `json:"worker" yaml:"worker"` Token string `json:"token,omitempty" yaml:"token,omitempty"` UI string `json:"ui,omitempty" yaml:"ui,omitempty"` - URL string `json:"url,omitempty" yaml:"url,omitempty"` + IP string `json:"ip,omitempty" yaml:"ip,omitempty"` Repo string `json:"repo,omitempty" yaml:"repo,omitempty"` ClusterCIDR string `json:"cluster-cidr,omitempty" yaml:"cluster-cidr,omitempty"` CloudControllerManager string `json:"cloud-controller-manager,omitempty" yaml:"cloud-controller-manager,omitempty"`