From a4e763605d67d148761a10808a157126799bea15 Mon Sep 17 00:00:00 2001 From: pixiake Date: Thu, 14 May 2020 23:22:41 +0800 Subject: [PATCH] update config --- pkg/apis/kubekey/v1alpha1/default.go | 2 +- pkg/cluster/etcd/etcd.go | 3 ++- pkg/cluster/etcd/tmpl/etcd.go | 8 ++++---- pkg/cluster/kubernetes/tmpl/kubeadm.go | 2 +- pkg/cluster/preinstall/preinstall.go | 7 ++++++- pkg/images/default.go | 2 +- pkg/kubesphere/kubesphere.go | 21 ++++++++++++++++++--- 7 files changed, 33 insertions(+), 12 deletions(-) diff --git a/pkg/apis/kubekey/v1alpha1/default.go b/pkg/apis/kubekey/v1alpha1/default.go index 9c7747f4..a45863a7 100644 --- a/pkg/apis/kubekey/v1alpha1/default.go +++ b/pkg/apis/kubekey/v1alpha1/default.go @@ -17,7 +17,7 @@ const ( DefaultClusterName = "cluster.local" DefaultArch = "amd64" DefaultHostName = "allinone" - DefaultEtcdRepo = "kubekey/etcd" + DefaultEtcdRepo = "kubesphere" DefaultEtcdVersion = "v3.3.12" DefaultEtcdPort = "2379" DefaultKubeVersion = "v1.17.4" diff --git a/pkg/cluster/etcd/etcd.go b/pkg/cluster/etcd/etcd.go index 016b5094..82b8dfd7 100644 --- a/pkg/cluster/etcd/etcd.go +++ b/pkg/cluster/etcd/etcd.go @@ -5,6 +5,7 @@ import ( "fmt" kubekeyapi "github.com/kubesphere/kubekey/pkg/apis/kubekey/v1alpha1" "github.com/kubesphere/kubekey/pkg/cluster/etcd/tmpl" + "github.com/kubesphere/kubekey/pkg/images" "github.com/kubesphere/kubekey/pkg/util/manager" "github.com/kubesphere/kubekey/pkg/util/ssh" "github.com/pkg/errors" @@ -158,7 +159,7 @@ func generateEtcdService(mgr *manager.Manager, node *kubekeyapi.HostCfg, conn ss return errors.Wrap(errors.WithStack(err3), "failed to generate etcd bin") } - getEtcdCtlCmd := fmt.Sprintf("docker run --rm -v /usr/local/bin:/systembindir %s:%s /bin/cp /usr/local/bin/etcdctl /systembindir/etcdctl", kubekeyapi.DefaultEtcdRepo, kubekeyapi.DefaultEtcdVersion) + getEtcdCtlCmd := fmt.Sprintf("docker run --rm -v /usr/local/bin:/systembindir %s /bin/cp /usr/local/bin/etcdctl /systembindir/etcdctl", images.GetImage(mgr, "etcd").ImageName()) _, err4 := mgr.Runner.RunCmd(fmt.Sprintf("sudo -E /bin/sh -c \"%s\"", getEtcdCtlCmd)) if err4 != nil { return errors.Wrap(errors.WithStack(err4), "failed to get etcdctl") diff --git a/pkg/cluster/etcd/tmpl/etcd.go b/pkg/cluster/etcd/tmpl/etcd.go index fa670589..a6ac17cf 100644 --- a/pkg/cluster/etcd/tmpl/etcd.go +++ b/pkg/cluster/etcd/tmpl/etcd.go @@ -3,6 +3,7 @@ package tmpl import ( "fmt" kubekeyapi "github.com/kubesphere/kubekey/pkg/apis/kubekey/v1alpha1" + "github.com/kubesphere/kubekey/pkg/images" "github.com/kubesphere/kubekey/pkg/util" "github.com/kubesphere/kubekey/pkg/util/manager" "github.com/lithammer/dedent" @@ -80,7 +81,7 @@ ETCDCTL_CERT_FILE=/etc/ssl/etcd/ssl/admin-{{ .Hostname }}.pem --memory=512M \ --blkio-weight=1000 \ --name={{ .Name }} \ - {{ .Repo }}:{{ .Tag }} \ + {{ .EtcdImage }} \ /usr/local/bin/etcd \ "$@" `))) @@ -88,9 +89,8 @@ ETCDCTL_CERT_FILE=/etc/ssl/etcd/ssl/admin-{{ .Hostname }}.pem func GenerateEtcdBinary(mgr *manager.Manager, index int) (string, error) { return util.Render(EtcdTempl, util.Data{ - "Name": fmt.Sprintf("etcd%d", index+1), - "Repo": kubekeyapi.DefaultEtcdRepo, - "Tag": kubekeyapi.DefaultEtcdVersion, + "Name": fmt.Sprintf("etcd%d", index+1), + "EtcdImage": images.GetImage(mgr, "etcd").ImageName(), }) } diff --git a/pkg/cluster/kubernetes/tmpl/kubeadm.go b/pkg/cluster/kubernetes/tmpl/kubeadm.go index 07bf37b5..33cc881e 100644 --- a/pkg/cluster/kubernetes/tmpl/kubeadm.go +++ b/pkg/cluster/kubernetes/tmpl/kubeadm.go @@ -143,7 +143,7 @@ func GenerateKubeadmCfg(mgr *manager.Manager) (string, error) { "ImageRepo": imageRepo, "Version": mgr.Cluster.Kubernetes.Version, "ClusterName": mgr.Cluster.Kubernetes.ClusterName, - "ControlPlaneEndpoint": fmt.Sprintf("%s:%s", mgr.Cluster.ControlPlaneEndpoint.Address, mgr.Cluster.ControlPlaneEndpoint.Port), + "ControlPlaneEndpoint": fmt.Sprintf("%s:%s", mgr.Cluster.ControlPlaneEndpoint.Domain, mgr.Cluster.ControlPlaneEndpoint.Port), "PodSubnet": mgr.Cluster.Network.KubePodsCIDR, "ServiceSubnet": mgr.Cluster.Network.KubeServiceCIDR, "CertSANs": mgr.Cluster.GenerateCertSANs(), diff --git a/pkg/cluster/preinstall/preinstall.go b/pkg/cluster/preinstall/preinstall.go index a9dcddf8..bf5f4590 100644 --- a/pkg/cluster/preinstall/preinstall.go +++ b/pkg/cluster/preinstall/preinstall.go @@ -12,7 +12,12 @@ import ( ) func FilesDownloadHttp(cfg *kubekeyapi.K2ClusterSpec, filepath string, logger *log.Logger) error { - kubeVersion := cfg.Kubernetes.Version + var kubeVersion string + if cfg.Kubernetes.Version == "" { + kubeVersion = kubekeyapi.DefaultKubeVersion + } else { + kubeVersion = cfg.Kubernetes.Version + } kubeadmUrl := fmt.Sprintf("https://kubernetes-release.pek3b.qingstor.com/release/%s/bin/linux/%s/kubeadm", kubeVersion, kubekeyapi.DefaultArch) kubeletUrl := fmt.Sprintf("https://kubernetes-release.pek3b.qingstor.com/release/%s/bin/linux/%s/kubelet", kubeVersion, kubekeyapi.DefaultArch) diff --git a/pkg/images/default.go b/pkg/images/default.go index 67ffccdb..c597138d 100644 --- a/pkg/images/default.go +++ b/pkg/images/default.go @@ -21,7 +21,7 @@ func GetImage(mgr *manager.Manager, name string) *Image { "kube-controller-manager": {RepoAddr: "", Namespace: mgr.Cluster.Kubernetes.ImageRepo, Repo: "kube-controller-manager", Tag: mgr.Cluster.Kubernetes.Version, Group: Master, Enable: true}, "kube-scheduler": {RepoAddr: "", Namespace: mgr.Cluster.Kubernetes.ImageRepo, Repo: "kube-scheduler", Tag: mgr.Cluster.Kubernetes.Version, Group: Master, Enable: true}, "kube-proxy": {RepoAddr: "", Namespace: mgr.Cluster.Kubernetes.ImageRepo, Repo: "kube-proxy", Tag: mgr.Cluster.Kubernetes.Version, Group: K8s, Enable: true}, - "etcd": {RepoAddr: mgr.Cluster.Registry.PrivateRegistry, Namespace: "kubesphere", Repo: "etcd", Tag: kubekeyapi.DefaultEtcdVersion, Group: Etcd, Enable: true}, + "etcd": {RepoAddr: mgr.Cluster.Registry.PrivateRegistry, Namespace: mgr.Cluster.Kubernetes.ImageRepo, Repo: "etcd", Tag: kubekeyapi.DefaultEtcdVersion, Group: Etcd, Enable: true}, "coredns": {RepoAddr: mgr.Cluster.Registry.PrivateRegistry, Namespace: "coredns", Repo: "coredns", Tag: "1.6.0", Group: K8s, Enable: true}, "k8s-dns-node-cache": {RepoAddr: mgr.Cluster.Registry.PrivateRegistry, Namespace: "kubesphere", Repo: "k8s-dns-node-cache", Tag: "1.15.12", Group: K8s, Enable: true}, "calico-kube-controllers": {RepoAddr: mgr.Cluster.Registry.PrivateRegistry, Namespace: "calico", Repo: "kube-controllers", Tag: kubekeyapi.DefaultCalicoVersion, Group: K8s, Enable: strings.EqualFold(mgr.Cluster.Network.Plugin, "calico")}, diff --git a/pkg/kubesphere/kubesphere.go b/pkg/kubesphere/kubesphere.go index a5e9dfd1..4432e864 100644 --- a/pkg/kubesphere/kubesphere.go +++ b/pkg/kubesphere/kubesphere.go @@ -2,12 +2,12 @@ package kubesphere import ( "encoding/base64" - "encoding/json" "fmt" kubekeyapi "github.com/kubesphere/kubekey/pkg/apis/kubekey/v1alpha1" "github.com/kubesphere/kubekey/pkg/util/manager" "github.com/kubesphere/kubekey/pkg/util/ssh" "github.com/pkg/errors" + "time" ) func DeployKubeSphere(mgr *manager.Manager) error { @@ -19,8 +19,8 @@ func DeployKubeSphere(mgr *manager.Manager) error { func deployKubeSphere(mgr *manager.Manager, node *kubekeyapi.HostCfg, conn ssh.Connection) error { if mgr.Runner.Index == 0 { //mgr.Runner.RunCmd("sudo -E /bin/sh -c \"mkdir -p /etc/kubernetes/addons\" && /usr/local/bin/helm repo add kubesphere https://charts.kubesphere.io/qingcloud") - out, _ := json.MarshalIndent(mgr.Cluster, "", " ") - fmt.Println(string(out)) + //out, _ := json.MarshalIndent(mgr.Cluster, "", " ") + //fmt.Println(string(out)) if mgr.Cluster.KubeSphere.Console.Port != 0 { if err := DeployKubeSphereStep(mgr); err != nil { return err @@ -46,5 +46,20 @@ func DeployKubeSphereStep(mgr *manager.Manager) error { return errors.Wrap(errors.WithStack(err2), "failed to deploy kubesphere.yaml") } + CheckKubeSphereStatus(mgr) return nil } + +func CheckKubeSphereStatus(mgr *manager.Manager) { + for i := 30; i > 0; i-- { + time.Sleep(10 * time.Second) + _, err := mgr.Runner.RunCmd("/usr/local/bin/kubectl exec -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') ls kubesphere/playbooks/kubesphere_running") + if err == nil { + out, err := mgr.Runner.RunCmd("/usr/local/bin/kubectl exec -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') cat kubesphere/playbooks/kubesphere_running") + if err == nil { + fmt.Println(out) + break + } + } + } +}