mirror of
https://github.com/kubesphere/kubekey.git
synced 2025-12-26 01:22:51 +00:00
Merge pull request #57 from pixiake/dev
support custom calico and flannel
This commit is contained in:
commit
9550d2c9e9
|
|
@ -65,17 +65,12 @@ func FilesDownloadHttp(mgr *manager.Manager, filepath, version string) error {
|
|||
return errors.Wrap(err, "Failed to download kubeadm binary")
|
||||
}
|
||||
|
||||
output, err := exec.Command("/bin/sh", "-c", fmt.Sprintf("sha256sum %s", binary.Path)).CombinedOutput()
|
||||
if err != nil {
|
||||
return errors.Wrap(err, fmt.Sprintf("Failed to check SHA256 of %s", binary.Path))
|
||||
if err := SHA256Check(binary, version); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if strings.TrimSpace(binary.GetSha256()) == "" {
|
||||
return errors.New(fmt.Sprintf("No SHA256 found for %s. %s is not supported.", version, version))
|
||||
} else {
|
||||
if !strings.Contains(strings.TrimSpace(string(output)), binary.GetSha256()) {
|
||||
return errors.New(fmt.Sprintf("SHA256 no match. %s not in %s", binary.GetSha256(), strings.TrimSpace(string(output))))
|
||||
}
|
||||
} else {
|
||||
if err := SHA256Check(binary, version); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -108,3 +103,19 @@ func Prepare(mgr *manager.Manager) error {
|
|||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func SHA256Check(binary files.KubeBinary, version string) error {
|
||||
output, err := exec.Command("/bin/sh", "-c", fmt.Sprintf("sha256sum %s", binary.Path)).CombinedOutput()
|
||||
if err != nil {
|
||||
return errors.Wrap(err, fmt.Sprintf("Failed to check SHA256 of %s", binary.Path))
|
||||
}
|
||||
|
||||
if strings.TrimSpace(binary.GetSha256()) == "" {
|
||||
return errors.New(fmt.Sprintf("No SHA256 found for %s. %s is not supported.", version, version))
|
||||
} else {
|
||||
if !strings.Contains(strings.TrimSpace(string(output)), binary.GetSha256()) {
|
||||
return errors.New(fmt.Sprintf("SHA256 no match. %s not in %s", binary.GetSha256(), strings.TrimSpace(string(output))))
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,9 +22,12 @@ import (
|
|||
kubekeyapi "github.com/kubesphere/kubekey/pkg/apis/kubekey/v1alpha1"
|
||||
"github.com/kubesphere/kubekey/pkg/plugins/network/calico"
|
||||
"github.com/kubesphere/kubekey/pkg/plugins/network/flannel"
|
||||
"github.com/kubesphere/kubekey/pkg/util"
|
||||
"github.com/kubesphere/kubekey/pkg/util/manager"
|
||||
"github.com/kubesphere/kubekey/pkg/util/ssh"
|
||||
"github.com/pkg/errors"
|
||||
"os/exec"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func DeployNetworkPlugin(mgr *manager.Manager) error {
|
||||
|
|
@ -56,11 +59,22 @@ func deployNetworkPlugin(mgr *manager.Manager, node *kubekeyapi.HostCfg, conn ss
|
|||
}
|
||||
|
||||
func deployCalico(mgr *manager.Manager, node *kubekeyapi.HostCfg) error {
|
||||
calicoFile, err := calico.GenerateCalicoFiles(mgr.Cluster)
|
||||
if err != nil {
|
||||
return err
|
||||
var calicoFileBase64 string
|
||||
if util.IsExist(fmt.Sprintf("%s/calico.yaml", mgr.WorkDir)) {
|
||||
output, err := exec.Command("/bin/sh", "-c", fmt.Sprintf("cat %s/calico.yaml | base64 --wrap=0", mgr.WorkDir)).CombinedOutput()
|
||||
if err != nil {
|
||||
fmt.Println(string(output))
|
||||
return errors.Wrap(errors.WithStack(err), fmt.Sprintf("Failed to read custom calico manifests: %s/calico.yaml", mgr.WorkDir))
|
||||
}
|
||||
calicoFileBase64 = strings.TrimSpace(string(output))
|
||||
} else {
|
||||
calicoFile, err := calico.GenerateCalicoFiles(mgr.Cluster)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
calicoFileBase64 = base64.StdEncoding.EncodeToString([]byte(calicoFile))
|
||||
}
|
||||
calicoFileBase64 := base64.StdEncoding.EncodeToString([]byte(calicoFile))
|
||||
|
||||
_, err1 := mgr.Runner.RunCmd(fmt.Sprintf("sudo -E /bin/sh -c \"echo %s | base64 -d > /etc/kubernetes/calico.yaml\"", calicoFileBase64))
|
||||
if err1 != nil {
|
||||
return errors.Wrap(errors.WithStack(err1), "Failed to generate calico file")
|
||||
|
|
@ -74,11 +88,22 @@ func deployCalico(mgr *manager.Manager, node *kubekeyapi.HostCfg) error {
|
|||
}
|
||||
|
||||
func deployFlannel(mgr *manager.Manager) error {
|
||||
flannelFile, err := flannel.GenerateFlannelFiles(mgr.Cluster)
|
||||
if err != nil {
|
||||
return err
|
||||
var flannelFileBase64 string
|
||||
if util.IsExist(fmt.Sprintf("%s/flannel.yaml", mgr.WorkDir)) {
|
||||
output, err := exec.Command("/bin/sh", "-c", fmt.Sprintf("cat %s/flannel.yaml | base64 --wrap=0", mgr.WorkDir)).CombinedOutput()
|
||||
if err != nil {
|
||||
fmt.Println(string(output))
|
||||
return errors.Wrap(errors.WithStack(err), fmt.Sprintf("Failed to read custom flannel manifests: %s/flannel.yaml", mgr.WorkDir))
|
||||
}
|
||||
flannelFileBase64 = strings.TrimSpace(string(output))
|
||||
} else {
|
||||
flannelFile, err := flannel.GenerateFlannelFiles(mgr.Cluster)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
flannelFileBase64 = base64.StdEncoding.EncodeToString([]byte(flannelFile))
|
||||
}
|
||||
flannelFileBase64 := base64.StdEncoding.EncodeToString([]byte(flannelFile))
|
||||
|
||||
_, err1 := mgr.Runner.RunCmd(fmt.Sprintf("sudo -E /bin/sh -c \"echo %s | base64 -d > /etc/kubernetes/flannel.yaml\"", flannelFileBase64))
|
||||
if err1 != nil {
|
||||
return errors.Wrap(errors.WithStack(err1), "Failed to generate flannel file")
|
||||
|
|
|
|||
Loading…
Reference in New Issue